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

CURLcode __regparm3 servercert(connectdata *conn,ssl_connect_data *connssl,_Bool strict)

{
  byte *pbVar1;
  char cVar2;
  Curl_easy *data;
  int iVar3;
  uint uVar4;
  Curl_easy *pCVar5;
  bool bVar6;
  bool bVar7;
  bool bVar8;
  ssl_config_data *psVar9;
  uint uVar10;
  BIO_METHOD *pBVar11;
  BIO *pBVar12;
  X509 *pXVar13;
  X509_NAME *pXVar14;
  ASN1_TIME *pAVar15;
  long lVar16;
  uchar *puVar17;
  ssl_backend_data *psVar18;
  X509_PUBKEY *pXVar19;
  size_t sVar20;
  size_t sVar21;
  GENERAL_NAMES *a;
  int *piVar22;
  BIO *out;
  undefined4 uVar23;
  ASN1_INTEGER *pAVar24;
  X509_EXTENSION *ex;
  BIO *out_00;
  ASN1_OBJECT *a_00;
  uint uVar25;
  uint uVar26;
  OCSP_RESPONSE *resp;
  OCSP_BASICRESP *bs;
  stack_st_X509 *psVar27;
  X509_STORE *st;
  int iVar28;
  OCSP_SINGLERESP *single;
  int iVar29;
  char *pcVar30;
  EVP_PKEY *pkey;
  ASN1_OCTET_STRING *v;
  char *pcVar31;
  size_t sVar32;
  int iVar33;
  X509_NAME_ENTRY *ne;
  ASN1_STRING *pAVar34;
  size_t sVar35;
  uchar *puVar36;
  void *pvVar37;
  ulong e;
  int iVar38;
  size_t size;
  size_t size_00;
  curl_proxytype cVar39;
  uint uVar40;
  uchar *extraout_EDX;
  CURLcode CVar41;
  uint *puVar42;
  int in_GS_OFFSET;
  uchar *puVar43;
  X509 *local_a44;
  int local_a40;
  char *local_a2c;
  int local_a28;
  in6_addr *local_a24;
  undefined *local_a20;
  uchar *local_a1c;
  Curl_easy *local_a18;
  uchar *local_a10;
  uchar *local_a0c;
  long *local_9f4;
  char *ptr;
  char *ptr_1;
  ASN1_BIT_STRING *psig;
  BIGNUM *p;
  BIGNUM *q;
  X509_ALGOR *palg;
  uchar *temp;
  in6_addr addr;
  char namebuf [128];
  char error_buffer [256];
  char buffer [2048];
  
  pcVar30 = error_buffer;
  data = conn->data;
  iVar3 = *(int *)(in_GS_OFFSET + 0x14);
  for (iVar38 = 0x3f; pcVar30 = pcVar30 + 4, iVar38 != 0; iVar38 = iVar38 + -1) {
    pcVar30[0] = '\0';
    pcVar30[1] = '\0';
    pcVar30[2] = '\0';
    pcVar30[3] = '\0';
  }
  error_buffer[0] = '\0';
  error_buffer[1] = '\0';
  error_buffer[2] = '\0';
  error_buffer[3] = '\0';
  if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&
     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {
    psVar9 = &(data->set).proxy_ssl;
  }
  else {
    psVar9 = &(data->set).ssl;
  }
  local_9f4 = &psVar9->certverifyresult;
  pBVar11 = BIO_s_mem();
  pBVar12 = BIO_new(pBVar11);
  if ((data->set).ssl.certinfo != false) {
    pCVar5 = conn->data;
    psVar27 = SSL_get_peer_cert_chain((SSL *)connssl->backend->handle);
    if (psVar27 != (stack_st_X509 *)0x0) {
      iVar38 = OPENSSL_sk_num(psVar27);
      CVar41 = Curl_ssl_init_certinfo(pCVar5,iVar38);
      if (CVar41 == CURLE_OK) {
        pBVar11 = BIO_s_mem();
        out = BIO_new(pBVar11);
        if (0 < iVar38) {
          local_a40 = 0;
          do {
            pXVar13 = (X509 *)OPENSSL_sk_value(psVar27,local_a40);
            psig = (ASN1_BIT_STRING *)0x0;
            pXVar14 = X509_get_subject_name(pXVar13);
            X509_NAME_print_ex(out,pXVar14,0,0x82031f);
            sVar20 = BIO_ctrl(out,3,0,&ptr_1);
            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Subject",ptr_1,sVar20);
            BIO_ctrl(out,1,0,(void *)0x0);
            pXVar14 = X509_get_issuer_name(pXVar13);
            X509_NAME_print_ex(out,pXVar14,0,0x82031f);
            sVar20 = BIO_ctrl(out,3,0,&ptr_1);
            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Issuer",ptr_1,sVar20);
            BIO_ctrl(out,1,0,(void *)0x0);
            uVar23 = X509_get_version(pXVar13);
            BIO_printf(out,"%lx",uVar23);
            sVar20 = BIO_ctrl(out,3,0,&ptr_1);
            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Version",ptr_1,sVar20);
            BIO_ctrl(out,1,0,(void *)0x0);
            pAVar24 = X509_get_serialNumber(pXVar13);
            if (pAVar24->type == 0x102) {
              BIO_puts(out,"-");
            }
            iVar28 = 0;
            if (0 < pAVar24->length) {
              do {
                pbVar1 = pAVar24->data + iVar28;
                iVar28 = iVar28 + 1;
                BIO_printf(out,"%02x",(uint)*pbVar1);
              } while (iVar28 < pAVar24->length);
            }
            sVar20 = BIO_ctrl(out,3,0,&ptr_1);
            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Serial Number",ptr_1,sVar20);
            BIO_ctrl(out,1,0,(void *)0x0);
            palg = (X509_ALGOR *)0x0;
            pAVar34 = ASN1_STRING_new();
            if (pAVar34 != (ASN1_STRING *)0x0) {
              X509_get0_signature(&psig,&palg,pXVar13);
              X509_signature_print(out,(X509_ALGOR *)palg,pAVar34);
              ASN1_STRING_free(pAVar34);
              if (palg != (X509_ALGOR *)0x0) {
                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);
                sVar20 = BIO_ctrl(out,3,0,&ptr_1);
                Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);
                BIO_ctrl(out,1,0,(void *)0x0);
              }
            }
            uVar23 = X509_get0_extensions(pXVar13);
            iVar28 = OPENSSL_sk_num(uVar23);
            local_a28 = 0;
            if (0 < iVar28) {
              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a28 < iVar28; local_a28 = local_a28 + 1)
              {
                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);
                pBVar11 = BIO_s_mem();
                out_00 = BIO_new(pBVar11);
                if (out_00 == (BIO *)0x0) break;
                a_00 = X509_EXTENSION_get_object(ex);
                i2t_ASN1_OBJECT(namebuf,0x80,a_00);
                iVar28 = X509V3_EXT_print(out_00,ex,0,0);
                if (iVar28 == 0) {
                  v = X509_EXTENSION_get_data(ex);
                  ASN1_STRING_print(out_00,v);
                }
                BIO_ctrl(out_00,0x73,0,&temp);
                uVar25 = 0;
                uVar40 = *(uint *)temp;
                puVar42 = (uint *)temp;
                local_a1c = (uchar *)buffer;
                if (uVar40 != 0) {
                  do {
                    uVar4 = puVar42[1];
                    local_a20 = &DAT_00087d70;
                    uVar26 = uVar25;
                    uVar10 = uVar25 + 1;
                    if (*(char *)(uVar4 + uVar25) == '\n') {
                      local_a20 = &DAT_0007df6a;
                      uVar26 = uVar25 + 1;
                      uVar10 = uVar25 + 2;
                    }
                    uVar25 = uVar10;
                    if (uVar26 < uVar40) {
                      cVar2 = *(char *)(uVar4 + uVar26);
                      if (cVar2 == ' ') {
                        uVar26 = uVar26 + 2;
                        do {
                          uVar25 = uVar26;
                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;
                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);
                          uVar26 = uVar25 + 1;
                        } while (cVar2 == ' ');
                      }
                      iVar28 = curl_msnprintf((char *)local_a1c,
                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",
                                              local_a20,(int)cVar2);
                      local_a1c = local_a1c + iVar28;
                      puVar42 = (uint *)temp;
                    }
LAB_000789f7:
                    uVar40 = *puVar42;
                  } while (uVar25 < uVar40);
                }
                Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);
                BIO_free(out_00);
              }
            }
            pAVar15 = (ASN1_TIME *)X509_get0_notBefore(pXVar13);
            ASN1_TIME_print(out,pAVar15);
            sVar20 = BIO_ctrl(out,3,0,&ptr_1);
            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Start date",ptr_1,sVar20);
            BIO_ctrl(out,1,0,(void *)0x0);
            pAVar15 = (ASN1_TIME *)X509_get0_notAfter(pXVar13);
            ASN1_TIME_print(out,pAVar15);
            sVar20 = BIO_ctrl(out,3,0,&ptr_1);
            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Expire date",ptr_1,sVar20);
            BIO_ctrl(out,1,0,(void *)0x0);
            pkey = X509_get_pubkey(pXVar13);
            if (pkey == (EVP_PKEY *)0x0) {
              Curl_infof(pCVar5,"   Unable to load public key\n");
            }
            else {
              iVar28 = EVP_PKEY_id(pkey);
              if (iVar28 == 0x1c) {
                uVar23 = EVP_PKEY_get0_DH(pkey);
                DH_get0_pqg(uVar23,&p,&q,&palg);
                pcVar30 = "dh";
                DH_get0_key(uVar23,&temp,0);
LAB_0007922b:
                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);
                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);
                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);
                pcVar31 = "pub_key";
LAB_000791bc:
                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);
              }
              else {
                if (iVar28 == 0x74) {
                  uVar23 = EVP_PKEY_get0_DSA(pkey);
                  DSA_get0_pqg(uVar23,&p,&q,&palg);
                  pcVar30 = "dsa";
                  DSA_get0_key(uVar23,&temp,0);
                  goto LAB_0007922b;
                }
                if (iVar28 == 6) {
                  pcVar30 = "rsa";
                  uVar23 = EVP_PKEY_get0_RSA(pkey);
                  RSA_get0_key(uVar23,&palg,&temp,0);
                  BN_print(out,(BIGNUM *)palg);
                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);
                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);
                  BIO_ctrl(out,1,0,(void *)0x0);
                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);
                  pcVar31 = "e";
                  goto LAB_000791bc;
                }
              }
              EVP_PKEY_free(pkey);
            }
            if (psig != (ASN1_BIT_STRING *)0x0) {
              iVar28 = 0;
              if (0 < psig->length) {
                do {
                  pbVar1 = psig->data + iVar28;
                  iVar28 = iVar28 + 1;
                  BIO_printf(out,"%02x:",(uint)*pbVar1);
                } while (iVar28 < psig->length);
              }
              sVar20 = BIO_ctrl(out,3,0,&ptr_1);
              Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Signature",ptr_1,sVar20);
              BIO_ctrl(out,1,0,(void *)0x0);
            }
            PEM_write_bio_X509(out,pXVar13);
            sVar20 = BIO_ctrl(out,3,0,&ptr_1);
            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Cert",ptr_1,sVar20);
            BIO_ctrl(out,1,0,(void *)0x0);
            local_a40 = local_a40 + 1;
          } while (iVar38 != local_a40);
        }
        BIO_free(out);
      }
    }
  }
  psVar18 = connssl->backend;
  pXVar13 = SSL_get_peer_certificate((SSL *)psVar18->handle);
  psVar18->server_cert = (X509 *)pXVar13;
  if (connssl->backend->server_cert == (X509 *)0x0) {
    CVar41 = CURLE_OK;
    BIO_free(pBVar12);
    if (strict) {
      CVar41 = CURLE_PEER_FAILED_VERIFICATION;
      Curl_failf(data,"SSL: couldn\'t get peer certificate!");
    }
    goto LAB_00078251;
  }
  pcVar30 = "Server";
  if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&
     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {
    pcVar30 = "Proxy";
  }
  Curl_infof(data,"%s certificate:\n",pcVar30);
  pXVar14 = X509_get_subject_name((X509 *)connssl->backend->server_cert);
  pcVar30 = buffer;
  iVar38 = x509_name_oneline((X509_NAME *)pXVar14,pcVar30,size);
  pcVar31 = "[NONE]";
  if (iVar38 == 0) {
    pcVar31 = pcVar30;
  }
  Curl_infof(data," subject: %s\n",pcVar31);
  pAVar15 = (ASN1_TIME *)X509_get0_notBefore(connssl->backend->server_cert);
  ASN1_TIME_print(pBVar12,pAVar15);
  lVar16 = BIO_ctrl(pBVar12,3,0,&ptr);
  Curl_infof(data," start date: %.*s\n",lVar16,ptr);
  BIO_ctrl(pBVar12,1,0,(void *)0x0);
  pAVar15 = (ASN1_TIME *)X509_get0_notAfter(connssl->backend->server_cert);
  ASN1_TIME_print(pBVar12,pAVar15);
  puVar17 = (uchar *)BIO_ctrl(pBVar12,3,0,&ptr);
  local_a0c = (uchar *)ptr;
  Curl_infof(data," expire date: %.*s\n",puVar17,ptr);
  BIO_ctrl(pBVar12,1,0,(void *)0x0);
  BIO_free(pBVar12);
  local_a44 = (X509 *)connssl->backend->server_cert;
  if ((conn->http_proxy).proxytype != CURLPROXY_HTTPS) {
    if ((conn->ssl_config).verifyhost == false) goto LAB_000780f3;
    local_a18 = conn->data;
LAB_00078282:
    local_a2c = (conn->host).name;
    local_a10 = (uchar *)(conn->host).dispname;
LAB_0007829a:
    if (((conn->bits).ipv6_ip == false) || (iVar38 = inet_pton(10,local_a2c,&addr), iVar38 == 0)) {
      local_a24 = &addr;
      iVar38 = inet_pton(2,local_a2c,local_a24);
      local_a1c = (uchar *)(~-(uint)(iVar38 == 0) & 4);
      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;
    }
    else {
      local_a1c = (uchar *)0x10;
      iVar38 = 7;
    }
    local_a24 = &addr;
    puVar43 = (uchar *)0x0;
    puVar17 = (uchar *)0x0;
    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a44,0x55,(int *)0x0,(int *)0x0);
    local_a0c = puVar43;
    if (a == (GENERAL_NAMES *)0x0) {
LAB_00079040:
      temp = "";
      pXVar14 = X509_get_subject_name(local_a44);
      puVar43 = (uchar *)0xffffffff;
      if (pXVar14 == (X509_NAME *)0x0) {
LAB_0007908e:
        if (temp == "") {
          temp = (uchar *)0x0;
LAB_0007950b:
          pcVar30 = "SSL: unable to obtain common name from peer certificate";
          local_a10 = local_a0c;
        }
        else {
          if (temp == (uchar *)0x0) goto LAB_0007950b;
          iVar38 = Curl_cert_hostcheck((char *)temp,local_a2c);
          puVar17 = temp;
          if (iVar38 != 0) {
            Curl_infof(local_a18," common name: %s (matched)\n",temp);
            if (temp == (uchar *)0x0) goto LAB_000783a8;
            puVar17 = (uchar *)0x693;
            local_a0c = extraout_EDX;
            CRYPTO_free(temp);
            local_a44 = (X509 *)connssl->backend->server_cert;
            goto LAB_000780f3;
          }
          pcVar30 = "SSL: certificate subject name \'%s\' does not match target host name \'%s\'";
        }
        Curl_failf(local_a18,pcVar30,puVar17,local_a10);
LAB_000790e4:
        if (temp != (uchar *)0x0) {
          CRYPTO_free(temp);
          pXVar13 = (X509 *)connssl->backend->server_cert;
          goto LAB_000794d2;
        }
      }
      else {
        do {
          puVar36 = puVar43;
          puVar17 = puVar36;
          puVar43 = (uchar *)X509_NAME_get_index_by_NID(pXVar14,0xd,(int)puVar36);
        } while (-1 < (int)puVar43);
        if (puVar36 == (uchar *)0xffffffff) goto LAB_0007908e;
        ne = X509_NAME_get_entry(pXVar14,(int)puVar36);
        pAVar34 = X509_NAME_ENTRY_get_data(ne);
        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;
        iVar38 = ASN1_STRING_type(pAVar34);
        if (iVar38 == 0xc) {
          puVar43 = (uchar *)ASN1_STRING_length(pAVar34);
          if ((int)puVar43 < 0) goto LAB_0007969a;
          puVar17 = (uchar *)0x662;
          temp = (uchar *)CRYPTO_malloc((int)(puVar43 + 1),"vtls/openssl.c",0x662);
          if (temp != (uchar *)0x0) {
            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);
            puVar17 = puVar43;
            memcpy(temp,pvVar37,(size_t)puVar43);
            temp[(int)puVar43] = '\0';
            goto LAB_0007969a;
          }
          goto LAB_0007950b;
        }
        puVar43 = (uchar *)ASN1_STRING_to_UTF8(&temp,pAVar34);
LAB_0007969a:
        if (temp == (uchar *)0x0) goto LAB_0007950b;
        sVar35 = strlen((char *)temp);
        puVar36 = (uchar *)curlx_uztosi(sVar35);
        if (puVar36 == puVar43) goto LAB_0007908e;
        Curl_failf(local_a18,"SSL: illegal cert name field");
        if (temp != "") goto LAB_000790e4;
      }
      pXVar13 = (X509 *)connssl->backend->server_cert;
    }
    else {
      iVar28 = OPENSSL_sk_num(a);
      if (iVar28 < 1) {
        GENERAL_NAMES_free(a);
        local_a0c = puVar43;
        goto LAB_00079040;
      }
      bVar6 = false;
      iVar29 = 0;
      bVar7 = false;
      bVar8 = false;
      do {
        while( true ) {
          piVar22 = (int *)OPENSSL_sk_value(a,iVar29);
          iVar33 = *piVar22;
          if (iVar33 == 2) break;
          if (iVar33 == 7) {
            if (iVar38 == 7) {
              pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1]);
              puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1]);
              if (local_a1c == puVar36) {
                puVar17 = local_a1c;
                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);
                bVar7 = true;
                if (iVar33 == 0) {
                  puVar17 = local_a10;
                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",
                             local_a10);
                  bVar6 = true;
                }
                goto LAB_00078351;
              }
            }
            bVar7 = true;
          }
          else if (iVar33 == iVar38) {
            local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);
            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);
            if (iVar38 == 2) goto LAB_00079422;
          }
LAB_00078351:
          iVar29 = iVar29 + 1;
          local_a0c = puVar43;
          if (iVar28 == iVar29) goto LAB_0007838a;
        }
        if (iVar38 == 2) {
          local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);
          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);
          bVar8 = true;
LAB_00079422:
          sVar32 = strlen((char *)local_a0c);
          if ((sVar32 != sVar35) ||
             (iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c), iVar33 == 0))
          goto LAB_00078351;
          Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s \"%s\"\n",local_a10,
                     local_a0c);
          GENERAL_NAMES_free(a);
          puVar17 = local_a10;
          goto LAB_000783a8;
        }
        bVar8 = true;
        iVar29 = iVar29 + 1;
        local_a0c = puVar43;
      } while (iVar28 != iVar29);
LAB_0007838a:
      GENERAL_NAMES_free(a);
      if (bVar6) {
LAB_000783a8:
        local_a44 = (X509 *)connssl->backend->server_cert;
        goto LAB_000780f3;
      }
      if ((!bVar7) && (!bVar8)) goto LAB_00079040;
      Curl_infof(local_a18," subjectAltName does not match %s\n",local_a10);
      Curl_failf(local_a18,
                 "SSL: no alternative certificate subject name matches target host name \'%s\'",
                 local_a10);
      pXVar13 = (X509 *)connssl->backend->server_cert;
    }
LAB_000794d2:
    CVar41 = CURLE_PEER_FAILED_VERIFICATION;
    X509_free(pXVar13);
    connssl->backend->server_cert = (X509 *)0x0;
    goto LAB_00078251;
  }
  if (conn->proxy_ssl[conn->sock[1] != -1].state == ssl_connection_complete) {
    if ((conn->ssl_config).verifyhost != false) {
      local_a18 = conn->data;
      if (conn->proxy_ssl[conn->sock[1] != -1].state == ssl_connection_complete) goto LAB_00078282;
      goto LAB_00078a68;
    }
  }
  else if ((conn->proxy_ssl_config).verifyhost != false) {
    local_a18 = conn->data;
LAB_00078a68:
    local_a2c = (conn->http_proxy).host.name;
    local_a10 = (uchar *)(conn->http_proxy).host.dispname;
    goto LAB_0007829a;
  }
LAB_000780f3:
  pXVar14 = X509_get_issuer_name(local_a44);
  iVar38 = x509_name_oneline((X509_NAME *)pXVar14,pcVar30,size_00);
  if (iVar38 == 0) {
    Curl_infof(data," issuer: %s\n",pcVar30,local_a0c);
    if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&
       (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {
      pcVar31 = (data->set).proxy_ssl.issuercert;
    }
    else {
      pcVar31 = (data->set).ssl.issuercert;
    }
    if (pcVar31 != (char *)0x0) {
      pBVar11 = BIO_s_file();
      pBVar12 = BIO_new(pBVar11);
      if (pBVar12 == (BIO *)0x0) {
        e = ERR_get_error();
        ERR_error_string_n(e,error_buffer,0x100);
        Curl_failf(data,"BIO_new return NULL, OpenSSL error %s",error_buffer);
        X509_free((X509 *)connssl->backend->server_cert);
        CVar41 = CURLE_OUT_OF_MEMORY;
        connssl->backend->server_cert = (X509 *)0x0;
        goto LAB_00078251;
      }
      if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&
         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {
        pcVar30 = (data->set).proxy_ssl.issuercert;
      }
      else {
        pcVar30 = (data->set).ssl.issuercert;
      }
      lVar16 = BIO_ctrl(pBVar12,0x6c,3,pcVar30);
      if (lVar16 < 1) {
        if (strict) {
          if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&
             (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {
            pcVar30 = (data->set).proxy_ssl.issuercert;
          }
          else {
            pcVar30 = (data->set).ssl.issuercert;
          }
          Curl_failf(data,"SSL: Unable to open issuer cert (%s)",pcVar30);
        }
        BIO_free(pBVar12);
      }
      else {
        pXVar13 = PEM_read_bio_X509(pBVar12,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);
        if (pXVar13 == (X509 *)0x0) {
          if (strict) {
            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&
               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {
              pcVar30 = (data->set).proxy_ssl.issuercert;
            }
            else {
              pcVar30 = (data->set).ssl.issuercert;
            }
            Curl_failf(data,"SSL: Unable to read issuer cert (%s)",pcVar30);
          }
          BIO_free(pBVar12);
          pXVar13 = (X509 *)0x0;
        }
        else {
          iVar38 = X509_check_issued(pXVar13,(X509 *)connssl->backend->server_cert);
          if (iVar38 == 0) {
            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&
               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {
              pcVar30 = (data->set).proxy_ssl.issuercert;
            }
            else {
              pcVar30 = (data->set).ssl.issuercert;
            }
            Curl_infof(data," SSL certificate issuer check ok (%s)\n",pcVar30);
            BIO_free(pBVar12);
            X509_free(pXVar13);
            goto LAB_000784c4;
          }
          if (strict) {
            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&
               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {
              pcVar30 = (data->set).proxy_ssl.issuercert;
            }
            else {
              pcVar30 = (data->set).ssl.issuercert;
            }
            Curl_failf(data,"SSL: Certificate issuer check failed (%s)",pcVar30);
          }
          BIO_free(pBVar12);
        }
        X509_free(pXVar13);
      }
      X509_free((X509 *)connssl->backend->server_cert);
      CVar41 = CURLE_SSL_ISSUER_ERROR;
      connssl->backend->server_cert = (X509 *)0x0;
      goto LAB_00078251;
    }
LAB_000784c4:
    lVar16 = SSL_get_verify_result((SSL *)connssl->backend->handle);
    *local_9f4 = lVar16;
    if (lVar16 == 0) {
      CVar41 = CURLE_OK;
      Curl_infof(data," SSL certificate verify ok.\n",pcVar30);
      cVar39 = (conn->http_proxy).proxytype;
    }
    else {
      cVar39 = (conn->http_proxy).proxytype;
      if ((cVar39 == CURLPROXY_HTTPS) &&
         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {
        cVar2 = (conn->proxy_ssl_config).verifypeer;
      }
      else {
        cVar2 = (conn->ssl_config).verifypeer;
      }
      if (cVar2 == '\0') {
        CVar41 = CURLE_OK;
        pcVar30 = X509_verify_cert_error_string(lVar16);
        Curl_infof(data," SSL certificate verify result: %s (%ld), continuing anyway.\n",pcVar30,
                   lVar16);
        cVar39 = (conn->http_proxy).proxytype;
      }
      else {
        CVar41 = CURLE_PEER_FAILED_VERIFICATION;
        if (strict) {
          pcVar30 = X509_verify_cert_error_string(lVar16);
          Curl_failf(data,"SSL certificate verify result: %s (%ld)",pcVar30,lVar16);
          cVar39 = (conn->http_proxy).proxytype;
        }
      }
    }
  }
  else if (strict) {
    CVar41 = CURLE_PEER_FAILED_VERIFICATION;
    Curl_failf(data,"SSL: couldn\'t get X509-issuer name!",puVar17);
    cVar39 = (conn->http_proxy).proxytype;
  }
  else {
    CVar41 = CURLE_PEER_FAILED_VERIFICATION;
    cVar39 = (conn->http_proxy).proxytype;
  }
  if ((cVar39 == CURLPROXY_HTTPS) &&
     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {
    cVar2 = (conn->proxy_ssl_config).verifystatus;
    psVar18 = connssl->backend;
  }
  else {
    cVar2 = (conn->ssl_config).verifystatus;
    psVar18 = connssl->backend;
  }
  if (cVar2 == '\0') {
LAB_0007814e:
    if (!strict) {
      CVar41 = CURLE_OK;
    }
    if ((cVar39 == CURLPROXY_HTTPS) &&
       (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {
      pcVar30 = (data->set).str[0x1f];
    }
    else {
      pcVar30 = (data->set).str[0x1e];
    }
    pXVar13 = (X509 *)psVar18->server_cert;
    ptr = pcVar30;
    if ((CVar41 == CURLE_OK) && (pcVar30 != (char *)0x0)) {
      temp = (uchar *)0x0;
      if (pXVar13 == (X509 *)0x0) {
LAB_00078208:
        CVar41 = CURLE_SSL_PINNEDPUBKEYNOTMATCH;
      }
      else {
        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);
        sVar20 = i2d_X509_PUBKEY(pXVar19,(uchar **)0x0);
        if (((int)sVar20 < 1) ||
           (puVar17 = (uchar *)(*Curl_cmalloc)(sVar20), temp = puVar17, puVar17 == (uchar *)0x0))
        goto LAB_00078208;
        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);
        sVar21 = i2d_X509_PUBKEY(pXVar19,&temp);
        if ((sVar20 != sVar21) || ((temp == (uchar *)0x0 || (sVar20 != (int)temp - (int)puVar17))))
        {
          (*Curl_cfree)(puVar17);
          goto LAB_00078208;
        }
        CVar41 = Curl_pin_peer_pubkey(data,pcVar30,puVar17,sVar20);
        (*Curl_cfree)(puVar17);
        if (CVar41 == CURLE_OK) {
          pXVar13 = (X509 *)connssl->backend->server_cert;
          goto LAB_00078230;
        }
      }
      Curl_failf(data,"SSL: public key does not match pinned public key!");
      pXVar13 = (X509 *)connssl->backend->server_cert;
    }
LAB_00078230:
    X509_free(pXVar13);
    connssl->backend->server_cert = (X509 *)0x0;
    connssl->connecting_state = ssl_connect_done;
    goto LAB_00078251;
  }
  pCVar5 = conn->data;
  lVar16 = SSL_ctrl((SSL *)psVar18->handle,0x46,0,&ptr_1);
  if (ptr_1 == (char *)0x0) {
    Curl_failf(pCVar5,"No OCSP response received");
    resp = (OCSP_RESPONSE *)0x0;
LAB_000795a6:
    OCSP_RESPONSE_free(resp);
  }
  else {
    psig = (ASN1_BIT_STRING *)ptr_1;
    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&psig,lVar16);
    if (resp == (OCSP_RESPONSE *)0x0) {
LAB_00079758:
      Curl_failf(pCVar5,"Invalid OCSP response");
      goto LAB_000795a6;
    }
    iVar38 = OCSP_response_status(resp);
    if (iVar38 != 0) {
      pcVar30 = OCSP_response_status_str(iVar38);
      Curl_failf(pCVar5,"Invalid OCSP response status: %s (%d)",pcVar30,iVar38);
      goto LAB_000795a6;
    }
    bs = OCSP_response_get1_basic(resp);
    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;
    psVar27 = SSL_get_peer_cert_chain((SSL *)connssl->backend->handle);
    st = SSL_CTX_get_cert_store((SSL_CTX *)connssl->backend->ctx);
    iVar38 = OCSP_basic_verify(bs,psVar27,st,0);
    if (0 < iVar38) {
      for (iVar38 = 0; iVar28 = OCSP_resp_count(bs), iVar38 < iVar28; iVar38 = iVar38 + 1) {
        single = OCSP_resp_get0(bs,iVar38);
        if (single != (OCSP_SINGLERESP *)0x0) {
          iVar28 = OCSP_single_get0_status
                             (single,(int *)&p,(ASN1_GENERALIZEDTIME **)&q,
                              (ASN1_GENERALIZEDTIME **)&palg,(ASN1_GENERALIZEDTIME **)&temp);
          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)palg,(ASN1_GENERALIZEDTIME *)temp,300
                                       ,-1);
          if (iVar29 == 0) {
            Curl_failf(pCVar5,"OCSP response has expired");
          }
          else {
            pcVar30 = OCSP_cert_status_str(iVar28);
            Curl_infof(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28);
            if (iVar28 == 1) {
              pcVar30 = OCSP_crl_reason_str((long)p);
              Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);
            }
            else if (iVar28 != 2) goto LAB_00079488;
          }
          OCSP_BASICRESP_free(bs);
          OCSP_RESPONSE_free(resp);
          goto LAB_00078c7e;
        }
LAB_00079488:
      }
      OCSP_BASICRESP_free(bs);
      CVar41 = CURLE_OK;
      OCSP_RESPONSE_free(resp);
      cVar39 = (conn->http_proxy).proxytype;
      psVar18 = connssl->backend;
      goto LAB_0007814e;
    }
    Curl_failf(pCVar5,"OCSP response verification failed");
    OCSP_BASICRESP_free(bs);
    OCSP_RESPONSE_free(resp);
  }
LAB_00078c7e:
  X509_free((X509 *)connssl->backend->server_cert);
  CVar41 = CURLE_SSL_INVALIDCERTSTATUS;
  connssl->backend->server_cert = (X509 *)0x0;
LAB_00078251:
  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {
    return CVar41;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



int __regparm3 FUN_00077ef0(undefined4 param_1,int param_2,char param_3)

{
  char *pcVar1;
  byte *pbVar2;
  char cVar3;
  int iVar4;
  bool bVar5;
  bool bVar6;
  bool bVar7;
  uint uVar8;
  int *piVar9;
  BIO_METHOD *pBVar10;
  BIO *pBVar11;
  X509 *pXVar12;
  undefined1 *puVar13;
  ASN1_TIME *pAVar14;
  long lVar15;
  ASN1_GENERALIZEDTIME *pAVar16;
  X509_PUBKEY *pXVar17;
  ASN1_GENERALIZEDTIME *pAVar18;
  int iVar19;
  GENERAL_NAMES *a;
  char *pcVar20;
  int *piVar21;
  undefined1 *puVar22;
  BIO *out;
  undefined4 uVar23;
  ASN1_INTEGER *pAVar24;
  X509_EXTENSION *ex;
  BIO *out_00;
  ASN1_OBJECT *a_00;
  uint uVar25;
  uint uVar26;
  OCSP_RESPONSE *resp;
  OCSP_BASICRESP *bs;
  stack_st_X509 *psVar27;
  X509_STORE *st;
  int iVar28;
  OCSP_SINGLERESP *single;
  int iVar29;
  char *pcVar30;
  EVP_PKEY *pkey;
  ASN1_OCTET_STRING *v;
  X509_NAME *pXVar31;
  ASN1_GENERALIZEDTIME *pAVar32;
  size_t sVar33;
  X509_NAME_ENTRY *ne;
  ASN1_STRING *pAVar34;
  size_t sVar35;
  ASN1_GENERALIZEDTIME *pAVar36;
  void *pvVar37;
  ulong e;
  int iVar38;
  uint uVar39;
  ASN1_GENERALIZEDTIME *extraout_EDX;
  int unaff_EBX;
  undefined4 *puVar40;
  char *pcVar41;
  int in_GS_OFFSET;
  byte bVar42;
  X509 *local_a48;
  int local_a44;
  char *local_a30;
  int local_a2c;
  char *local_a28;
  int local_a24;
  ASN1_GENERALIZEDTIME *local_a20;
  int local_a1c;
  ASN1_GENERALIZEDTIME *local_a14;
  ASN1_GENERALIZEDTIME *local_a10;
  long *local_9f8;
  ASN1_GENERALIZEDTIME *local_9d0;
  int *local_9cc;
  int *local_9c8;
  long local_9c4;
  ASN1_GENERALIZEDTIME *local_9c0;
  BIGNUM *local_9bc;
  ASN1_GENERALIZEDTIME *local_9b8;
  char local_9b4 [16];
  char local_9a4 [128];
  char local_924 [4];
  undefined4 local_920 [63];
  undefined1 local_824 [512];
  undefined1 auStack_624 [1536];
  int local_24;
  undefined4 uStack_14;
  
  bVar42 = 0;
  uStack_14 = 0x77ef9;
  piVar9 = (int *)entry();
  iVar4 = *piVar9;
  local_24 = *(int *)(in_GS_OFFSET + 0x14);
  puVar40 = local_920;
  for (iVar38 = 0x3f; iVar38 != 0; iVar38 = iVar38 + -1) {
    *puVar40 = 0;
    puVar40 = puVar40 + (uint)bVar42 * -2 + 1;
  }
  local_924[0] = '\0';
  local_924[1] = '\0';
  local_924[2] = '\0';
  local_924[3] = '\0';
  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
    local_9f8 = (long *)(iVar4 + 0x8b4);
  }
  else {
    local_9f8 = (long *)(iVar4 + 0x850);
  }
  pBVar10 = BIO_s_mem();
  pBVar11 = BIO_new(pBVar10);
  if (*(char *)(iVar4 + 0x864) != '\0') {
    iVar38 = *piVar9;
    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));
    if (psVar27 != (stack_st_X509 *)0x0) {
      iVar19 = OPENSSL_sk_num(psVar27);
      iVar28 = FUN_0007b4c0(iVar38,iVar19);
      if (iVar28 == 0) {
        pBVar10 = BIO_s_mem();
        out = BIO_new(pBVar10);
        if (0 < iVar19) {
          local_a44 = 0;
          do {
            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);
            local_9c8 = (int *)0x0;
            pXVar31 = X509_get_subject_name(pXVar12);
            X509_NAME_print_ex(out,pXVar31,0,0x82031f);
            lVar15 = BIO_ctrl(out,3,0,&local_9cc);
            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);
            BIO_ctrl(out,1,0,(void *)0x0);
            pXVar31 = X509_get_issuer_name(pXVar12);
            X509_NAME_print_ex(out,pXVar31,0,0x82031f);
            lVar15 = BIO_ctrl(out,3,0,&local_9cc);
            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);
            BIO_ctrl(out,1,0,(void *)0x0);
            uVar23 = X509_get_version(pXVar12);
            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);
            lVar15 = BIO_ctrl(out,3,0,&local_9cc);
            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);
            BIO_ctrl(out,1,0,(void *)0x0);
            pAVar24 = X509_get_serialNumber(pXVar12);
            if (pAVar24->type == 0x102) {
              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));
            }
            iVar28 = 0;
            if (0 < pAVar24->length) {
              do {
                pbVar2 = pAVar24->data + iVar28;
                iVar28 = iVar28 + 1;
                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);
              } while (iVar28 < pAVar24->length);
            }
            lVar15 = BIO_ctrl(out,3,0,&local_9cc);
            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);
            BIO_ctrl(out,1,0,(void *)0x0);
            local_9bc = (BIGNUM *)0x0;
            pAVar34 = ASN1_STRING_new();
            if (pAVar34 != (ASN1_STRING *)0x0) {
              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);
              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);
              ASN1_STRING_free(pAVar34);
              if (local_9bc != (BIGNUM *)0x0) {
                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);
                lVar15 = BIO_ctrl(out,3,0,&local_9cc);
                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);
                BIO_ctrl(out,1,0,(void *)0x0);
              }
            }
            uVar23 = X509_get0_extensions(pXVar12);
            iVar28 = OPENSSL_sk_num(uVar23);
            local_a2c = 0;
            if (0 < iVar28) {
              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)
              {
                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);
                pBVar10 = BIO_s_mem();
                out_00 = BIO_new(pBVar10);
                if (out_00 == (BIO *)0x0) break;
                a_00 = X509_EXTENSION_get_object(ex);
                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);
                iVar28 = X509V3_EXT_print(out_00,ex,0,0);
                if (iVar28 == 0) {
                  v = X509_EXTENSION_get_data(ex);
                  ASN1_STRING_print(out_00,v);
                }
                BIO_ctrl(out_00,0x73,0,&local_9b8);
                uVar25 = 0;
                uVar39 = local_9b8->length;
                pAVar16 = local_9b8;
                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;
                if (uVar39 != 0) {
                  do {
                    iVar28 = pAVar16->type;
                    uVar26 = uVar25;
                    uVar8 = uVar25 + 1;
                    local_a24 = unaff_EBX + 0xfe77;
                    if (*(char *)(iVar28 + uVar25) == '\n') {
                      uVar26 = uVar25 + 1;
                      uVar8 = uVar25 + 2;
                      local_a24 = unaff_EBX + 0x6071;
                    }
                    uVar25 = uVar8;
                    if (uVar26 < uVar39) {
                      cVar3 = *(char *)(iVar28 + uVar26);
                      if (cVar3 == ' ') {
                        uVar26 = uVar26 + 2;
                        do {
                          uVar25 = uVar26;
                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;
                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);
                          uVar26 = uVar25 + 1;
                        } while (cVar3 == ' ');
                      }
                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,
                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);
                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);
                      pAVar16 = local_9b8;
                    }
LAB_000789f7:
                    uVar39 = pAVar16->length;
                  } while (uVar25 < uVar39);
                }
                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);
                BIO_free(out_00);
              }
            }
            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);
            ASN1_TIME_print(out,pAVar14);
            lVar15 = BIO_ctrl(out,3,0,&local_9cc);
            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);
            BIO_ctrl(out,1,0,(void *)0x0);
            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);
            ASN1_TIME_print(out,pAVar14);
            lVar15 = BIO_ctrl(out,3,0,&local_9cc);
            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);
            BIO_ctrl(out,1,0,(void *)0x0);
            pkey = X509_get_pubkey(pXVar12);
            if (pkey == (EVP_PKEY *)0x0) {
              FUN_00027140(iVar38,unaff_EBX + 0x10488);
            }
            else {
              iVar28 = EVP_PKEY_id(pkey);
              if (iVar28 == 0x1c) {
                uVar23 = EVP_PKEY_get0_DH(pkey);
                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);
                iVar28 = unaff_EBX + 0x544b;
                DH_get0_key(uVar23,&local_9b8,0);
LAB_0007922b:
                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);
                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);
                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);
                iVar29 = unaff_EBX + 0x104b5;
LAB_000791bc:
                FUN_00075190(iVar28,iVar29,local_9b8);
              }
              else {
                if (iVar28 == 0x74) {
                  uVar23 = EVP_PKEY_get0_DSA(pkey);
                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);
                  iVar28 = unaff_EBX + 0xc090;
                  DSA_get0_key(uVar23,&local_9b8,0);
                  goto LAB_0007922b;
                }
                if (iVar28 == 6) {
                  iVar28 = unaff_EBX + 0xc081;
                  uVar23 = EVP_PKEY_get0_RSA(pkey);
                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);
                  BN_print(out,local_9bc);
                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);
                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);
                  BIO_ctrl(out,1,0,(void *)0x0);
                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);
                  iVar29 = unaff_EBX + 0x102a0;
                  goto LAB_000791bc;
                }
              }
              EVP_PKEY_free(pkey);
            }
            if (local_9c8 != (int *)0x0) {
              iVar28 = 0;
              if (0 < *local_9c8) {
                do {
                  pbVar2 = (byte *)(local_9c8[2] + iVar28);
                  iVar28 = iVar28 + 1;
                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),
                             (uint)*pbVar2);
                } while (iVar28 < *local_9c8);
              }
              lVar15 = BIO_ctrl(out,3,0,&local_9cc);
              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);
              BIO_ctrl(out,1,0,(void *)0x0);
            }
            PEM_write_bio_X509(out,pXVar12);
            lVar15 = BIO_ctrl(out,3,0,&local_9cc);
            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);
            BIO_ctrl(out,1,0,(void *)0x0);
            local_a44 = local_a44 + 1;
          } while (iVar19 != local_a44);
        }
        BIO_free(out);
      }
    }
  }
  iVar38 = *(int *)(param_2 + 0xc);
  pXVar12 = SSL_get_peer_certificate(*(SSL **)(iVar38 + 4));
  *(X509 **)(iVar38 + 8) = pXVar12;
  if (*(int *)(*(int *)(param_2 + 0xc) + 8) == 0) {
    iVar38 = 0;
    BIO_free(pBVar11);
    if (param_3 != '\0') {
      iVar38 = 0x3c;
      FUN_00027240(iVar4,unaff_EBX + 0x1122f);
    }
    goto LAB_00078251;
  }
  iVar38 = unaff_EBX + 0x5eef;
  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
    iVar38 = unaff_EBX + 0x5ee9;
  }
  FUN_00027140(iVar4,unaff_EBX + 0x104d2,iVar38);
  X509_get_subject_name(*(X509 **)(*(int *)(param_2 + 0xc) + 8));
  puVar22 = local_824;
  iVar38 = FUN_00077df0();
  puVar13 = (undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX);
  if (iVar38 == 0) {
    puVar13 = puVar22;
  }
  FUN_00027140(iVar4,unaff_EBX + 0x104e3,puVar13);
  pAVar14 = (ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));
  ASN1_TIME_print(pBVar11,pAVar14);
  lVar15 = BIO_ctrl(pBVar11,3,0,&local_9d0);
  FUN_00027140(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0);
  BIO_ctrl(pBVar11,1,0,(void *)0x0);
  pAVar14 = (ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));
  ASN1_TIME_print(pBVar11,pAVar14);
  pAVar16 = (ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0);
  pcVar30 = (char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX);
  local_a10 = local_9d0;
  FUN_00027140(iVar4,pcVar30,pAVar16,local_9d0);
  BIO_ctrl(pBVar11,1,0,(void *)0x0);
  BIO_free(pBVar11);
  local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);
  if (piVar9[0x3a] != 2) {
    if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;
    local_a1c = *piVar9;
LAB_00078282:
    local_a30 = (char *)piVar9[0x25];
    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];
LAB_0007829a:
    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||
       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {
      local_a28 = local_9b4;
      iVar38 = inet_pton(2,local_a30,local_a28);
      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);
      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;
    }
    else {
      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;
      iVar38 = 7;
    }
    local_a28 = local_9b4;
    pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;
    pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;
    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);
    local_a10 = pAVar18;
    if (a == (GENERAL_NAMES *)0x0) {
LAB_00079040:
      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);
      local_9b8 = pAVar18;
      pXVar31 = X509_get_subject_name(local_a48);
      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;
      if (pXVar31 == (X509_NAME *)0x0) {
LAB_0007908e:
        if (local_9b8 == pAVar18) {
          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;
LAB_0007950b:
          unaff_EBX = unaff_EBX + 0x1132b;
          local_a14 = local_a10;
        }
        else {
          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;
          iVar38 = FUN_000602e0(local_9b8,local_a30);
          pAVar16 = local_9b8;
          if (iVar38 != 0) {
            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);
            FUN_00027140(local_a1c,pcVar30,local_9b8);
            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;
            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);
            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;
            local_a10 = extraout_EDX;
            CRYPTO_free(local_9b8);
            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);
            goto LAB_000780f3;
          }
          unaff_EBX = unaff_EBX + 0x11363;
        }
        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);
LAB_000790e4:
        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {
          CRYPTO_free(local_9b8);
          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);
          goto LAB_000794d2;
        }
      }
      else {
        do {
          pAVar36 = pAVar32;
          pAVar16 = pAVar36;
          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);
        } while (-1 < (int)pAVar32);
        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;
        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);
        pAVar34 = X509_NAME_ENTRY_get_data(ne);
        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;
        iVar38 = ASN1_STRING_type(pAVar34);
        if (iVar38 == 0xc) {
          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);
          if ((int)pAVar32 < 0) goto LAB_0007969a;
          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;
          local_9b8 = (ASN1_GENERALIZEDTIME *)
                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),
                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);
          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {
            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);
            pAVar16 = pAVar32;
            memcpy(local_9b8,pvVar37,(size_t)pAVar32);
            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';
            goto LAB_0007969a;
          }
          goto LAB_0007950b;
        }
        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);
LAB_0007969a:
        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;
        sVar35 = strlen((char *)local_9b8);
        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);
        if (pAVar36 == pAVar32) goto LAB_0007908e;
        FUN_00027240(local_a1c,unaff_EBX + 0x10527);
        if (local_9b8 != pAVar18) goto LAB_000790e4;
      }
      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);
    }
    else {
      pcVar20 = (char *)OPENSSL_sk_num(a);
      if ((int)pcVar20 < 1) {
        GENERAL_NAMES_free(a);
        local_a10 = pAVar18;
        goto LAB_00079040;
      }
      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);
      bVar5 = false;
      pcVar41 = (char *)0x0;
      bVar6 = false;
      bVar7 = false;
      do {
        while( true ) {
          pcVar30 = pcVar41;
          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);
          iVar19 = *piVar21;
          if (iVar19 == 2) break;
          if (iVar19 == 7) {
            if (iVar38 == 7) {
              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);
              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);
              if (local_a20 == pAVar32) {
                pcVar30 = local_a28;
                pAVar16 = local_a20;
                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);
                bVar6 = true;
                if (iVar19 == 0) {
                  pcVar30 = pcVar1;
                  pAVar16 = local_a14;
                  FUN_00027140(local_a1c,pcVar1,local_a14);
                  bVar5 = true;
                }
                goto LAB_00078351;
              }
            }
            bVar6 = true;
          }
          else if (iVar19 == iVar38) {
            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);
            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);
            if (iVar38 == 2) goto LAB_00079422;
          }
LAB_00078351:
          pcVar41 = pcVar41 + 1;
          local_a10 = pAVar18;
          if (pcVar20 == pcVar41) goto LAB_0007838a;
        }
        if (iVar38 == 2) {
          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);
          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);
          bVar7 = true;
LAB_00079422:
          sVar33 = strlen((char *)local_a10);
          if ((sVar33 != sVar35) ||
             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))
          goto LAB_00078351;
          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);
          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);
          GENERAL_NAMES_free(a);
          pAVar16 = local_a14;
          goto LAB_000783a8;
        }
        bVar7 = true;
        pcVar41 = pcVar41 + 1;
        local_a10 = pAVar18;
      } while (pcVar20 != pcVar41);
LAB_0007838a:
      GENERAL_NAMES_free(a);
      if (bVar5) {
LAB_000783a8:
        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);
        goto LAB_000780f3;
      }
      if ((!bVar6) && (!bVar7)) goto LAB_00079040;
      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);
      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);
      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);
    }
LAB_000794d2:
    iVar38 = 0x3c;
    X509_free(pXVar12);
    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;
    goto LAB_00078251;
  }
  if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) {
    if (*(char *)((int)piVar9 + 0x201) != '\0') {
      local_a1c = *piVar9;
      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;
      goto LAB_00078a68;
    }
  }
  else if (*(char *)((int)piVar9 + 0x229) != '\0') {
    local_a1c = *piVar9;
LAB_00078a68:
    local_a30 = (char *)piVar9[0x37];
    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];
    goto LAB_0007829a;
  }
LAB_000780f3:
  X509_get_issuer_name(local_a48);
  iVar38 = FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10);
  if (iVar38 == 0) {
    FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);
    if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
      iVar38 = *(int *)(iVar4 + 0x8bc);
    }
    else {
      iVar38 = *(int *)(iVar4 + 0x858);
    }
    if (iVar38 != 0) {
      pBVar10 = BIO_s_file();
      pBVar11 = BIO_new(pBVar10);
      if (pBVar11 == (BIO *)0x0) {
        e = ERR_get_error();
        ERR_error_string_n(e,local_924,0x100);
        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);
        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));
        iVar38 = 0x1b;
        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;
        goto LAB_00078251;
      }
      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
        pvVar37 = *(void **)(iVar4 + 0x8bc);
      }
      else {
        pvVar37 = *(void **)(iVar4 + 0x858);
      }
      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);
      if (lVar15 < 1) {
        if (param_3 != '\0') {
          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);
          }
          else {
            uVar23 = *(undefined4 *)(iVar4 + 0x858);
          }
          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);
        }
        BIO_free(pBVar11);
      }
      else {
        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);
        if (pXVar12 == (X509 *)0x0) {
          if (param_3 != '\0') {
            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);
            }
            else {
              uVar23 = *(undefined4 *)(iVar4 + 0x858);
            }
            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);
          }
          BIO_free(pBVar11);
          pXVar12 = (X509 *)0x0;
        }
        else {
          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));
          if (iVar38 == 0) {
            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);
            }
            else {
              puVar22 = *(undefined1 **)(iVar4 + 0x858);
            }
            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);
            BIO_free(pBVar11);
            X509_free(pXVar12);
            goto LAB_000784c4;
          }
          if (param_3 != '\0') {
            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);
            }
            else {
              uVar23 = *(undefined4 *)(iVar4 + 0x858);
            }
            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);
          }
          BIO_free(pBVar11);
        }
        X509_free(pXVar12);
      }
      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));
      iVar38 = 0x53;
      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;
      goto LAB_00078251;
    }
LAB_000784c4:
    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));
    *local_9f8 = lVar15;
    if (lVar15 == 0) {
      iVar38 = 0;
      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);
      iVar19 = piVar9[0x3a];
    }
    else {
      iVar19 = piVar9[0x3a];
      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
        cVar3 = (char)piVar9[0x8a];
      }
      else {
        cVar3 = (char)piVar9[0x80];
      }
      if (cVar3 == '\0') {
        iVar38 = 0;
        pcVar30 = X509_verify_cert_error_string(lVar15);
        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);
        iVar19 = piVar9[0x3a];
      }
      else {
        iVar38 = 0x3c;
        if (param_3 != '\0') {
          pcVar30 = X509_verify_cert_error_string(lVar15);
          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);
          iVar19 = piVar9[0x3a];
        }
      }
    }
  }
  else if (param_3 == '\0') {
    iVar38 = 0x3c;
    iVar19 = piVar9[0x3a];
  }
  else {
    iVar38 = 0x3c;
    FUN_00027240(iVar4,unaff_EBX + 0x113ab);
    iVar19 = piVar9[0x3a];
  }
  if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
    cVar3 = *(char *)((int)piVar9 + 0x22a);
    iVar28 = *(int *)(param_2 + 0xc);
  }
  else {
    cVar3 = *(char *)((int)piVar9 + 0x202);
    iVar28 = *(int *)(param_2 + 0xc);
  }
  if (cVar3 == '\0') {
LAB_0007814e:
    if (param_3 == '\0') {
      iVar38 = 0;
    }
    if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);
    }
    else {
      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);
    }
    pXVar12 = *(X509 **)(iVar28 + 8);
    local_9d0 = pAVar16;
    if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {
      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;
      if (pXVar12 == (X509 *)0x0) {
LAB_00078208:
        iVar38 = 0x5a;
      }
      else {
        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);
        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);
        if ((iVar38 < 1) ||
           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),
           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;
        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);
        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);
        if ((iVar38 != iVar19) ||
           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))
           ) {
          (**(code **)(unaff_EBX + 0x39173))(pAVar18);
          goto LAB_00078208;
        }
        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);
        (**(code **)(unaff_EBX + 0x39173))(pAVar18);
        if (iVar38 == 0) {
          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);
          goto LAB_00078230;
        }
      }
      FUN_00027240(iVar4,unaff_EBX + 0x11577);
      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);
    }
LAB_00078230:
    X509_free(pXVar12);
    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;
    *(undefined4 *)(param_2 + 8) = 5;
    goto LAB_00078251;
  }
  iVar38 = *piVar9;
  lVar15 = SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc);
  if (local_9cc == (int *)0x0) {
    FUN_00027240(iVar38,unaff_EBX + 0x1058a);
    resp = (OCSP_RESPONSE *)0x0;
LAB_000795a6:
    OCSP_RESPONSE_free(resp);
  }
  else {
    local_9c8 = local_9cc;
    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);
    if (resp == (OCSP_RESPONSE *)0x0) {
LAB_00079758:
      FUN_00027240(iVar38,unaff_EBX + 0x105a4);
      goto LAB_000795a6;
    }
    iVar19 = OCSP_response_status(resp);
    if (iVar19 != 0) {
      pcVar30 = OCSP_response_status_str(iVar19);
      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);
      goto LAB_000795a6;
    }
    bs = OCSP_response_get1_basic(resp);
    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;
    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));
    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));
    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);
    if (0 < iVar19) {
      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {
        single = OCSP_resp_get0(bs,iVar19);
        if (single != (OCSP_SINGLERESP *)0x0) {
          iVar28 = OCSP_single_get0_status
                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,
                              &local_9b8);
          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);
          if (iVar29 == 0) {
            FUN_00027240(iVar38,unaff_EBX + 0x105ba);
          }
          else {
            pcVar30 = OCSP_cert_status_str(iVar28);
            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);
            if (iVar28 == 1) {
              pcVar30 = OCSP_crl_reason_str(local_9c4);
              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);
            }
            else if (iVar28 != 2) goto LAB_00079488;
          }
          OCSP_BASICRESP_free(bs);
          OCSP_RESPONSE_free(resp);
          goto LAB_00078c7e;
        }
LAB_00079488:
      }
      OCSP_BASICRESP_free(bs);
      iVar38 = 0;
      OCSP_RESPONSE_free(resp);
      iVar19 = piVar9[0x3a];
      iVar28 = *(int *)(param_2 + 0xc);
      goto LAB_0007814e;
    }
    FUN_00027240(iVar38,unaff_EBX + 0x11503);
    OCSP_BASICRESP_free(bs);
    OCSP_RESPONSE_free(resp);
  }
LAB_00078c7e:
  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));
  iVar38 = 0x5b;
  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;
LAB_00078251:
  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {
    return iVar38;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0007c1a0();
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00019ed0
ADD EBX,0x388e7
SUB ESP,0xa3c
MOV dword ptr [ESP + 0x14],EAX
LEA EDI,[ESP + 0x130]
MOV dword ptr [ESP + 0x18],EDX
MOV EDX,EAX
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x38],ECX
MOV ECX,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0xa2c],ECX
XOR ECX,ECX
MOV dword ptr [ESP + 0x10],EAX
MOV ECX,0x3f
XOR EAX,EAX
STOSD.REP ES:EDI
CMP dword ptr [EDX + 0xe8],0x2
MOV dword ptr [ESP + 0x12c],0x0
JZ 0x00078550
MOV EAX,dword ptr [ESP + 0x10]
ADD EAX,0x850
MOV dword ptr [ESP + 0x58],EAX
CALL 0x00019e50
SUB ESP,0xc
PUSH EAX
CALL 0x00018310
MOV dword ptr [ESP + 0x58],EAX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x10]
CMP byte ptr [EAX + 0x864],0x0
JNZ 0x00078580
MOV EDI,dword ptr [ESP + 0x18]
SUB ESP,0xc
MOV ESI,dword ptr [EDI + 0xc]
PUSH dword ptr [ESI + 0x4]
CALL 0x00018cc0
ADD ESP,0x10
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [EDI + 0xc]
MOV ESI,dword ptr [EAX + 0x8]
TEST ESI,ESI
JZ 0x000792f0
MOV ECX,dword ptr [ESP + 0x14]
LEA EAX,[EBX + 0xfffcd608]
CMP dword ptr [ECX + 0xe8],0x2
JZ 0x00078a88
SUB ESP,0x4
PUSH EAX
LEA EAX,[EBX + 0xfffd7beb]
PUSH EAX
MOV ESI,dword ptr [ESP + 0x1c]
PUSH ESI
CALL 0x00027140
POP EAX
MOV EBP,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [EBP + 0xc]
PUSH dword ptr [EAX + 0x8]
CALL 0x000193d0
LEA EDI,[ESP + 0x23c]
MOV EDX,EDI
CALL 0x00077df0
ADD ESP,0xc
TEST EAX,EAX
LEA EAX,[EBX + 0xfffd7b4d]
CMOVZ EAX,EDI
PUSH EAX
LEA EAX,[EBX + 0xfffd7bfc]
PUSH EAX
MOV dword ptr [ESP + 0x1c],ESI
PUSH ESI
CALL 0x00027140
POP EAX
MOV EAX,dword ptr [EBP + 0xc]
MOV dword ptr [ESP + 0x24],EBP
PUSH dword ptr [EAX + 0x8]
CALL 0x00019d90
POP EDX
POP ECX
PUSH EAX
MOV EBP,dword ptr [ESP + 0x54]
PUSH EBP
CALL 0x00019960
LEA ESI,[ESP + 0x90]
PUSH ESI
PUSH 0x0
PUSH 0x3
PUSH EBP
CALL 0x00018ce0
ADD ESP,0x20
PUSH dword ptr [ESP + 0x80]
PUSH EAX
LEA EAX,[EBX + 0xfffd7c0a]
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00027140
PUSH 0x0
PUSH 0x0
PUSH 0x1
PUSH EBP
CALL 0x00018ce0
ADD ESP,0x14
MOV EAX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [EAX + 0xc]
PUSH dword ptr [EAX + 0x8]
CALL 0x00018700
POP EDX
POP ECX
PUSH EAX
PUSH EBP
CALL 0x00019960
PUSH ESI
PUSH 0x0
PUSH 0x3
PUSH EBP
CALL 0x00018ce0
ADD ESP,0x20
PUSH dword ptr [ESP + 0x80]
PUSH EAX
LEA EAX,[EBX + 0xfffd7c1d]
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00027140
PUSH 0x0
PUSH 0x0
PUSH 0x1
PUSH EBP
CALL 0x00018ce0
ADD ESP,0x14
PUSH EBP
CALL 0x00018170
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x14]
CMP dword ptr [EAX + 0xe8],0x2
MOV EAX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x8],EAX
JZ 0x00078a30
MOV EAX,dword ptr [ESP + 0x14]
CMP byte ptr [EAX + 0x201],0x0
JNZ 0x00078278
SUB ESP,0xc
PUSH dword ptr [ESP + 0x14]
CALL 0x00019510
MOV EDX,EDI
CALL 0x00077df0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000783c0
CMP byte ptr [ESP + 0x38],0x0
JNZ 0x00079330
MOV EAX,dword ptr [ESP + 0x14]
MOV ESI,0x3c
MOV EDX,dword ptr [EAX + 0xe8]
CMP EDX,0x2
JZ 0x00078ab0
MOV EAX,dword ptr [ESP + 0x14]
MOVZX ECX,byte ptr [EAX + 0x202]
MOV EAX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [EAX + 0xc]
TEST CL,CL
JNZ 0x00078ae7
CMP byte ptr [ESP + 0x38],0x0
MOV ECX,0x0
CMOVZ ESI,ECX
CMP EDX,0x2
JZ 0x00078cb0
MOV ECX,dword ptr [ESP + 0x10]
MOV EBP,dword ptr [ECX + 0x9e4]
MOV dword ptr [ESP + 0x80],EBP
MOV EDI,dword ptr [EAX + 0x8]
TEST ESI,ESI
JNZ 0x00078230
TEST EBP,EBP
JZ 0x00078230
MOV dword ptr [ESP + 0x98],0x0
TEST EDI,EDI
JZ 0x00078208
SUB ESP,0xc
PUSH EDI
CALL 0x00018a40
POP EDX
POP ECX
PUSH 0x0
PUSH EAX
CALL 0x00019e10
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JLE 0x00078208
SUB ESP,0xc
PUSH EAX
LEA EAX,[EBX + 0x890]
CALL dword ptr [EAX]
MOV dword ptr [ESP + 0xa8],EAX
ADD ESP,0x10
TEST EAX,EAX
MOV dword ptr [ESP + 0x8],EAX
JZ 0x00078208
SUB ESP,0xc
PUSH EDI
CALL 0x00018a40
POP ECX
POP EDI
LEA ECX,[ESP + 0xa0]
PUSH ECX
PUSH EAX
CALL 0x00019e10
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
CMP ESI,EAX
JZ 0x00079898
SUB ESP,0xc
LEA EAX,[EBX + 0x88c]
PUSH EDX
CALL dword ptr [EAX]
ADD ESP,0x10
MOV ESI,0x5a
SUB ESP,0x8
LEA EAX,[EBX + 0xfffd8c90]
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00027240
MOV EAX,dword ptr [ESP + 0x28]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0xc]
MOV EDI,dword ptr [EAX + 0x8]
LEA ESI,[ESI]
SUB ESP,0xc
PUSH EDI
CALL 0x00019eb0
MOV EDX,dword ptr [ESP + 0x28]
ADD ESP,0x10
MOV EAX,dword ptr [EDX + 0xc]
MOV dword ptr [EAX + 0x8],0x0
MOV dword ptr [EDX + 0x8],0x5
MOV ECX,dword ptr [ESP + 0xa2c]
XOR ECX,dword ptr GS:[0x14]
MOV EAX,ESI
JNZ 0x00079b07
ADD ESP,0xa3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x34],EAX
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX + 0x94]
MOV EAX,dword ptr [EAX + 0x98]
MOV dword ptr [ESP + 0x20],EDX
MOV dword ptr [ESP + 0x3c],EAX
MOV EAX,dword ptr [ESP + 0x14]
CMP byte ptr [EAX + 0x252],0x0
JNZ 0x00078ce0
LEA EAX,[ESP + 0x9c]
MOV dword ptr [ESP + 0x28],EAX
SUB ESP,0x4
PUSH dword ptr [ESP + 0x2c]
PUSH dword ptr [ESP + 0x28]
PUSH 0x2
CALL 0x00019390
ADD ESP,0x10
CMP EAX,0x1
SBB ECX,ECX
NOT ECX
AND ECX,0x4
CMP EAX,0x1
SBB ESI,ESI
MOV dword ptr [ESP + 0x30],ECX
AND ESI,0xfffffffb
ADD ESI,0x7
PUSH 0x0
PUSH 0x0
PUSH 0x55
PUSH dword ptr [ESP + 0x14]
CALL 0x000186c0
MOV dword ptr [ESP + 0x1c],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00079040
SUB ESP,0xc
PUSH EAX
CALL 0x000189f0
MOV dword ptr [ESP + 0x2c],EAX
ADD ESP,0x10
TEST EAX,EAX
JLE 0x00079030
XOR EBP,EBP
LEA EAX,[EBX + 0xfffd899c]
MOV dword ptr [ESP + 0x48],EDI
MOV byte ptr [ESP + 0x44],0x0
MOV EDI,EBP
MOV byte ptr [ESP + 0x2c],0x0
MOV byte ptr [ESP + 0x24],0x0
MOV dword ptr [ESP + 0x4c],EAX
JMP 0x0007835a
CMP EAX,0x7
JZ 0x00078fe0
CMP EAX,ESI
JZ 0x00079360
ADD EDI,0x1
CMP dword ptr [ESP + 0x1c],EDI
JZ 0x0007838a
SUB ESP,0x8
PUSH EDI
PUSH dword ptr [ESP + 0x18]
CALL 0x000187b0
ADD ESP,0x10
MOV EBP,EAX
MOV EAX,dword ptr [EAX]
CMP EAX,0x2
JNZ 0x00078340
CMP ESI,0x2
JZ 0x00079400
MOV byte ptr [ESP + 0x24],0x1
ADD EDI,0x1
CMP dword ptr [ESP + 0x1c],EDI
JNZ 0x0007835a
MOV EDI,dword ptr [ESP + 0x48]
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
CALL 0x00018120
ADD ESP,0x10
CMP byte ptr [ESP + 0x44],0x0
JZ 0x00079490
MOV EAX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x8],EAX
JMP 0x000780f3
SUB ESP,0x4
LEA EAX,[EBX + 0xfffd7c79]
PUSH EDI
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00027140
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x14]
CMP dword ptr [EAX + 0xe8],0x2
JZ 0x00078d60
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x858]
TEST EAX,EAX
SETNZ AL
TEST AL,AL
JZ 0x000784c4
CALL 0x00018e30
SUB ESP,0xc
PUSH EAX
CALL 0x00018310
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x000799d8
MOV EAX,dword ptr [ESP + 0x14]
CMP dword ptr [EAX + 0xe8],0x2
JZ 0x00079620
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x858]
PUSH EAX
PUSH 0x3
PUSH 0x6c
PUSH ESI
CALL 0x00018ce0
ADD ESP,0x10
TEST EAX,EAX
JLE 0x00079778
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH ESI
CALL 0x00018870
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JZ 0x00079840
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0xc]
PUSH dword ptr [EAX + 0x8]
PUSH EDI
CALL 0x00018070
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000798f0
MOV EAX,dword ptr [ESP + 0x14]
CMP dword ptr [EAX + 0xe8],0x2
JZ 0x000795c0
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x858]
SUB ESP,0x4
PUSH EAX
LEA EAX,[EBX + 0xfffd8b64]
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00027140
MOV dword ptr [ESP],ESI
CALL 0x00018170
MOV dword ptr [ESP],EDI
CALL 0x00019eb0
ADD ESP,0x10
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [EAX + 0xc]
PUSH dword ptr [EAX + 0x4]
CALL 0x00019980
MOV EDI,EAX
MOV EAX,dword ptr [ESP + 0x68]
ADD ESP,0x10
MOV dword ptr [EAX],EDI
TEST EDI,EDI
JZ 0x00079520
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX + 0xe8]
CMP EDX,0x2
JZ 0x000795f0
MOV EAX,dword ptr [ESP + 0x14]
MOVZX EAX,byte ptr [EAX + 0x200]
TEST AL,AL
JZ 0x00079700
CMP byte ptr [ESP + 0x38],0x0
MOV ESI,0x3c
JZ 0x0007812b
SUB ESP,0xc
PUSH EDI
CALL 0x00019c70
PUSH EDI
PUSH EAX
LEA EAX,[EBX + 0xfffd8b8c]
PUSH EAX
PUSH dword ptr [ESP + 0x2c]
CALL 0x00027240
MOV EAX,dword ptr [ESP + 0x34]
ADD ESP,0x20
MOV EDX,dword ptr [EAX + 0xe8]
JMP 0x0007812b
XOR EAX,EAX
CMP dword ptr [EDX + 0x194],-0x1
SETNZ AL
ADD EAX,0x1d
SHL EAX,0x4
CMP dword ptr [EDX + EAX*0x1 + 0x8],0x2
JZ 0x00077f51
MOV EAX,dword ptr [ESP + 0x10]
ADD EAX,0x8b4
MOV dword ptr [ESP + 0x58],EAX
JMP 0x00077f5e
MOV EAX,dword ptr [ESP + 0x14]
SUB ESP,0xc
MOV ESI,dword ptr [EAX]
MOV dword ptr [ESP + 0x14],ESI
MOV EAX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [EAX + 0xc]
PUSH dword ptr [EAX + 0x4]
CALL 0x00018110
MOV dword ptr [ESP + 0x60],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00077f84
SUB ESP,0xc
PUSH EAX
CALL 0x000189f0
MOV EDI,EAX
MOV dword ptr [ESP + 0x64],EAX
POP EAX
POP EDX
PUSH EDI
PUSH ESI
CALL 0x0007b4c0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00077f84
CALL 0x00019e50
SUB ESP,0xc
PUSH EAX
CALL 0x00018310
ADD ESP,0x10
MOV ESI,EAX
TEST EDI,EDI
JLE 0x00078f2f
LEA EAX,[ESP + 0x84]
MOV dword ptr [ESP + 0xc],0x0
MOV EBP,ESI
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[EBX + 0xfffd7b54]
MOV dword ptr [ESP + 0x60],EAX
LEA EAX,[EBX + 0xfffd7b5c]
MOV dword ptr [ESP + 0x64],EAX
LEA EAX,[EBX + 0xfffd7b63]
MOV dword ptr [ESP + 0x68],EAX
LEA EAX,[EBX + 0xfffd4a9c]
MOV dword ptr [ESP + 0x6c],EAX
LEA EAX,[EBX + 0xfffd7b67]
MOV dword ptr [ESP + 0x70],EAX
LEA EAX,[EBX + 0xfffd7b8a]
MOV dword ptr [ESP + 0x74],EAX
LEA EAX,[EBX + 0xfffd7b95]
MOV dword ptr [ESP + 0x78],EAX
LEA EAX,[EBX + 0xfffd7be6]
MOV dword ptr [ESP + 0x5c],EAX
LEA EAX,[EBX + 0xfffd7590]
MOV dword ptr [ESP + 0x7c],EAX
LEA ESI,[ESI]
NOP
SUB ESP,0x8
MOV ESI,dword ptr [ESP + 0x14]
PUSH ESI
PUSH dword ptr [ESP + 0x5c]
CALL 0x000187b0
MOV dword ptr [ESP + 0x98],0x0
MOV dword ptr [ESP + 0x30],EAX
MOV EDI,EAX
MOV dword ptr [ESP],EAX
CALL 0x000193d0
PUSH 0x82031f
PUSH 0x0
PUSH EAX
PUSH EBP
CALL 0x00018250
ADD ESP,0x20
PUSH dword ptr [ESP + 0x1c]
PUSH 0x0
PUSH 0x3
PUSH EBP
CALL 0x00018ce0
MOV dword ptr [ESP],EAX
PUSH dword ptr [ESP + 0x94]
PUSH dword ptr [ESP + 0x74]
PUSH ESI
PUSH dword ptr [ESP + 0x24]
CALL 0x0007b520
ADD ESP,0x20
PUSH 0x0
PUSH 0x0
PUSH 0x1
PUSH EBP
CALL 0x00018ce0
MOV dword ptr [ESP],EDI
CALL 0x00019510
PUSH 0x82031f
PUSH 0x0
PUSH EAX
PUSH EBP
CALL 0x00018250
ADD ESP,0x20
PUSH dword ptr [ESP + 0x1c]
PUSH 0x0
PUSH 0x3
PUSH EBP
CALL 0x00018ce0
MOV dword ptr [ESP],EAX
PUSH dword ptr [ESP + 0x94]
PUSH dword ptr [ESP + 0x78]
PUSH ESI
PUSH dword ptr [ESP + 0x24]
CALL 0x0007b520
ADD ESP,0x20
PUSH 0x0
PUSH 0x0
PUSH 0x1
PUSH EBP
CALL 0x00018ce0
MOV dword ptr [ESP],EDI
CALL 0x00019b90
ADD ESP,0xc
PUSH EAX
PUSH dword ptr [ESP + 0x70]
PUSH EBP
CALL 0x00018d00
PUSH dword ptr [ESP + 0x2c]
PUSH 0x0
PUSH 0x3
PUSH EBP
CALL 0x00018ce0
ADD ESP,0x14
PUSH EAX
PUSH dword ptr [ESP + 0x94]
PUSH dword ptr [ESP + 0x80]
PUSH ESI
PUSH dword ptr [ESP + 0x24]
CALL 0x0007b520
ADD ESP,0x20
PUSH 0x0
PUSH 0x0
PUSH 0x1
PUSH EBP
CALL 0x00018ce0
MOV dword ptr [ESP],EDI
CALL 0x000190a0
ADD ESP,0x10
CMP dword ptr [EAX + 0x4],0x102
MOV ESI,EAX
JZ 0x00079018
MOV EAX,dword ptr [ESI]
XOR EDI,EDI
LEA EDX,[EBX + 0xfffd6e8d]
TEST EAX,EAX
JLE 0x000787bf
MOV dword ptr [ESP + 0x24],EDX
LEA ESI,[ESI]
MOV EAX,dword ptr [ESI + 0x8]
SUB ESP,0x4
MOVZX EAX,byte ptr [EAX + EDI*0x1]
ADD EDI,0x1
PUSH EAX
PUSH dword ptr [ESP + 0x2c]
PUSH EBP
CALL 0x00018d00
ADD ESP,0x10
CMP EDI,dword ptr [ESI]
JL 0x000787a0
PUSH dword ptr [ESP + 0x1c]
PUSH 0x0
PUSH 0x3
PUSH EBP
CALL 0x00018ce0
MOV dword ptr [ESP],EAX
PUSH dword ptr [ESP + 0x94]
PUSH dword ptr [ESP + 0x84]
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x24]
CALL 0x0007b520
ADD ESP,0x20
PUSH 0x0
PUSH 0x0
PUSH 0x1
PUSH EBP
CALL 0x00018ce0
MOV dword ptr [ESP + 0xa4],0x0
CALL 0x00018810
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x000788a4
SUB ESP,0x4
PUSH dword ptr [ESP + 0x24]
LEA EAX,[ESP + 0x9c]
PUSH EAX
LEA EAX,[ESP + 0x94]
PUSH EAX
CALL 0x000185c0
ADD ESP,0xc
PUSH ESI
PUSH dword ptr [ESP + 0x9c]
PUSH EBP
CALL 0x00018450
MOV dword ptr [ESP],ESI
CALL 0x00018600
MOV EAX,dword ptr [ESP + 0xa4]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000788a4
SUB ESP,0x8
PUSH dword ptr [EAX]
PUSH EBP
CALL 0x00019d20
PUSH dword ptr [ESP + 0x2c]
PUSH 0x0
PUSH 0x3
PUSH EBP
CALL 0x00018ce0
ADD ESP,0x14
PUSH EAX
LEA EAX,[EBX + 0xfffd7b75]
PUSH dword ptr [ESP + 0x94]
PUSH EAX
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x24]
CALL 0x0007b520
ADD ESP,0x20
PUSH 0x0
PUSH 0x0
PUSH 0x1
PUSH EBP
CALL 0x00018ce0
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [ESP + 0x2c]
CALL 0x00019db0
MOV dword ptr [ESP + 0x38],EAX
MOV dword ptr [ESP],EAX
CALL 0x000189f0
ADD ESP,0x10
MOV dword ptr [ESP + 0x24],0x0
TEST EAX,EAX
JLE 0x00078ddc
MOV dword ptr [ESP + 0x4c],EBP
LEA ESI,[ESI]
NOP
SUB ESP,0xc
PUSH dword ptr [ESP + 0x34]
CALL 0x000189f0
ADD ESP,0x10
CMP dword ptr [ESP + 0x24],EAX
JGE 0x00078dd8
SUB ESP,0x8
PUSH dword ptr [ESP + 0x2c]
PUSH dword ptr [ESP + 0x34]
CALL 0x000187b0
MOV ESI,EAX
CALL 0x00019e50
MOV dword ptr [ESP],EAX
CALL 0x00018310
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x00078dd8
SUB ESP,0xc
PUSH ESI
CALL 0x00018bb0
ADD ESP,0xc
PUSH EAX
PUSH 0x80
LEA EAX,[ESP + 0xb8]
MOV dword ptr [ESP + 0x48],EAX
PUSH EAX
CALL 0x00019300
PUSH 0x0
PUSH 0x0
PUSH ESI
PUSH EBP
CALL 0x00019cd0
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00078f40
LEA EAX,[ESP + 0x98]
PUSH EAX
PUSH 0x0
PUSH 0x73
PUSH EBP
CALL 0x00018ce0
MOV EDI,dword ptr [ESP + 0xa8]
ADD ESP,0x10
XOR EAX,EAX
LEA ECX,[ESP + 0x22c]
MOV EDX,dword ptr [EDI]
MOV dword ptr [ESP + 0x34],ECX
MOV dword ptr [ESP + 0x30],ECX
LEA ECX,[EBX + 0xfffcd78a]
MOV dword ptr [ESP + 0x40],ECX
TEST EDX,EDX
JZ 0x00078a03
MOV dword ptr [ESP + 0x44],EBP
LEA ESI,[ESI]
NOP
MOV EBP,dword ptr [EDI + 0x4]
MOV ECX,dword ptr [ESP + 0x7c]
LEA ESI,[EAX + 0x1]
CMP byte ptr [EBP + EAX*0x1],0xa
MOV dword ptr [ESP + 0x2c],ECX
JNZ 0x000789c4
LEA ECX,[EAX + 0x2]
MOV EAX,ESI
MOV ESI,ECX
MOV ECX,dword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0x2c],ECX
CMP EAX,EDX
JNC 0x000789f7
MOVSX ECX,byte ptr [EBP + EAX*0x1]
CMP CL,0x20
JNZ 0x00078d98
LEA ESI,[EAX + 0x2]
ADD EDX,0x1
JMP 0x000789f3
LEA EAX,[ESI + 0x1]
MOVSX ECX,byte ptr [EBP + EAX*0x1 + -0x2]
CMP CL,0x20
JNZ 0x00078d98
MOV ESI,EAX
CMP EDX,ESI
JNZ 0x000789e0
MOV EDX,dword ptr [EDI]
MOV EAX,ESI
CMP EDX,ESI
JA 0x000789a0
MOV EBP,dword ptr [ESP + 0x44]
PUSH dword ptr [ESP + 0x34]
PUSH dword ptr [ESP + 0x40]
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x14]
CALL 0x0007b610
MOV dword ptr [ESP],EBP
CALL 0x00018170
ADD dword ptr [ESP + 0x34],0x1
ADD ESP,0x10
JMP 0x000788d8
MOV EDX,dword ptr [ESP + 0x14]
XOR EAX,EAX
CMP dword ptr [EDX + 0x194],-0x1
SETNZ AL
ADD EAX,0x1d
SHL EAX,0x4
CMP dword ptr [EDX + EAX*0x1 + 0x8],0x2
JZ 0x00078d20
CMP byte ptr [EDX + 0x229],0x0
JZ 0x000780f3
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x34],EAX
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX + 0xdc]
MOV EAX,dword ptr [EAX + 0xe0]
MOV dword ptr [ESP + 0x20],EDX
MOV dword ptr [ESP + 0x3c],EAX
JMP 0x0007829a
XOR EDX,EDX
CMP dword ptr [ECX + 0x194],-0x1
SETNZ DL
ADD EDX,0x1d
SHL EDX,0x4
CMP dword ptr [ECX + EDX*0x1 + 0x8],0x2
JZ 0x00077fc1
LEA EAX,[EBX + 0xfffcd602]
JMP 0x00077fc1
MOV ECX,dword ptr [ESP + 0x14]
XOR EAX,EAX
CMP dword ptr [ECX + 0x194],-0x1
SETNZ AL
ADD EAX,0x1d
SHL EAX,0x4
CMP dword ptr [ECX + EAX*0x1 + 0x8],0x2
JZ 0x00078134
MOV EAX,dword ptr [ESP + 0x18]
MOVZX ECX,byte ptr [ECX + 0x22a]
MOV EAX,dword ptr [EAX + 0xc]
TEST CL,CL
JZ 0x0007814e
MOV EDX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EDX]
MOV dword ptr [ESP + 0x8],EDX
LEA EDX,[ESP + 0x84]
PUSH EDX
PUSH 0x0
PUSH 0x46
PUSH dword ptr [EAX + 0x4]
CALL 0x00019010
MOV ESI,dword ptr [ESP + 0x94]
ADD ESP,0x10
TEST ESI,ESI
JZ 0x00079590
MOV dword ptr [ESP + 0x88],ESI
SUB ESP,0x4
PUSH EAX
LEA EAX,[ESP + 0x90]
PUSH EAX
PUSH 0x0
CALL 0x00018630
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x00079758
SUB ESP,0xc
PUSH EAX
CALL 0x00018660
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JNZ 0x00079730
SUB ESP,0xc
PUSH ESI
CALL 0x00019850
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JZ 0x00079758
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [EAX + 0xc]
PUSH dword ptr [EAX + 0x4]
CALL 0x00018110
MOV dword ptr [ESP + 0x1c],EAX
POP EAX
MOV EAX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [EAX + 0xc]
PUSH dword ptr [EAX]
CALL 0x00019af0
PUSH 0x0
PUSH EAX
MOV EDX,dword ptr [ESP + 0x24]
PUSH EDX
PUSH EBP
CALL 0x00019500
ADD ESP,0x20
LEA EDX,[ESP + 0x98]
MOV dword ptr [ESP + 0xc],EDX
LEA EDX,[ESP + 0x94]
MOV dword ptr [ESP + 0x1c],EDX
TEST EAX,EAX
JLE 0x00079940
MOV dword ptr [ESP + 0x20],ESI
SUB ESP,0xc
PUSH EBP
CALL 0x00019ca0
ADD ESP,0x10
CMP EDI,EAX
JGE 0x00079a2e
SUB ESP,0x8
PUSH EDI
PUSH EBP
CALL 0x00019be0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00079488
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x2c]
LEA EDX,[ESP + 0xa4]
PUSH EDX
LEA EDX,[ESP + 0xa4]
PUSH EDX
PUSH EAX
CALL 0x00019e20
ADD ESP,0x20
PUSH -0x1
MOV ESI,EAX
PUSH 0x12c
PUSH dword ptr [ESP + 0xa0]
PUSH dword ptr [ESP + 0xa0]
CALL 0x00018b10
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00079a8c
SUB ESP,0xc
PUSH ESI
CALL 0x00019c10
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xfffd8c40]
PUSH EAX
PUSH dword ptr [ESP + 0x24]
CALL 0x00027140
ADD ESP,0x20
CMP ESI,0x1
JZ 0x00079550
CMP ESI,0x2
JNZ 0x00079488
MOV ESI,dword ptr [ESP + 0x20]
SUB ESP,0xc
PUSH EBP
CALL 0x00018ba0
MOV dword ptr [ESP],ESI
CALL 0x00019090
ADD ESP,0x10
SUB ESP,0xc
MOV ESI,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [ESI + 0xc]
PUSH dword ptr [EAX + 0x8]
CALL 0x00019eb0
MOV EAX,dword ptr [ESI + 0xc]
ADD ESP,0x10
MOV ESI,0x5b
MOV dword ptr [EAX + 0x8],0x0
JMP 0x00078251
MOV ECX,dword ptr [ESP + 0x14]
XOR EDX,EDX
CMP dword ptr [ECX + 0x194],-0x1
SETNZ DL
ADD EDX,0x1d
SHL EDX,0x4
CMP dword ptr [ECX + EDX*0x1 + 0x8],0x2
JZ 0x00078164
MOV EDX,dword ptr [ESP + 0x10]
MOV EBP,dword ptr [EDX + 0x9e8]
JMP 0x0007816e
SUB ESP,0x4
LEA EAX,[ESP + 0xa0]
MOV dword ptr [ESP + 0x2c],EAX
PUSH EAX
PUSH dword ptr [ESP + 0x28]
PUSH 0xa
CALL 0x00019390
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000782b6
MOV dword ptr [ESP + 0x30],0x10
MOV ESI,0x7
JMP 0x000782e4
MOV EAX,dword ptr [ESP + 0x14]
CMP byte ptr [EAX + 0x201],0x0
JZ 0x000780f3
MOV EDX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EDX]
MOV dword ptr [ESP + 0x34],EAX
XOR EAX,EAX
CMP dword ptr [EDX + 0x194],-0x1
SETNZ AL
ADD EAX,0x1d
SHL EAX,0x4
CMP dword ptr [EDX + EAX*0x1 + 0x8],0x2
JZ 0x00078282
JMP 0x00078a68
MOV EDX,EAX
XOR EAX,EAX
CMP dword ptr [EDX + 0x194],-0x1
SETNZ AL
ADD EAX,0x1d
SHL EAX,0x4
CMP dword ptr [EDX + EAX*0x1 + 0x8],0x2
JZ 0x000783e8
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x8bc]
TEST EAX,EAX
SETNZ AL
JMP 0x000783f7
SUB ESP,0xc
LEA EAX,[EBX + 0xfffd2a94]
PUSH ECX
PUSH dword ptr [ESP + 0x3c]
PUSH EAX
MOV EDI,dword ptr [ESP + 0x48]
MOV EAX,dword ptr [ESP + 0x4c]
SUB EAX,EDI
ADD EAX,0x200
PUSH EAX
PUSH EDI
CALL 0x000187a0
MOV ECX,EDI
ADD ECX,EAX
MOV dword ptr [ESP + 0x50],ECX
ADD ESP,0x20
MOV EDI,dword ptr [ESP + 0x98]
JMP 0x000789f7
MOV EBP,dword ptr [ESP + 0x4c]
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x2c]
PUSH EDI
CALL 0x00019d90
POP ECX
POP ESI
PUSH EAX
PUSH EBP
CALL 0x00019960
PUSH dword ptr [ESP + 0x2c]
PUSH 0x0
PUSH 0x3
PUSH EBP
CALL 0x00018ce0
ADD ESP,0x14
PUSH EAX
PUSH dword ptr [ESP + 0x94]
PUSH dword ptr [ESP + 0x88]
PUSH dword ptr [ESP + 0x24]
MOV ESI,dword ptr [ESP + 0x24]
PUSH ESI
CALL 0x0007b520
ADD ESP,0x20
PUSH 0x0
PUSH 0x0
PUSH 0x1
PUSH EBP
CALL 0x00018ce0
MOV dword ptr [ESP],EDI
CALL 0x00018700
POP EDX
POP ECX
PUSH EAX
PUSH EBP
CALL 0x00019960
PUSH dword ptr [ESP + 0x2c]
PUSH 0x0
PUSH 0x3
PUSH EBP
CALL 0x00018ce0
ADD ESP,0x14
PUSH EAX
PUSH dword ptr [ESP + 0x94]
PUSH dword ptr [ESP + 0x8c]
PUSH dword ptr [ESP + 0x24]
PUSH ESI
CALL 0x0007b520
ADD ESP,0x20
PUSH 0x0
PUSH 0x0
PUSH 0x1
PUSH EBP
CALL 0x00018ce0
MOV dword ptr [ESP],EDI
CALL 0x00018910
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x00078ff8
SUB ESP,0xc
PUSH EAX
CALL 0x000198f0
ADD ESP,0x10
CMP EAX,0x1c
JZ 0x000791d8
CMP EAX,0x74
JZ 0x00079298
CMP EAX,0x6
JZ 0x00079118
SUB ESP,0xc
PUSH ESI
CALL 0x00019150
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x88]
TEST EAX,EAX
JNZ 0x00078f60
SUB ESP,0x8
PUSH dword ptr [ESP + 0x28]
PUSH EBP
CALL 0x00019d80
PUSH dword ptr [ESP + 0x2c]
PUSH 0x0
PUSH 0x3
PUSH EBP
CALL 0x00018ce0
ADD ESP,0x14
PUSH EAX
PUSH dword ptr [ESP + 0x94]
PUSH dword ptr [ESP + 0x70]
MOV EDI,dword ptr [ESP + 0x24]
PUSH EDI
PUSH dword ptr [ESP + 0x24]
CALL 0x0007b520
ADD ESP,0x20
PUSH 0x0
PUSH 0x0
PUSH 0x1
PUSH EBP
CALL 0x00018ce0
MOV EAX,EDI
ADD EAX,0x1
MOV dword ptr [ESP + 0x1c],EAX
ADD ESP,0x10
CMP dword ptr [ESP + 0x54],EAX
JNZ 0x00078660
MOV ESI,EBP
SUB ESP,0xc
PUSH ESI
CALL 0x00018170
ADD ESP,0x10
JMP 0x00077f84
SUB ESP,0xc
PUSH ESI
CALL 0x000195a0
POP ESI
POP EDI
PUSH EAX
PUSH EBP
CALL 0x000180d0
ADD ESP,0x10
JMP 0x00078956
MOV EDX,dword ptr [EAX]
XOR EDI,EDI
LEA ESI,[EBX + 0xfffd7be0]
TEST EDX,EDX
JLE 0x00078f93
NOP
MOV EAX,dword ptr [EAX + 0x8]
SUB ESP,0x4
MOVZX EAX,byte ptr [EAX + EDI*0x1]
ADD EDI,0x1
PUSH EAX
PUSH ESI
PUSH EBP
CALL 0x00018d00
MOV EAX,dword ptr [ESP + 0x98]
ADD ESP,0x10
CMP EDI,dword ptr [EAX]
JL 0x00078f70
PUSH dword ptr [ESP + 0x1c]
PUSH 0x0
PUSH 0x3
PUSH EBP
CALL 0x00018ce0
MOV dword ptr [ESP],EAX
LEA EAX,[EBX + 0xfffd7bd6]
PUSH dword ptr [ESP + 0x94]
PUSH EAX
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x24]
CALL 0x0007b520
ADD ESP,0x20
PUSH 0x0
PUSH 0x0
PUSH 0x1
PUSH EBP
CALL 0x00018ce0
ADD ESP,0x10
JMP 0x00078ed0
CMP ESI,0x7
JZ 0x00079390
MOV byte ptr [ESP + 0x2c],0x1
JMP 0x00078351
SUB ESP,0x8
LEA EAX,[EBX + 0xfffd7ba1]
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x00027140
ADD ESP,0x10
JMP 0x00078ec1
SUB ESP,0x8
LEA EAX,[EBX + 0xfffd6846]
PUSH EAX
PUSH EBP
CALL 0x000186b0
ADD ESP,0x10
JMP 0x00078787
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
CALL 0x00018120
ADD ESP,0x10
NOP
LEA EAX,[EBX + 0xfffd7590]
SUB ESP,0xc
MOV EBP,0xffffffff
MOV dword ptr [ESP + 0x18],EAX
MOV dword ptr [ESP + 0xa4],EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x000193d0
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JNZ 0x00079072
JMP 0x0007908e
MOV EBP,EAX
SUB ESP,0x4
PUSH EBP
PUSH 0xd
PUSH ESI
CALL 0x00018770
ADD ESP,0x10
TEST EAX,EAX
JNS 0x00079070
CMP EBP,-0x1
JNZ 0x00079650
MOV EAX,dword ptr [ESP + 0x98]
CMP EAX,dword ptr [ESP + 0xc]
JZ 0x00079500
TEST EAX,EAX
JZ 0x0007950b
SUB ESP,0x8
PUSH dword ptr [ESP + 0x28]
PUSH EAX
CALL 0x000602e0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000797e8
PUSH dword ptr [ESP + 0x3c]
LEA EAX,[EBX + 0xfffd8a7c]
PUSH dword ptr [ESP + 0x9c]
PUSH EAX
PUSH dword ptr [ESP + 0x40]
CALL 0x00027240
MOV EAX,dword ptr [ESP + 0xa8]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000796f0
SUB ESP,0x4
LEA EDX,[EBX + 0xfffd7c31]
PUSH 0x693
PUSH EDX
PUSH EAX
CALL 0x00019c50
MOV EAX,dword ptr [ESP + 0x28]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EAX + 0x8]
JMP 0x000794d2
SUB ESP,0xc
LEA EDI,[EBX + 0xfffd379a]
PUSH ESI
CALL 0x00019370
PUSH 0x0
LEA EDX,[ESP + 0xac]
PUSH EDX
LEA EDX,[ESP + 0xac]
PUSH EDX
PUSH EAX
CALL 0x00018520
ADD ESP,0x18
PUSH dword ptr [ESP + 0x9c]
PUSH EBP
CALL 0x00019870
PUSH dword ptr [ESP + 0x2c]
PUSH 0x0
PUSH 0x3
PUSH EBP
CALL 0x00018ce0
ADD ESP,0x14
PUSH EAX
LEA EAX,[EBX + 0xfffd7bbf]
PUSH dword ptr [ESP + 0x94]
PUSH EAX
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x24]
CALL 0x0007b520
ADD ESP,0x20
PUSH 0x0
PUSH 0x0
PUSH 0x1
PUSH EBP
CALL 0x00018ce0
ADD ESP,0xc
LEA EAX,[EBX + 0xfffd6ed6]
MOV EDX,EBP
PUSH dword ptr [ESP + 0x98]
PUSH EAX
PUSH EDI
MOV EAX,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [ESP + 0x1c]
CALL 0x00075190
ADD ESP,0xc
LEA EAX,[EBX + 0xfffd79b9]
PUSH dword ptr [ESP + 0x9c]
PUSH EAX
MOV EDX,EBP
PUSH EDI
MOV ECX,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [ESP + 0x18]
CALL 0x00075190
ADD ESP,0x10
JMP 0x00078eb5
SUB ESP,0xc
PUSH ESI
CALL 0x000182b0
MOV EDI,EAX
LEA EAX,[ESP + 0xa4]
PUSH EAX
LEA EAX,[ESP + 0xa4]
PUSH EAX
LEA EAX,[ESP + 0xa4]
PUSH EAX
PUSH EDI
CALL 0x00018d10
ADD ESP,0x1c
PUSH 0x0
LEA EAX,[ESP + 0xa0]
PUSH EAX
PUSH EDI
LEA EDI,[EBX + 0xfffccb64]
CALL 0x00018240
ADD ESP,0xc
LEA EAX,[EBX + 0xfffcf3a0]
PUSH dword ptr [ESP + 0x90]
PUSH EAX
PUSH EDI
MOV EAX,dword ptr [ESP + 0x18]
MOV EDX,EBP
MOV ECX,dword ptr [ESP + 0x1c]
CALL 0x00075190
ADD ESP,0xc
LEA EAX,[EBX + 0xfffd5602]
MOV EDX,EBP
PUSH dword ptr [ESP + 0x94]
PUSH EAX
PUSH EDI
MOV EAX,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [ESP + 0x1c]
CALL 0x00075190
ADD ESP,0xc
LEA EAX,[EBX + 0xfffd6924]
MOV EDX,EBP
PUSH dword ptr [ESP + 0x98]
PUSH EAX
PUSH EDI
MOV EAX,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [ESP + 0x1c]
CALL 0x00075190
ADD ESP,0xc
LEA EAX,[EBX + 0xfffd7bce]
PUSH dword ptr [ESP + 0x9c]
JMP 0x000791bc
SUB ESP,0xc
PUSH ESI
CALL 0x00018040
MOV EDI,EAX
LEA EAX,[ESP + 0xa4]
PUSH EAX
LEA EAX,[ESP + 0xa4]
PUSH EAX
LEA EAX,[ESP + 0xa4]
PUSH EAX
PUSH EDI
CALL 0x00018500
ADD ESP,0x1c
PUSH 0x0
LEA EAX,[ESP + 0xa0]
PUSH EAX
PUSH EDI
LEA EDI,[EBX + 0xfffd37a9]
CALL 0x000182c0
ADD ESP,0xc
LEA EAX,[EBX + 0xfffcf3a0]
PUSH dword ptr [ESP + 0x90]
PUSH EAX
JMP 0x0007922b
SUB ESP,0xc
XOR ESI,ESI
PUSH dword ptr [ESP + 0x54]
CALL 0x00018170
ADD ESP,0x10
CMP byte ptr [ESP + 0x38],0x0
JZ 0x00078251
SUB ESP,0x8
LEA EAX,[EBX + 0xfffd8948]
MOV ESI,0x3c
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00027240
ADD ESP,0x10
JMP 0x00078251
SUB ESP,0x8
LEA EAX,[EBX + 0xfffd8ac4]
MOV ESI,0x3c
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00027240
MOV EAX,dword ptr [ESP + 0x24]
ADD ESP,0x10
MOV EDX,dword ptr [EAX + 0xe8]
JMP 0x0007812b
SUB ESP,0xc
PUSH dword ptr [EBP + 0x4]
CALL 0x00019bf0
MOV dword ptr [ESP + 0x50],EAX
POP EAX
PUSH dword ptr [EBP + 0x4]
CALL 0x00018480
ADD ESP,0x10
MOV EBP,EAX
CMP ESI,0x2
JNZ 0x00078351
JMP 0x00079422
SUB ESP,0xc
PUSH dword ptr [EBP + 0x4]
CALL 0x00019bf0
MOV dword ptr [ESP + 0x3c],EAX
POP EAX
PUSH dword ptr [EBP + 0x4]
CALL 0x00018480
ADD ESP,0x10
CMP dword ptr [ESP + 0x30],EAX
JNZ 0x00078fe9
SUB ESP,0x4
PUSH dword ptr [ESP + 0x34]
PUSH dword ptr [ESP + 0x30]
PUSH dword ptr [ESP + 0x38]
CALL 0x00018c40
ADD ESP,0x10
MOV byte ptr [ESP + 0x2c],0x1
TEST EAX,EAX
JNZ 0x00078351
SUB ESP,0x4
PUSH dword ptr [ESP + 0x40]
PUSH dword ptr [ESP + 0x54]
PUSH dword ptr [ESP + 0x40]
CALL 0x00027140
ADD ESP,0x10
MOV byte ptr [ESP + 0x44],0x1
JMP 0x00078351
SUB ESP,0xc
PUSH dword ptr [EBP + 0x4]
CALL 0x00019bf0
MOV dword ptr [ESP + 0x50],EAX
POP EDX
PUSH dword ptr [EBP + 0x4]
CALL 0x00018480
ADD ESP,0x10
MOV byte ptr [ESP + 0x24],0x1
MOV EBP,EAX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x4c]
CALL 0x00018850
ADD ESP,0x10
CMP EAX,EBP
JNZ 0x00078351
SUB ESP,0x8
PUSH dword ptr [ESP + 0x28]
PUSH dword ptr [ESP + 0x4c]
CALL 0x000602e0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00078351
LEA EAX,[EBX + 0xfffd896c]
MOV EDI,dword ptr [ESP + 0x48]
PUSH dword ptr [ESP + 0x40]
PUSH dword ptr [ESP + 0x40]
PUSH EAX
PUSH dword ptr [ESP + 0x40]
CALL 0x00027140
POP ECX
PUSH dword ptr [ESP + 0x18]
CALL 0x00018120
ADD ESP,0x10
JMP 0x000783a8
ADD EDI,0x1
JMP 0x00078bc2
CMP byte ptr [ESP + 0x2c],0x0
JZ 0x00079580
SUB ESP,0x4
LEA EAX,[EBX + 0xfffd89d4]
MOV EDI,dword ptr [ESP + 0x40]
PUSH EDI
PUSH EAX
MOV ESI,dword ptr [ESP + 0x40]
PUSH ESI
CALL 0x00027140
ADD ESP,0xc
LEA EAX,[EBX + 0xfffd89f8]
PUSH EDI
PUSH EAX
PUSH ESI
CALL 0x00027240
MOV EAX,dword ptr [ESP + 0x28]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EAX + 0x8]
SUB ESP,0xc
MOV ESI,0x3c
PUSH EAX
CALL 0x00019eb0
MOV EAX,dword ptr [ESP + 0x28]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0xc]
MOV dword ptr [EAX + 0x8],0x0
JMP 0x00078251
MOV dword ptr [ESP + 0x98],0x0
SUB ESP,0x8
LEA EAX,[EBX + 0xfffd8a44]
JMP 0x000790d0
SUB ESP,0x8
LEA EAX,[EBX + 0xfffd7c86]
XOR ESI,ESI
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00027140
MOV EAX,dword ptr [ESP + 0x24]
ADD ESP,0x10
MOV EDX,dword ptr [EAX + 0xe8]
JMP 0x0007812b
MOV EDI,dword ptr [ESP + 0x8c]
MOV ESI,dword ptr [ESP + 0x20]
SUB ESP,0xc
PUSH EDI
CALL 0x00018470
PUSH EDI
PUSH EAX
LEA EAX,[EBX + 0xfffd8c64]
PUSH EAX
PUSH dword ptr [ESP + 0x24]
CALL 0x00027240
ADD ESP,0x20
JMP 0x00078c6a
CMP byte ptr [ESP + 0x24],0x0
JNZ 0x0007949b
JMP 0x00079040
SUB ESP,0x8
LEA EAX,[EBX + 0xfffd7ca3]
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x00027240
ADD ESP,0x10
SUB ESP,0xc
PUSH ESI
CALL 0x00019090
ADD ESP,0x10
JMP 0x00078c7e
MOV EDX,EAX
XOR EAX,EAX
CMP dword ptr [EDX + 0x194],-0x1
SETNZ AL
ADD EAX,0x1d
SHL EAX,0x4
CMP dword ptr [EDX + EAX*0x1 + 0x8],0x2
JZ 0x00078493
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x8bc]
JMP 0x0007849d
MOV ECX,EAX
XOR EAX,EAX
CMP dword ptr [ECX + 0x194],-0x1
SETNZ AL
ADD EAX,0x1d
SHL EAX,0x4
CMP dword ptr [ECX + EAX*0x1 + 0x8],0x2
JZ 0x000784fc
MOVZX EAX,byte ptr [ECX + 0x228]
JMP 0x00078507
MOV EDX,EAX
XOR EAX,EAX
CMP dword ptr [EDX + 0x194],-0x1
SETNZ AL
ADD EAX,0x1d
SHL EAX,0x4
CMP dword ptr [EDX + EAX*0x1 + 0x8],0x2
JZ 0x0007842b
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x8bc]
JMP 0x00078435
SUB ESP,0x8
PUSH EBP
PUSH ESI
CALL 0x000190f0
MOV dword ptr [ESP],EAX
CALL 0x00018fa0
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0007908e
SUB ESP,0xc
PUSH EAX
CALL 0x00019b70
ADD ESP,0x10
CMP EAX,0xc
JZ 0x0007996b
SUB ESP,0x8
PUSH ESI
LEA EAX,[ESP + 0xa4]
PUSH EAX
CALL 0x00019b00
ADD ESP,0x10
MOV EBP,EAX
MOV EAX,dword ptr [ESP + 0x98]
TEST EAX,EAX
JZ 0x0007950b
SUB ESP,0xc
PUSH EAX
CALL 0x00018850
MOV dword ptr [ESP],EAX
CALL 0x0005a1d0
ADD ESP,0x10
CMP EAX,EBP
JZ 0x0007908e
SUB ESP,0x8
LEA EAX,[EBX + 0xfffd7c40]
PUSH EAX
PUSH dword ptr [ESP + 0x40]
CALL 0x00027240
MOV EAX,dword ptr [ESP + 0xa8]
ADD ESP,0x10
CMP EAX,dword ptr [ESP + 0xc]
JNZ 0x000790e4
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EAX + 0x8]
JMP 0x000794d2
SUB ESP,0xc
XOR ESI,ESI
PUSH EDI
CALL 0x00019c70
PUSH EDI
PUSH EAX
LEA EAX,[EBX + 0xfffd8bb4]
PUSH EAX
PUSH dword ptr [ESP + 0x2c]
CALL 0x00027140
MOV EAX,dword ptr [ESP + 0x34]
ADD ESP,0x20
MOV EDX,dword ptr [EAX + 0xe8]
JMP 0x0007812b
SUB ESP,0xc
PUSH EAX
CALL 0x00019700
PUSH EDI
PUSH EAX
LEA EAX,[EBX + 0xfffd8bf4]
PUSH EAX
PUSH dword ptr [ESP + 0x24]
CALL 0x00027240
ADD ESP,0x20
JMP 0x000795a6
SUB ESP,0x8
LEA EAX,[EBX + 0xfffd7cbd]
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x00027240
ADD ESP,0x10
JMP 0x000795a6
CMP byte ptr [ESP + 0x38],0x0
JZ 0x000797b1
MOV EAX,dword ptr [ESP + 0x14]
CMP dword ptr [EAX + 0xe8],0x2
JZ 0x00079a5e
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x858]
SUB ESP,0x4
PUSH EAX
LEA EAX,[EBX + 0xfffd8ae8]
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00027240
ADD ESP,0x10
SUB ESP,0xc
PUSH ESI
CALL 0x00018170
POP EAX
MOV ESI,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [ESI + 0xc]
PUSH dword ptr [EAX + 0x8]
CALL 0x00019eb0
MOV EAX,dword ptr [ESI + 0xc]
ADD ESP,0x10
MOV ESI,0x53
MOV dword ptr [EAX + 0x8],0x0
JMP 0x00078251
SUB ESP,0x4
LEA EAX,[EBX + 0xfffd7c5d]
PUSH dword ptr [ESP + 0x9c]
PUSH EAX
PUSH dword ptr [ESP + 0x40]
CALL 0x00027140
MOV EAX,dword ptr [ESP + 0xa8]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000783a8
PUSH EDX
LEA EDX,[EBX + 0xfffd7c31]
PUSH 0x693
PUSH EDX
PUSH EAX
CALL 0x00019c50
MOV EAX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
JMP 0x000780f3
CMP byte ptr [ESP + 0x38],0x0
JZ 0x00079879
MOV EAX,dword ptr [ESP + 0x14]
CMP dword ptr [EAX + 0xe8],0x2
JZ 0x00079aab
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x858]
SUB ESP,0x4
PUSH EAX
LEA EAX,[EBX + 0xfffd8b10]
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00027240
ADD ESP,0x10
SUB ESP,0xc
PUSH ESI
CALL 0x00018170
MOV dword ptr [ESP],0x0
CALL 0x00019eb0
JMP 0x000797ba
MOV EAX,dword ptr [ESP + 0x98]
TEST EAX,EAX
JZ 0x000781f9
SUB EAX,EDX
CMP ESI,EAX
JNZ 0x000781f9
PUSH ESI
PUSH EDX
MOV dword ptr [ESP + 0x10],EDX
PUSH EBP
PUSH dword ptr [ESP + 0x1c]
CALL 0x0007b670
MOV EDX,dword ptr [ESP + 0x18]
MOV ESI,EAX
LEA EAX,[EBX + 0x88c]
MOV dword ptr [ESP],EDX
CALL dword ptr [EAX]
ADD ESP,0x10
TEST ESI,ESI
JNZ 0x0007820d
MOV EAX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [EAX + 0xc]
MOV EDI,dword ptr [EAX + 0x8]
JMP 0x00078230
CMP byte ptr [ESP + 0x38],0x0
JZ 0x00079929
MOV EAX,dword ptr [ESP + 0x14]
CMP dword ptr [EAX + 0xe8],0x2
JZ 0x00079ad9
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x858]
SUB ESP,0x4
PUSH EAX
LEA EAX,[EBX + 0xfffd8b38]
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00027240
ADD ESP,0x10
SUB ESP,0xc
PUSH ESI
CALL 0x00018170
MOV dword ptr [ESP],EDI
JMP 0x00079889
SUB ESP,0x8
LEA EAX,[EBX + 0xfffd8c1c]
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x00027240
MOV dword ptr [ESP],EBP
CALL 0x00018ba0
MOV dword ptr [ESP],ESI
CALL 0x00019090
ADD ESP,0x10
JMP 0x00078c7e
SUB ESP,0xc
PUSH ESI
CALL 0x00018480
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JS 0x0007969a
SUB ESP,0x4
LEA EAX,[EBX + 0xfffd7c31]
PUSH 0x662
PUSH EAX
LEA EAX,[EBP + 0x1]
PUSH EAX
CALL 0x00019450
MOV dword ptr [ESP + 0xa8],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0007950b
SUB ESP,0xc
PUSH ESI
CALL 0x00019bf0
ADD ESP,0xc
PUSH EBP
PUSH EAX
PUSH dword ptr [ESP + 0xa4]
CALL 0x00018750
MOV EAX,dword ptr [ESP + 0xa8]
ADD ESP,0x10
MOV byte ptr [EAX + EBP*0x1],0x0
JMP 0x0007969a
CALL 0x00018920
SUB ESP,0x4
PUSH 0x100
LEA ESI,[ESP + 0x134]
PUSH ESI
PUSH EAX
CALL 0x000189a0
ADD ESP,0xc
LEA EAX,[EBX + 0xfffd8390]
PUSH ESI
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00027240
POP EAX
MOV ESI,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [ESI + 0xc]
PUSH dword ptr [EAX + 0x8]
CALL 0x00019eb0
MOV EAX,dword ptr [ESI + 0xc]
ADD ESP,0x10
MOV ESI,0x1b
MOV dword ptr [EAX + 0x8],0x0
JMP 0x00078251
MOV ESI,dword ptr [ESP + 0x20]
SUB ESP,0xc
PUSH EBP
CALL 0x00018ba0
MOV dword ptr [ESP],ESI
XOR ESI,ESI
CALL 0x00019090
MOV EAX,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [EAX + 0xe8]
MOV EAX,dword ptr [ESP + 0x28]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0xc]
JMP 0x0007814e
MOV EDX,EAX
XOR EAX,EAX
CMP dword ptr [EDX + 0x194],-0x1
SETNZ AL
ADD EAX,0x1d
SHL EAX,0x4
CMP dword ptr [EDX + EAX*0x1 + 0x8],0x2
JZ 0x00079790
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x8bc]
JMP 0x0007979a
MOV ESI,dword ptr [ESP + 0x20]
LEA EAX,[EBX + 0xfffd7cd3]
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x00027240
ADD ESP,0x10
JMP 0x00078c6a
MOV EDX,EAX
XOR EAX,EAX
CMP dword ptr [EDX + 0x194],-0x1
SETNZ AL
ADD EAX,0x1d
SHL EAX,0x4
CMP dword ptr [EDX + EAX*0x1 + 0x8],0x2
JZ 0x00079858
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x8bc]
JMP 0x00079862
MOV EDX,EAX
XOR EAX,EAX
CMP dword ptr [EDX + 0x194],-0x1
SETNZ AL
ADD EAX,0x1d
SHL EAX,0x4
CMP dword ptr [EDX + EAX*0x1 + 0x8],0x2
JZ 0x00079908
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x8bc]
JMP 0x00079912
CALL 0x0007c1a0
(translation_unit "int __regparm3 FUN_00077ef0(undefined4 param_1,int param_2,char param_3)\n\n{\n  char *pcVar1;\n  byte *pbVar2;\n  char cVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  uint uVar8;\n  int *piVar9;\n  BIO_METHOD *pBVar10;\n  BIO *pBVar11;\n  X509 *pXVar12;\n  undefined1 *puVar13;\n  ASN1_TIME *pAVar14;\n  long lVar15;\n  ASN1_GENERALIZEDTIME *pAVar16;\n  X509_PUBKEY *pXVar17;\n  ASN1_GENERALIZEDTIME *pAVar18;\n  int iVar19;\n  GENERAL_NAMES *a;\n  char *pcVar20;\n  int *piVar21;\n  undefined1 *puVar22;\n  BIO *out;\n  undefined4 uVar23;\n  ASN1_INTEGER *pAVar24;\n  X509_EXTENSION *ex;\n  BIO *out_00;\n  ASN1_OBJECT *a_00;\n  uint uVar25;\n  uint uVar26;\n  OCSP_RESPONSE *resp;\n  OCSP_BASICRESP *bs;\n  stack_st_X509 *psVar27;\n  X509_STORE *st;\n  int iVar28;\n  OCSP_SINGLERESP *single;\n  int iVar29;\n  char *pcVar30;\n  EVP_PKEY *pkey;\n  ASN1_OCTET_STRING *v;\n  X509_NAME *pXVar31;\n  ASN1_GENERALIZEDTIME *pAVar32;\n  size_t sVar33;\n  X509_NAME_ENTRY *ne;\n  ASN1_STRING *pAVar34;\n  size_t sVar35;\n  ASN1_GENERALIZEDTIME *pAVar36;\n  void *pvVar37;\n  ulong e;\n  int iVar38;\n  uint uVar39;\n  ASN1_GENERALIZEDTIME *extraout_EDX;\n  int unaff_EBX;\n  undefined4 *puVar40;\n  char *pcVar41;\n  int in_GS_OFFSET;\n  byte bVar42;\n  X509 *local_a48;\n  int local_a44;\n  char *local_a30;\n  int local_a2c;\n  char *local_a28;\n  int local_a24;\n  ASN1_GENERALIZEDTIME *local_a20;\n  int local_a1c;\n  ASN1_GENERALIZEDTIME *local_a14;\n  ASN1_GENERALIZEDTIME *local_a10;\n  long *local_9f8;\n  ASN1_GENERALIZEDTIME *local_9d0;\n  int *local_9cc;\n  int *local_9c8;\n  long local_9c4;\n  ASN1_GENERALIZEDTIME *local_9c0;\n  BIGNUM *local_9bc;\n  ASN1_GENERALIZEDTIME *local_9b8;\n  char local_9b4 [16];\n  char local_9a4 [128];\n  char local_924 [4];\n  undefined4 local_920 [63];\n  undefined1 local_824 [512];\n  undefined1 auStack_624 [1536];\n  int local_24;\n  undefined4 uStack_14;\n  \n  bVar42 = 0;\n  uStack_14 = 0x77ef9;\n  piVar9 = (int *)entry();\n  iVar4 = *piVar9;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar40 = local_920;\n  for (iVar38 = 0x3f; iVar38 != 0; iVar38 = iVar38 + -1) {\n    *puVar40 = 0;\n    puVar40 = puVar40 + (uint)bVar42 * -2 + 1;\n  }\n  local_924[0] = '\0';\n  local_924[1] = '\0';\n  local_924[2] = '\0';\n  local_924[3] = '\0';\n  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    local_9f8 = (long *)(iVar4 + 0x8b4);\n  }\n  else {\n    local_9f8 = (long *)(iVar4 + 0x850);\n  }\n  pBVar10 = BIO_s_mem();\n  pBVar11 = BIO_new(pBVar10);\n  if (*(char *)(iVar4 + 0x864) != '\0') {\n    iVar38 = *piVar9;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }\n  }\n  iVar38 = *(int *)(param_2 + 0xc);\n  pXVar12 = SSL_get_peer_certificate(*(SSL **)(iVar38 + 4));\n  *(X509 **)(iVar38 + 8) = pXVar12;\n  if (*(int *)(*(int *)(param_2 + 0xc) + 8) == 0) {\n    iVar38 = 0;\n    BIO_free(pBVar11);\n    if (param_3 != '\0') {\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }\n    goto LAB_00078251;\n  }\n  iVar38 = unaff_EBX + 0x5eef;\n  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    iVar38 = unaff_EBX + 0x5ee9;\n  }\n  FUN_00027140(iVar4,unaff_EBX + 0x104d2,iVar38);\n  X509_get_subject_name(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  puVar22 = local_824;\n  iVar38 = FUN_00077df0();\n  puVar13 = (undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX);\n  if (iVar38 == 0) {\n    puVar13 = puVar22;\n  }\n  FUN_00027140(iVar4,unaff_EBX + 0x104e3,puVar13);\n  pAVar14 = (ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));\n  ASN1_TIME_print(pBVar11,pAVar14);\n  lVar15 = BIO_ctrl(pBVar11,3,0,&local_9d0);\n  FUN_00027140(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0);\n  BIO_ctrl(pBVar11,1,0,(void *)0x0);\n  pAVar14 = (ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));\n  ASN1_TIME_print(pBVar11,pAVar14);\n  pAVar16 = (ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0);\n  pcVar30 = (char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX);\n  local_a10 = local_9d0;\n  FUN_00027140(iVar4,pcVar30,pAVar16,local_9d0);\n  BIO_ctrl(pBVar11,1,0,(void *)0x0);\n  BIO_free(pBVar11);\n  local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n  if (piVar9[0x3a] != 2) {\n    if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;\n    local_a1c = *piVar9;\nLAB_00078282:\n    local_a30 = (char *)piVar9[0x25];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];\nLAB_0007829a:\n    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }\n    local_a28 = local_9b4;\n    pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;\n    pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);\n    local_a10 = pAVar18;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\n    else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_000794d2:\n    iVar38 = 0x3c;\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    goto LAB_00078251;\n  }\n  if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) {\n    if (*(char *)((int)piVar9 + 0x201) != '\0') {\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }\n  else if (*(char *)((int)piVar9 + 0x229) != '\0') {\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }\nLAB_000780f3:\n  X509_get_issuer_name(local_a48);\n  iVar38 = FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10);\n  if (iVar38 == 0) {\n    FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);\n    if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }\n    else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }\n    if (iVar38 != 0) {\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    *local_9f8 = lVar15;\n    if (lVar15 == 0) {\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }\n    else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }\n  }\n  else if (param_3 == '\0') {\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }\n  else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }\n  if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    cVar3 = *(char *)((int)piVar9 + 0x22a);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  else {\n    cVar3 = *(char *)((int)piVar9 + 0x202);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  if (cVar3 == '\0') {\nLAB_0007814e:\n    if (param_3 == '\0') {\n      iVar38 = 0;\n    }\n    if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }\n    else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }\n    pXVar12 = *(X509 **)(iVar28 + 8);\n    local_9d0 = pAVar16;\n    if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_00078230:\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    *(undefined4 *)(param_2 + 8) = 5;\n    goto LAB_00078251;\n  }\n  iVar38 = *piVar9;\n  lVar15 = SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc);\n  if (local_9cc == (int *)0x0) {\n    FUN_00027240(iVar38,unaff_EBX + 0x1058a);\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }\n  else {\n    local_9c8 = local_9cc;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }\n    iVar19 = OCSP_response_status(resp);\n    if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));\n    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  iVar38 = 0x5b;\n  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\nLAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0007c1a0();\n}\n\n" (function_definition "int __regparm3 FUN_00077ef0(undefined4 param_1,int param_2,char param_3)\n\n{\n  char *pcVar1;\n  byte *pbVar2;\n  char cVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  uint uVar8;\n  int *piVar9;\n  BIO_METHOD *pBVar10;\n  BIO *pBVar11;\n  X509 *pXVar12;\n  undefined1 *puVar13;\n  ASN1_TIME *pAVar14;\n  long lVar15;\n  ASN1_GENERALIZEDTIME *pAVar16;\n  X509_PUBKEY *pXVar17;\n  ASN1_GENERALIZEDTIME *pAVar18;\n  int iVar19;\n  GENERAL_NAMES *a;\n  char *pcVar20;\n  int *piVar21;\n  undefined1 *puVar22;\n  BIO *out;\n  undefined4 uVar23;\n  ASN1_INTEGER *pAVar24;\n  X509_EXTENSION *ex;\n  BIO *out_00;\n  ASN1_OBJECT *a_00;\n  uint uVar25;\n  uint uVar26;\n  OCSP_RESPONSE *resp;\n  OCSP_BASICRESP *bs;\n  stack_st_X509 *psVar27;\n  X509_STORE *st;\n  int iVar28;\n  OCSP_SINGLERESP *single;\n  int iVar29;\n  char *pcVar30;\n  EVP_PKEY *pkey;\n  ASN1_OCTET_STRING *v;\n  X509_NAME *pXVar31;\n  ASN1_GENERALIZEDTIME *pAVar32;\n  size_t sVar33;\n  X509_NAME_ENTRY *ne;\n  ASN1_STRING *pAVar34;\n  size_t sVar35;\n  ASN1_GENERALIZEDTIME *pAVar36;\n  void *pvVar37;\n  ulong e;\n  int iVar38;\n  uint uVar39;\n  ASN1_GENERALIZEDTIME *extraout_EDX;\n  int unaff_EBX;\n  undefined4 *puVar40;\n  char *pcVar41;\n  int in_GS_OFFSET;\n  byte bVar42;\n  X509 *local_a48;\n  int local_a44;\n  char *local_a30;\n  int local_a2c;\n  char *local_a28;\n  int local_a24;\n  ASN1_GENERALIZEDTIME *local_a20;\n  int local_a1c;\n  ASN1_GENERALIZEDTIME *local_a14;\n  ASN1_GENERALIZEDTIME *local_a10;\n  long *local_9f8;\n  ASN1_GENERALIZEDTIME *local_9d0;\n  int *local_9cc;\n  int *local_9c8;\n  long local_9c4;\n  ASN1_GENERALIZEDTIME *local_9c0;\n  BIGNUM *local_9bc;\n  ASN1_GENERALIZEDTIME *local_9b8;\n  char local_9b4 [16];\n  char local_9a4 [128];\n  char local_924 [4];\n  undefined4 local_920 [63];\n  undefined1 local_824 [512];\n  undefined1 auStack_624 [1536];\n  int local_24;\n  undefined4 uStack_14;\n  \n  bVar42 = 0;\n  uStack_14 = 0x77ef9;\n  piVar9 = (int *)entry();\n  iVar4 = *piVar9;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar40 = local_920;\n  for (iVar38 = 0x3f; iVar38 != 0; iVar38 = iVar38 + -1) {\n    *puVar40 = 0;\n    puVar40 = puVar40 + (uint)bVar42 * -2 + 1;\n  }\n  local_924[0] = '\0';\n  local_924[1] = '\0';\n  local_924[2] = '\0';\n  local_924[3] = '\0';\n  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    local_9f8 = (long *)(iVar4 + 0x8b4);\n  }\n  else {\n    local_9f8 = (long *)(iVar4 + 0x850);\n  }\n  pBVar10 = BIO_s_mem();\n  pBVar11 = BIO_new(pBVar10);\n  if (*(char *)(iVar4 + 0x864) != '\0') {\n    iVar38 = *piVar9;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }\n  }\n  iVar38 = *(int *)(param_2 + 0xc);\n  pXVar12 = SSL_get_peer_certificate(*(SSL **)(iVar38 + 4));\n  *(X509 **)(iVar38 + 8) = pXVar12;\n  if (*(int *)(*(int *)(param_2 + 0xc) + 8) == 0) {\n    iVar38 = 0;\n    BIO_free(pBVar11);\n    if (param_3 != '\0') {\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }\n    goto LAB_00078251;\n  }\n  iVar38 = unaff_EBX + 0x5eef;\n  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    iVar38 = unaff_EBX + 0x5ee9;\n  }\n  FUN_00027140(iVar4,unaff_EBX + 0x104d2,iVar38);\n  X509_get_subject_name(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  puVar22 = local_824;\n  iVar38 = FUN_00077df0();\n  puVar13 = (undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX);\n  if (iVar38 == 0) {\n    puVar13 = puVar22;\n  }\n  FUN_00027140(iVar4,unaff_EBX + 0x104e3,puVar13);\n  pAVar14 = (ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));\n  ASN1_TIME_print(pBVar11,pAVar14);\n  lVar15 = BIO_ctrl(pBVar11,3,0,&local_9d0);\n  FUN_00027140(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0);\n  BIO_ctrl(pBVar11,1,0,(void *)0x0);\n  pAVar14 = (ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));\n  ASN1_TIME_print(pBVar11,pAVar14);\n  pAVar16 = (ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0);\n  pcVar30 = (char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX);\n  local_a10 = local_9d0;\n  FUN_00027140(iVar4,pcVar30,pAVar16,local_9d0);\n  BIO_ctrl(pBVar11,1,0,(void *)0x0);\n  BIO_free(pBVar11);\n  local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n  if (piVar9[0x3a] != 2) {\n    if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;\n    local_a1c = *piVar9;\nLAB_00078282:\n    local_a30 = (char *)piVar9[0x25];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];\nLAB_0007829a:\n    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }\n    local_a28 = local_9b4;\n    pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;\n    pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);\n    local_a10 = pAVar18;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\n    else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_000794d2:\n    iVar38 = 0x3c;\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    goto LAB_00078251;\n  }\n  if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) {\n    if (*(char *)((int)piVar9 + 0x201) != '\0') {\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }\n  else if (*(char *)((int)piVar9 + 0x229) != '\0') {\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }\nLAB_000780f3:\n  X509_get_issuer_name(local_a48);\n  iVar38 = FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10);\n  if (iVar38 == 0) {\n    FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);\n    if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }\n    else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }\n    if (iVar38 != 0) {\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    *local_9f8 = lVar15;\n    if (lVar15 == 0) {\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }\n    else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }\n  }\n  else if (param_3 == '\0') {\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }\n  else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }\n  if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    cVar3 = *(char *)((int)piVar9 + 0x22a);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  else {\n    cVar3 = *(char *)((int)piVar9 + 0x202);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  if (cVar3 == '\0') {\nLAB_0007814e:\n    if (param_3 == '\0') {\n      iVar38 = 0;\n    }\n    if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }\n    else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }\n    pXVar12 = *(X509 **)(iVar28 + 8);\n    local_9d0 = pAVar16;\n    if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_00078230:\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    *(undefined4 *)(param_2 + 8) = 5;\n    goto LAB_00078251;\n  }\n  iVar38 = *piVar9;\n  lVar15 = SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc);\n  if (local_9cc == (int *)0x0) {\n    FUN_00027240(iVar38,unaff_EBX + 0x1058a);\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }\n  else {\n    local_9c8 = local_9cc;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }\n    iVar19 = OCSP_response_status(resp);\n    if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));\n    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  iVar38 = 0x5b;\n  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\nLAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0007c1a0();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00077ef0(undefined4 param_1,int param_2,char param_3)" identifier (parameter_list "(undefined4 param_1,int param_2,char param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "char param_3" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  byte *pbVar2;\n  char cVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  uint uVar8;\n  int *piVar9;\n  BIO_METHOD *pBVar10;\n  BIO *pBVar11;\n  X509 *pXVar12;\n  undefined1 *puVar13;\n  ASN1_TIME *pAVar14;\n  long lVar15;\n  ASN1_GENERALIZEDTIME *pAVar16;\n  X509_PUBKEY *pXVar17;\n  ASN1_GENERALIZEDTIME *pAVar18;\n  int iVar19;\n  GENERAL_NAMES *a;\n  char *pcVar20;\n  int *piVar21;\n  undefined1 *puVar22;\n  BIO *out;\n  undefined4 uVar23;\n  ASN1_INTEGER *pAVar24;\n  X509_EXTENSION *ex;\n  BIO *out_00;\n  ASN1_OBJECT *a_00;\n  uint uVar25;\n  uint uVar26;\n  OCSP_RESPONSE *resp;\n  OCSP_BASICRESP *bs;\n  stack_st_X509 *psVar27;\n  X509_STORE *st;\n  int iVar28;\n  OCSP_SINGLERESP *single;\n  int iVar29;\n  char *pcVar30;\n  EVP_PKEY *pkey;\n  ASN1_OCTET_STRING *v;\n  X509_NAME *pXVar31;\n  ASN1_GENERALIZEDTIME *pAVar32;\n  size_t sVar33;\n  X509_NAME_ENTRY *ne;\n  ASN1_STRING *pAVar34;\n  size_t sVar35;\n  ASN1_GENERALIZEDTIME *pAVar36;\n  void *pvVar37;\n  ulong e;\n  int iVar38;\n  uint uVar39;\n  ASN1_GENERALIZEDTIME *extraout_EDX;\n  int unaff_EBX;\n  undefined4 *puVar40;\n  char *pcVar41;\n  int in_GS_OFFSET;\n  byte bVar42;\n  X509 *local_a48;\n  int local_a44;\n  char *local_a30;\n  int local_a2c;\n  char *local_a28;\n  int local_a24;\n  ASN1_GENERALIZEDTIME *local_a20;\n  int local_a1c;\n  ASN1_GENERALIZEDTIME *local_a14;\n  ASN1_GENERALIZEDTIME *local_a10;\n  long *local_9f8;\n  ASN1_GENERALIZEDTIME *local_9d0;\n  int *local_9cc;\n  int *local_9c8;\n  long local_9c4;\n  ASN1_GENERALIZEDTIME *local_9c0;\n  BIGNUM *local_9bc;\n  ASN1_GENERALIZEDTIME *local_9b8;\n  char local_9b4 [16];\n  char local_9a4 [128];\n  char local_924 [4];\n  undefined4 local_920 [63];\n  undefined1 local_824 [512];\n  undefined1 auStack_624 [1536];\n  int local_24;\n  undefined4 uStack_14;\n  \n  bVar42 = 0;\n  uStack_14 = 0x77ef9;\n  piVar9 = (int *)entry();\n  iVar4 = *piVar9;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar40 = local_920;\n  for (iVar38 = 0x3f; iVar38 != 0; iVar38 = iVar38 + -1) {\n    *puVar40 = 0;\n    puVar40 = puVar40 + (uint)bVar42 * -2 + 1;\n  }\n  local_924[0] = '\0';\n  local_924[1] = '\0';\n  local_924[2] = '\0';\n  local_924[3] = '\0';\n  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    local_9f8 = (long *)(iVar4 + 0x8b4);\n  }\n  else {\n    local_9f8 = (long *)(iVar4 + 0x850);\n  }\n  pBVar10 = BIO_s_mem();\n  pBVar11 = BIO_new(pBVar10);\n  if (*(char *)(iVar4 + 0x864) != '\0') {\n    iVar38 = *piVar9;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }\n  }\n  iVar38 = *(int *)(param_2 + 0xc);\n  pXVar12 = SSL_get_peer_certificate(*(SSL **)(iVar38 + 4));\n  *(X509 **)(iVar38 + 8) = pXVar12;\n  if (*(int *)(*(int *)(param_2 + 0xc) + 8) == 0) {\n    iVar38 = 0;\n    BIO_free(pBVar11);\n    if (param_3 != '\0') {\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }\n    goto LAB_00078251;\n  }\n  iVar38 = unaff_EBX + 0x5eef;\n  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    iVar38 = unaff_EBX + 0x5ee9;\n  }\n  FUN_00027140(iVar4,unaff_EBX + 0x104d2,iVar38);\n  X509_get_subject_name(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  puVar22 = local_824;\n  iVar38 = FUN_00077df0();\n  puVar13 = (undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX);\n  if (iVar38 == 0) {\n    puVar13 = puVar22;\n  }\n  FUN_00027140(iVar4,unaff_EBX + 0x104e3,puVar13);\n  pAVar14 = (ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));\n  ASN1_TIME_print(pBVar11,pAVar14);\n  lVar15 = BIO_ctrl(pBVar11,3,0,&local_9d0);\n  FUN_00027140(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0);\n  BIO_ctrl(pBVar11,1,0,(void *)0x0);\n  pAVar14 = (ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));\n  ASN1_TIME_print(pBVar11,pAVar14);\n  pAVar16 = (ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0);\n  pcVar30 = (char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX);\n  local_a10 = local_9d0;\n  FUN_00027140(iVar4,pcVar30,pAVar16,local_9d0);\n  BIO_ctrl(pBVar11,1,0,(void *)0x0);\n  BIO_free(pBVar11);\n  local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n  if (piVar9[0x3a] != 2) {\n    if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;\n    local_a1c = *piVar9;\nLAB_00078282:\n    local_a30 = (char *)piVar9[0x25];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];\nLAB_0007829a:\n    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }\n    local_a28 = local_9b4;\n    pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;\n    pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);\n    local_a10 = pAVar18;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\n    else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_000794d2:\n    iVar38 = 0x3c;\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    goto LAB_00078251;\n  }\n  if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) {\n    if (*(char *)((int)piVar9 + 0x201) != '\0') {\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }\n  else if (*(char *)((int)piVar9 + 0x229) != '\0') {\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }\nLAB_000780f3:\n  X509_get_issuer_name(local_a48);\n  iVar38 = FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10);\n  if (iVar38 == 0) {\n    FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);\n    if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }\n    else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }\n    if (iVar38 != 0) {\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    *local_9f8 = lVar15;\n    if (lVar15 == 0) {\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }\n    else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }\n  }\n  else if (param_3 == '\0') {\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }\n  else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }\n  if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    cVar3 = *(char *)((int)piVar9 + 0x22a);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  else {\n    cVar3 = *(char *)((int)piVar9 + 0x202);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  if (cVar3 == '\0') {\nLAB_0007814e:\n    if (param_3 == '\0') {\n      iVar38 = 0;\n    }\n    if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }\n    else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }\n    pXVar12 = *(X509 **)(iVar28 + 8);\n    local_9d0 = pAVar16;\n    if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_00078230:\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    *(undefined4 *)(param_2 + 8) = 5;\n    goto LAB_00078251;\n  }\n  iVar38 = *piVar9;\n  lVar15 = SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc);\n  if (local_9cc == (int *)0x0) {\n    FUN_00027240(iVar38,unaff_EBX + 0x1058a);\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }\n  else {\n    local_9c8 = local_9cc;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }\n    iVar19 = OCSP_response_status(resp);\n    if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));\n    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  iVar38 = 0x5b;\n  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\nLAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0007c1a0();\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "BIO_METHOD *pBVar10;" type_identifier (pointer_declarator "*pBVar10" * identifier) ;) (declaration "BIO *pBVar11;" type_identifier (pointer_declarator "*pBVar11" * identifier) ;) (declaration "X509 *pXVar12;" type_identifier (pointer_declarator "*pXVar12" * identifier) ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "ASN1_TIME *pAVar14;" type_identifier (pointer_declarator "*pAVar14" * identifier) ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "ASN1_GENERALIZEDTIME *pAVar16;" type_identifier (pointer_declarator "*pAVar16" * identifier) ;) (declaration "X509_PUBKEY *pXVar17;" type_identifier (pointer_declarator "*pXVar17" * identifier) ;) (declaration "ASN1_GENERALIZEDTIME *pAVar18;" type_identifier (pointer_declarator "*pAVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "GENERAL_NAMES *a;" type_identifier (pointer_declarator "*a" * identifier) ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "undefined1 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "BIO *out;" type_identifier (pointer_declarator "*out" * identifier) ;) (declaration "undefined4 uVar23;" type_identifier identifier ;) (declaration "ASN1_INTEGER *pAVar24;" type_identifier (pointer_declarator "*pAVar24" * identifier) ;) (declaration "X509_EXTENSION *ex;" type_identifier (pointer_declarator "*ex" * identifier) ;) (declaration "BIO *out_00;" type_identifier (pointer_declarator "*out_00" * identifier) ;) (declaration "ASN1_OBJECT *a_00;" type_identifier (pointer_declarator "*a_00" * identifier) ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "OCSP_RESPONSE *resp;" type_identifier (pointer_declarator "*resp" * identifier) ;) (declaration "OCSP_BASICRESP *bs;" type_identifier (pointer_declarator "*bs" * identifier) ;) (declaration "stack_st_X509 *psVar27;" type_identifier (pointer_declarator "*psVar27" * identifier) ;) (declaration "X509_STORE *st;" type_identifier (pointer_declarator "*st" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "OCSP_SINGLERESP *single;" type_identifier (pointer_declarator "*single" * identifier) ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "char *pcVar30;" primitive_type (pointer_declarator "*pcVar30" * identifier) ;) (declaration "EVP_PKEY *pkey;" type_identifier (pointer_declarator "*pkey" * identifier) ;) (declaration "ASN1_OCTET_STRING *v;" type_identifier (pointer_declarator "*v" * identifier) ;) (declaration "X509_NAME *pXVar31;" type_identifier (pointer_declarator "*pXVar31" * identifier) ;) (declaration "ASN1_GENERALIZEDTIME *pAVar32;" type_identifier (pointer_declarator "*pAVar32" * identifier) ;) (declaration "size_t sVar33;" primitive_type identifier ;) (declaration "X509_NAME_ENTRY *ne;" type_identifier (pointer_declarator "*ne" * identifier) ;) (declaration "ASN1_STRING *pAVar34;" type_identifier (pointer_declarator "*pAVar34" * identifier) ;) (declaration "size_t sVar35;" primitive_type identifier ;) (declaration "ASN1_GENERALIZEDTIME *pAVar36;" type_identifier (pointer_declarator "*pAVar36" * identifier) ;) (declaration "void *pvVar37;" primitive_type (pointer_declarator "*pvVar37" * identifier) ;) (declaration "ulong e;" type_identifier identifier ;) (declaration "int iVar38;" primitive_type identifier ;) (declaration "uint uVar39;" type_identifier identifier ;) (declaration "ASN1_GENERALIZEDTIME *extraout_EDX;" type_identifier (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "int unaff_EBX;" primitive_type identifier ;) (declaration "undefined4 *puVar40;" type_identifier (pointer_declarator "*puVar40" * identifier) ;) (declaration "char *pcVar41;" primitive_type (pointer_declarator "*pcVar41" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar42;" type_identifier identifier ;) (declaration "X509 *local_a48;" type_identifier (pointer_declarator "*local_a48" * identifier) ;) (declaration "int local_a44;" primitive_type identifier ;) (declaration "char *local_a30;" primitive_type (pointer_declarator "*local_a30" * identifier) ;) (declaration "int local_a2c;" primitive_type identifier ;) (declaration "char *local_a28;" primitive_type (pointer_declarator "*local_a28" * identifier) ;) (declaration "int local_a24;" primitive_type identifier ;) (declaration "ASN1_GENERALIZEDTIME *local_a20;" type_identifier (pointer_declarator "*local_a20" * identifier) ;) (declaration "int local_a1c;" primitive_type identifier ;) (declaration "ASN1_GENERALIZEDTIME *local_a14;" type_identifier (pointer_declarator "*local_a14" * identifier) ;) (declaration "ASN1_GENERALIZEDTIME *local_a10;" type_identifier (pointer_declarator "*local_a10" * identifier) ;) (declaration "long *local_9f8;" (sized_type_specifier "long" long) (pointer_declarator "*local_9f8" * identifier) ;) (declaration "ASN1_GENERALIZEDTIME *local_9d0;" type_identifier (pointer_declarator "*local_9d0" * identifier) ;) (declaration "int *local_9cc;" primitive_type (pointer_declarator "*local_9cc" * identifier) ;) (declaration "int *local_9c8;" primitive_type (pointer_declarator "*local_9c8" * identifier) ;) (declaration "long local_9c4;" (sized_type_specifier "long" long) identifier ;) (declaration "ASN1_GENERALIZEDTIME *local_9c0;" type_identifier (pointer_declarator "*local_9c0" * identifier) ;) (declaration "BIGNUM *local_9bc;" type_identifier (pointer_declarator "*local_9bc" * identifier) ;) (declaration "ASN1_GENERALIZEDTIME *local_9b8;" type_identifier (pointer_declarator "*local_9b8" * identifier) ;) (declaration "char local_9b4 [16];" primitive_type (array_declarator "local_9b4 [16]" identifier [ number_literal ]) ;) (declaration "char local_9a4 [128];" primitive_type (array_declarator "local_9a4 [128]" identifier [ number_literal ]) ;) (declaration "char local_924 [4];" primitive_type (array_declarator "local_924 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 local_920 [63];" type_identifier (array_declarator "local_920 [63]" identifier [ number_literal ]) ;) (declaration "undefined1 local_824 [512];" type_identifier (array_declarator "local_824 [512]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_624 [1536];" type_identifier (array_declarator "auStack_624 [1536]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar42 = 0;" (assignment_expression "bVar42 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x77ef9;" (assignment_expression "uStack_14 = 0x77ef9" identifier = number_literal) ;) (expression_statement "piVar9 = (int *)entry();" (assignment_expression "piVar9 = (int *)entry()" identifier = (cast_expression "(int *)entry()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "entry()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar4 = *piVar9;" (assignment_expression "iVar4 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "local_24 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_24 = *(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 "puVar40 = local_920;" (assignment_expression "puVar40 = local_920" identifier = identifier) ;) (for_statement "for (iVar38 = 0x3f; iVar38 != 0; iVar38 = iVar38 + -1) {\n    *puVar40 = 0;\n    puVar40 = puVar40 + (uint)bVar42 * -2 + 1;\n  }" for ( (assignment_expression "iVar38 = 0x3f" identifier = number_literal) ; (binary_expression "iVar38 != 0" identifier != number_literal) ; (assignment_expression "iVar38 = iVar38 + -1" identifier = (binary_expression "iVar38 + -1" identifier + number_literal)) ) (compound_statement "{\n    *puVar40 = 0;\n    puVar40 = puVar40 + (uint)bVar42 * -2 + 1;\n  }" { (expression_statement "*puVar40 = 0;" (assignment_expression "*puVar40 = 0" (pointer_expression "*puVar40" * identifier) = number_literal) ;) (expression_statement "puVar40 = puVar40 + (uint)bVar42 * -2 + 1;" (assignment_expression "puVar40 = puVar40 + (uint)bVar42 * -2 + 1" identifier = (binary_expression "puVar40 + (uint)bVar42 * -2 + 1" (binary_expression "puVar40 + (uint)bVar42 * -2" identifier + (binary_expression "(uint)bVar42 * -2" (cast_expression "(uint)bVar42" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_924[0] = '\0';" (assignment_expression "local_924[0] = '\0'" (subscript_expression "local_924[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_924[1] = '\0';" (assignment_expression "local_924[1] = '\0'" (subscript_expression "local_924[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_924[2] = '\0';" (assignment_expression "local_924[2] = '\0'" (subscript_expression "local_924[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_924[3] = '\0';" (assignment_expression "local_924[3] = '\0'" (subscript_expression "local_924[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    local_9f8 = (long *)(iVar4 + 0x8b4);\n  }\n  else {\n    local_9f8 = (long *)(iVar4 + 0x850);\n  }" if (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" ( (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n    local_9f8 = (long *)(iVar4 + 0x8b4);\n  }" { (expression_statement "local_9f8 = (long *)(iVar4 + 0x8b4);" (assignment_expression "local_9f8 = (long *)(iVar4 + 0x8b4)" identifier = (cast_expression "(long *)(iVar4 + 0x8b4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x8b4)" ( (binary_expression "iVar4 + 0x8b4" identifier + number_literal) )))) ;) }) (else_clause "else {\n    local_9f8 = (long *)(iVar4 + 0x850);\n  }" else (compound_statement "{\n    local_9f8 = (long *)(iVar4 + 0x850);\n  }" { (expression_statement "local_9f8 = (long *)(iVar4 + 0x850);" (assignment_expression "local_9f8 = (long *)(iVar4 + 0x850)" identifier = (cast_expression "(long *)(iVar4 + 0x850)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x850)" ( (binary_expression "iVar4 + 0x850" identifier + number_literal) )))) ;) }))) (expression_statement "pBVar10 = BIO_s_mem();" (assignment_expression "pBVar10 = BIO_s_mem()" identifier = (call_expression "BIO_s_mem()" identifier (argument_list "()" ( )))) ;) (expression_statement "pBVar11 = BIO_new(pBVar10);" (assignment_expression "pBVar11 = BIO_new(pBVar10)" identifier = (call_expression "BIO_new(pBVar10)" identifier (argument_list "(pBVar10)" ( identifier )))) ;) (if_statement "if (*(char *)(iVar4 + 0x864) != '\0') {\n    iVar38 = *piVar9;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }\n  }" if (parenthesized_expression "(*(char *)(iVar4 + 0x864) != '\0')" ( (binary_expression "*(char *)(iVar4 + 0x864) != '\0'" (pointer_expression "*(char *)(iVar4 + 0x864)" * (cast_expression "(char *)(iVar4 + 0x864)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x864)" ( (binary_expression "iVar4 + 0x864" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar38 = *piVar9;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }\n  }" { (expression_statement "iVar38 = *piVar9;" (assignment_expression "iVar38 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));" (assignment_expression "psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" identifier = (call_expression "SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" identifier (argument_list "(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" ( (pointer_expression "*(SSL **)(*(int *)(param_2 + 0xc) + 4)" * (cast_expression "(SSL **)(*(int *)(param_2 + 0xc) + 4)" ( (type_descriptor "SSL **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 4)" ( (binary_expression "*(int *)(param_2 + 0xc) + 4" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) )))) ;) (if_statement "if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }" if (parenthesized_expression "(psVar27 != (stack_st_X509 *)0x0)" ( (binary_expression "psVar27 != (stack_st_X509 *)0x0" identifier != (cast_expression "(stack_st_X509 *)0x0" ( (type_descriptor "stack_st_X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }" { (expression_statement "iVar19 = OPENSSL_sk_num(psVar27);" (assignment_expression "iVar19 = OPENSSL_sk_num(psVar27)" identifier = (call_expression "OPENSSL_sk_num(psVar27)" identifier (argument_list "(psVar27)" ( identifier )))) ;) (expression_statement "iVar28 = FUN_0007b4c0(iVar38,iVar19);" (assignment_expression "iVar28 = FUN_0007b4c0(iVar38,iVar19)" identifier = (call_expression "FUN_0007b4c0(iVar38,iVar19)" identifier (argument_list "(iVar38,iVar19)" ( identifier , identifier )))) ;) (if_statement "if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }" { (expression_statement "pBVar10 = BIO_s_mem();" (assignment_expression "pBVar10 = BIO_s_mem()" identifier = (call_expression "BIO_s_mem()" identifier (argument_list "()" ( )))) ;) (expression_statement "out = BIO_new(pBVar10);" (assignment_expression "out = BIO_new(pBVar10)" identifier = (call_expression "BIO_new(pBVar10)" identifier (argument_list "(pBVar10)" ( identifier )))) ;) (if_statement "if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }" if (parenthesized_expression "(0 < iVar19)" ( (binary_expression "0 < iVar19" number_literal < identifier) )) (compound_statement "{\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }" { (expression_statement "local_a44 = 0;" (assignment_expression "local_a44 = 0" identifier = number_literal) ;) (do_statement "do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);" do (compound_statement "{\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          }" { (expression_statement "pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);" (assignment_expression "pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44)" identifier = (cast_expression "(X509 *)OPENSSL_sk_value(psVar27,local_a44)" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_value(psVar27,local_a44)" identifier (argument_list "(psVar27,local_a44)" ( identifier , identifier ))))) ;) (expression_statement "local_9c8 = (int *)0x0;" (assignment_expression "local_9c8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pXVar31 = X509_get_subject_name(pXVar12);" (assignment_expression "pXVar31 = X509_get_subject_name(pXVar12)" identifier = (call_expression "X509_get_subject_name(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier )))) ;) (expression_statement "X509_NAME_print_ex(out,pXVar31,0,0x82031f);" (call_expression "X509_NAME_print_ex(out,pXVar31,0,0x82031f)" identifier (argument_list "(out,pXVar31,0,0x82031f)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0x1043b" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "pXVar31 = X509_get_issuer_name(pXVar12);" (assignment_expression "pXVar31 = X509_get_issuer_name(pXVar12)" identifier = (call_expression "X509_get_issuer_name(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier )))) ;) (expression_statement "X509_NAME_print_ex(out,pXVar31,0,0x82031f);" (call_expression "X509_NAME_print_ex(out,pXVar31,0,0x82031f)" identifier (argument_list "(out,pXVar31,0,0x82031f)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0x10443" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "uVar23 = X509_get_version(pXVar12);" (assignment_expression "uVar23 = X509_get_version(pXVar12)" identifier = (call_expression "X509_get_version(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier )))) ;) (expression_statement "BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);" (call_expression "BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23)" identifier (argument_list "(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23)" ( identifier , (cast_expression "(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2)" ( (binary_expression "(int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2" (binary_expression "(int)&__DT_SYMTAB[2].st_size + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[2].st_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_SYMTAB[2].st_size" & (field_expression "__DT_SYMTAB[2].st_size" (subscript_expression "__DT_SYMTAB[2]" identifier [ number_literal ]) . field_identifier))) + identifier) + number_literal) ))) , identifier ))) ;) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0xd383" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "pAVar24 = X509_get_serialNumber(pXVar12);" (assignment_expression "pAVar24 = X509_get_serialNumber(pXVar12)" identifier = (call_expression "X509_get_serialNumber(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier )))) ;) (if_statement "if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }" if (parenthesized_expression "(pAVar24->type == 0x102)" ( (binary_expression "pAVar24->type == 0x102" (field_expression "pAVar24->type" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }" { (expression_statement "BIO_puts(out,(char *)(unaff_EBX + 0xf12d));" (call_expression "BIO_puts(out,(char *)(unaff_EBX + 0xf12d))" identifier (argument_list "(out,(char *)(unaff_EBX + 0xf12d))" ( identifier , (cast_expression "(char *)(unaff_EBX + 0xf12d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBX + 0xf12d)" ( (binary_expression "unaff_EBX + 0xf12d" identifier + number_literal) ))) ))) ;) })) (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (if_statement "if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }" if (parenthesized_expression "(0 < pAVar24->length)" ( (binary_expression "0 < pAVar24->length" number_literal < (field_expression "pAVar24->length" identifier -> field_identifier)) )) (compound_statement "{\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }" { (do_statement "do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);" do (compound_statement "{\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              }" { (expression_statement "pbVar2 = pAVar24->data + iVar28;" (assignment_expression "pbVar2 = pAVar24->data + iVar28" identifier = (binary_expression "pAVar24->data + iVar28" (field_expression "pAVar24->data" identifier -> field_identifier) + identifier)) ;) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);" (call_expression "BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2)" identifier (argument_list "(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2)" ( identifier , (cast_expression "(char *)(unaff_EBX + 0xf774)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBX + 0xf774)" ( (binary_expression "unaff_EBX + 0xf774" identifier + number_literal) ))) , (binary_expression "(uint)*pbVar2" (parenthesized_expression "(uint)" ( identifier )) * identifier) ))) ;) }) while (parenthesized_expression "(iVar28 < pAVar24->length)" ( (binary_expression "iVar28 < pAVar24->length" identifier < (field_expression "pAVar24->length" identifier -> field_identifier)) )) ;) })) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0x1044e" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "local_9bc = (BIGNUM *)0x0;" (assignment_expression "local_9bc = (BIGNUM *)0x0" identifier = (cast_expression "(BIGNUM *)0x0" ( (type_descriptor "BIGNUM *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pAVar34 = ASN1_STRING_new();" (assignment_expression "pAVar34 = ASN1_STRING_new()" identifier = (call_expression "ASN1_STRING_new()" identifier (argument_list "()" ( )))) ;) (if_statement "if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }" if (parenthesized_expression "(pAVar34 != (ASN1_STRING *)0x0)" ( (binary_expression "pAVar34 != (ASN1_STRING *)0x0" identifier != (cast_expression "(ASN1_STRING *)0x0" ( (type_descriptor "ASN1_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }" { (expression_statement "X509_get0_signature(&local_9c8,&local_9bc,pXVar12);" (call_expression "X509_get0_signature(&local_9c8,&local_9bc,pXVar12)" identifier (argument_list "(&local_9c8,&local_9bc,pXVar12)" ( (pointer_expression "&local_9c8" & identifier) , (pointer_expression "&local_9bc" & identifier) , identifier ))) ;) (expression_statement "X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);" (call_expression "X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34)" identifier (argument_list "(out,(X509_ALGOR *)local_9bc,pAVar34)" ( identifier , (cast_expression "(X509_ALGOR *)local_9bc" ( (type_descriptor "X509_ALGOR *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "ASN1_STRING_free(pAVar34);" (call_expression "ASN1_STRING_free(pAVar34)" identifier (argument_list "(pAVar34)" ( identifier ))) ;) (if_statement "if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }" if (parenthesized_expression "(local_9bc != (BIGNUM *)0x0)" ( (binary_expression "local_9bc != (BIGNUM *)0x0" identifier != (cast_expression "(BIGNUM *)0x0" ( (type_descriptor "BIGNUM *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }" { (expression_statement "i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);" (call_expression "i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d)" identifier (argument_list "(out,(ASN1_OBJECT *)local_9bc->d)" ( identifier , (cast_expression "(ASN1_OBJECT *)local_9bc->d" ( (type_descriptor "ASN1_OBJECT *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_9bc->d" identifier -> field_identifier)) ))) ;) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0x1045c" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) })) (expression_statement "uVar23 = X509_get0_extensions(pXVar12);" (assignment_expression "uVar23 = X509_get0_extensions(pXVar12)" identifier = (call_expression "X509_get0_extensions(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier )))) ;) (expression_statement "iVar28 = OPENSSL_sk_num(uVar23);" (assignment_expression "iVar28 = OPENSSL_sk_num(uVar23)" identifier = (call_expression "OPENSSL_sk_num(uVar23)" identifier (argument_list "(uVar23)" ( identifier )))) ;) (expression_statement "local_a2c = 0;" (assignment_expression "local_a2c = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }" if (parenthesized_expression "(0 < iVar28)" ( (binary_expression "0 < iVar28" number_literal < identifier) )) (compound_statement "{\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }" { (for_statement "for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }" for ( ; (comma_expression "iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28" (assignment_expression "iVar28 = OPENSSL_sk_num(uVar23)" identifier = (call_expression "OPENSSL_sk_num(uVar23)" identifier (argument_list "(uVar23)" ( identifier )))) , (binary_expression "local_a2c < iVar28" identifier < identifier)) ; (assignment_expression "local_a2c = local_a2c + 1" identifier = (binary_expression "local_a2c + 1" identifier + number_literal)) ) (compound_statement "{\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }" { (expression_statement "ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);" (assignment_expression "ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c)" identifier = (cast_expression "(X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c)" ( (type_descriptor "X509_EXTENSION *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_value(uVar23,local_a2c)" identifier (argument_list "(uVar23,local_a2c)" ( identifier , identifier ))))) ;) (expression_statement "pBVar10 = BIO_s_mem();" (assignment_expression "pBVar10 = BIO_s_mem()" identifier = (call_expression "BIO_s_mem()" identifier (argument_list "()" ( )))) ;) (expression_statement "out_00 = BIO_new(pBVar10);" (assignment_expression "out_00 = BIO_new(pBVar10)" identifier = (call_expression "BIO_new(pBVar10)" identifier (argument_list "(pBVar10)" ( identifier )))) ;) (if_statement "if (out_00 == (BIO *)0x0) break;" if (parenthesized_expression "(out_00 == (BIO *)0x0)" ( (binary_expression "out_00 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "a_00 = X509_EXTENSION_get_object(ex);" (assignment_expression "a_00 = X509_EXTENSION_get_object(ex)" identifier = (call_expression "X509_EXTENSION_get_object(ex)" identifier (argument_list "(ex)" ( identifier )))) ;) (expression_statement "i2t_ASN1_OBJECT(local_9a4,0x80,a_00);" (call_expression "i2t_ASN1_OBJECT(local_9a4,0x80,a_00)" identifier (argument_list "(local_9a4,0x80,a_00)" ( identifier , number_literal , identifier ))) ;) (expression_statement "iVar28 = X509V3_EXT_print(out_00,ex,0,0);" (assignment_expression "iVar28 = X509V3_EXT_print(out_00,ex,0,0)" identifier = (call_expression "X509V3_EXT_print(out_00,ex,0,0)" identifier (argument_list "(out_00,ex,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }" { (expression_statement "v = X509_EXTENSION_get_data(ex);" (assignment_expression "v = X509_EXTENSION_get_data(ex)" identifier = (call_expression "X509_EXTENSION_get_data(ex)" identifier (argument_list "(ex)" ( identifier )))) ;) (expression_statement "ASN1_STRING_print(out_00,v);" (call_expression "ASN1_STRING_print(out_00,v)" identifier (argument_list "(out_00,v)" ( identifier , identifier ))) ;) })) (expression_statement "BIO_ctrl(out_00,0x73,0,&local_9b8);" (call_expression "BIO_ctrl(out_00,0x73,0,&local_9b8)" identifier (argument_list "(out_00,0x73,0,&local_9b8)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9b8" & identifier) ))) ;) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) (expression_statement "uVar39 = local_9b8->length;" (assignment_expression "uVar39 = local_9b8->length" identifier = (field_expression "local_9b8->length" identifier -> field_identifier)) ;) (expression_statement "pAVar16 = local_9b8;" (assignment_expression "pAVar16 = local_9b8" identifier = identifier) ;) (expression_statement "local_a20 = (ASN1_GENERALIZEDTIME *)local_824;" (assignment_expression "local_a20 = (ASN1_GENERALIZEDTIME *)local_824" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)local_824" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }" if (parenthesized_expression "(uVar39 != 0)" ( (binary_expression "uVar39 != 0" identifier != number_literal) )) (compound_statement "{\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }" { (do_statement "do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);" do (compound_statement "{\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  }" { (expression_statement "iVar28 = pAVar16->type;" (assignment_expression "iVar28 = pAVar16->type" identifier = (field_expression "pAVar16->type" identifier -> field_identifier)) ;) (expression_statement "uVar26 = uVar25;" (assignment_expression "uVar26 = uVar25" identifier = identifier) ;) (expression_statement "uVar8 = uVar25 + 1;" (assignment_expression "uVar8 = uVar25 + 1" identifier = (binary_expression "uVar25 + 1" identifier + number_literal)) ;) (expression_statement "local_a24 = unaff_EBX + 0xfe77;" (assignment_expression "local_a24 = unaff_EBX + 0xfe77" identifier = (binary_expression "unaff_EBX + 0xfe77" identifier + number_literal)) ;) (if_statement "if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }" if (parenthesized_expression "(*(char *)(iVar28 + uVar25) == '\n')" ( (binary_expression "*(char *)(iVar28 + uVar25) == '\n'" (pointer_expression "*(char *)(iVar28 + uVar25)" * (cast_expression "(char *)(iVar28 + uVar25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + uVar25)" ( (binary_expression "iVar28 + uVar25" identifier + identifier) )))) == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }" { (expression_statement "uVar26 = uVar25 + 1;" (assignment_expression "uVar26 = uVar25 + 1" identifier = (binary_expression "uVar25 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = uVar25 + 2;" (assignment_expression "uVar8 = uVar25 + 2" identifier = (binary_expression "uVar25 + 2" identifier + number_literal)) ;) (expression_statement "local_a24 = unaff_EBX + 0x6071;" (assignment_expression "local_a24 = unaff_EBX + 0x6071" identifier = (binary_expression "unaff_EBX + 0x6071" identifier + number_literal)) ;) })) (expression_statement "uVar25 = uVar8;" (assignment_expression "uVar25 = uVar8" identifier = identifier) ;) (if_statement "if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }" if (parenthesized_expression "(uVar26 < uVar39)" ( (binary_expression "uVar26 < uVar39" identifier < identifier) )) (compound_statement "{\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }" { (expression_statement "cVar3 = *(char *)(iVar28 + uVar26);" (assignment_expression "cVar3 = *(char *)(iVar28 + uVar26)" identifier = (pointer_expression "*(char *)(iVar28 + uVar26)" * (cast_expression "(char *)(iVar28 + uVar26)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + uVar26)" ( (binary_expression "iVar28 + uVar26" identifier + identifier) ))))) ;) (if_statement "if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }" if (parenthesized_expression "(cVar3 == ' ')" ( (binary_expression "cVar3 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }" { (expression_statement "uVar26 = uVar26 + 2;" (assignment_expression "uVar26 = uVar26 + 2" identifier = (binary_expression "uVar26 + 2" identifier + number_literal)) ;) (do_statement "do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');" do (compound_statement "{\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        }" { (expression_statement "uVar25 = uVar26;" (assignment_expression "uVar25 = uVar26" identifier = identifier) ;) (if_statement "if (uVar39 + 1 == uVar25) goto LAB_000789f7;" if (parenthesized_expression "(uVar39 + 1 == uVar25)" ( (binary_expression "uVar39 + 1 == uVar25" (binary_expression "uVar39 + 1" identifier + number_literal) == identifier) )) (goto_statement "goto LAB_000789f7;" goto statement_identifier ;)) (expression_statement "cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);" (assignment_expression "cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1)" identifier = (pointer_expression "*(char *)(iVar28 + -2 + uVar25 + 1)" * (cast_expression "(char *)(iVar28 + -2 + uVar25 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + -2 + uVar25 + 1)" ( (binary_expression "iVar28 + -2 + uVar25 + 1" (binary_expression "iVar28 + -2 + uVar25" (binary_expression "iVar28 + -2" identifier + number_literal) + identifier) + number_literal) ))))) ;) (expression_statement "uVar26 = uVar25 + 1;" (assignment_expression "uVar26 = uVar25 + 1" identifier = (binary_expression "uVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(cVar3 == ' ')" ( (binary_expression "cVar3 == ' '" identifier == (char_literal "' '" ' character ')) )) ;) })) (expression_statement "iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);" (assignment_expression "iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3)" identifier = (call_expression "curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3)" identifier (argument_list "(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3)" ( identifier , (binary_expression "auStack_624 + -(int)local_a20" identifier + (unary_expression "-(int)local_a20" - (cast_expression "(int)local_a20" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "unaff_EBX + 0xb37b" identifier + number_literal) , identifier , (cast_expression "(int)cVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);" (assignment_expression "local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a20 + iVar28)" ( (binary_expression "(int)local_a20 + iVar28" (cast_expression "(int)local_a20" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pAVar16 = local_9b8;" (assignment_expression "pAVar16 = local_9b8" identifier = identifier) ;) })) (labeled_statement "LAB_000789f7:\n                    uVar39 = pAVar16->length;" statement_identifier : (expression_statement "uVar39 = pAVar16->length;" (assignment_expression "uVar39 = pAVar16->length" identifier = (field_expression "pAVar16->length" identifier -> field_identifier)) ;)) }) while (parenthesized_expression "(uVar25 < uVar39)" ( (binary_expression "uVar25 < uVar39" identifier < identifier) )) ;) })) (expression_statement "FUN_0007b610(iVar38,local_a44,local_9a4,local_824);" (call_expression "FUN_0007b610(iVar38,local_a44,local_9a4,local_824)" identifier (argument_list "(iVar38,local_a44,local_9a4,local_824)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "BIO_free(out_00);" (call_expression "BIO_free(out_00)" identifier (argument_list "(out_00)" ( identifier ))) ;) })) })) (expression_statement "pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);" (assignment_expression "pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12)" identifier = (cast_expression "(ASN1_TIME *)X509_get0_notBefore(pXVar12)" ( (type_descriptor "ASN1_TIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get0_notBefore(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier ))))) ;) (expression_statement "ASN1_TIME_print(out,pAVar14);" (call_expression "ASN1_TIME_print(out,pAVar14)" identifier (argument_list "(out,pAVar14)" ( identifier , identifier ))) ;) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0x10471" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);" (assignment_expression "pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12)" identifier = (cast_expression "(ASN1_TIME *)X509_get0_notAfter(pXVar12)" ( (type_descriptor "ASN1_TIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get0_notAfter(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier ))))) ;) (expression_statement "ASN1_TIME_print(out,pAVar14);" (call_expression "ASN1_TIME_print(out,pAVar14)" identifier (argument_list "(out,pAVar14)" ( identifier , identifier ))) ;) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0x1047c" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "pkey = X509_get_pubkey(pXVar12);" (assignment_expression "pkey = X509_get_pubkey(pXVar12)" identifier = (call_expression "X509_get_pubkey(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier )))) ;) (if_statement "if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }" if (parenthesized_expression "(pkey == (EVP_PKEY *)0x0)" ( (binary_expression "pkey == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }" { (expression_statement "FUN_00027140(iVar38,unaff_EBX + 0x10488);" (call_expression "FUN_00027140(iVar38,unaff_EBX + 0x10488)" identifier (argument_list "(iVar38,unaff_EBX + 0x10488)" ( identifier , (binary_expression "unaff_EBX + 0x10488" identifier + number_literal) ))) ;) }) (else_clause "else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }" else (compound_statement "{\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }" { (expression_statement "iVar28 = EVP_PKEY_id(pkey);" (assignment_expression "iVar28 = EVP_PKEY_id(pkey)" identifier = (call_expression "EVP_PKEY_id(pkey)" identifier (argument_list "(pkey)" ( identifier )))) ;) (if_statement "if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }" if (parenthesized_expression "(iVar28 == 0x1c)" ( (binary_expression "iVar28 == 0x1c" identifier == number_literal) )) (compound_statement "{\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }" { (expression_statement "uVar23 = EVP_PKEY_get0_DH(pkey);" (assignment_expression "uVar23 = EVP_PKEY_get0_DH(pkey)" identifier = (call_expression "EVP_PKEY_get0_DH(pkey)" identifier (argument_list "(pkey)" ( identifier )))) ;) (expression_statement "DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);" (call_expression "DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc)" identifier (argument_list "(uVar23,&local_9c4,&local_9c0,&local_9bc)" ( identifier , (pointer_expression "&local_9c4" & identifier) , (pointer_expression "&local_9c0" & identifier) , (pointer_expression "&local_9bc" & identifier) ))) ;) (expression_statement "iVar28 = unaff_EBX + 0x544b;" (assignment_expression "iVar28 = unaff_EBX + 0x544b" identifier = (binary_expression "unaff_EBX + 0x544b" identifier + number_literal)) ;) (expression_statement "DH_get0_key(uVar23,&local_9b8,0);" (call_expression "DH_get0_key(uVar23,&local_9b8,0)" identifier (argument_list "(uVar23,&local_9b8,0)" ( identifier , (pointer_expression "&local_9b8" & identifier) , number_literal ))) ;) (labeled_statement "LAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);" statement_identifier : (expression_statement "FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);" (call_expression "FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4)" identifier (argument_list "(iVar28,unaff_EBX + 0x7c87,local_9c4)" ( identifier , (binary_expression "unaff_EBX + 0x7c87" identifier + number_literal) , identifier ))) ;)) (expression_statement "FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);" (call_expression "FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0)" identifier (argument_list "(iVar28,unaff_EBX + 0xdee9,local_9c0)" ( identifier , (binary_expression "unaff_EBX + 0xdee9" identifier + number_literal) , identifier ))) ;) (expression_statement "FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);" (call_expression "FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc)" identifier (argument_list "(iVar28,unaff_EBX + 0xf20b,local_9bc)" ( identifier , (binary_expression "unaff_EBX + 0xf20b" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar29 = unaff_EBX + 0x104b5;" (assignment_expression "iVar29 = unaff_EBX + 0x104b5" identifier = (binary_expression "unaff_EBX + 0x104b5" identifier + number_literal)) ;) (labeled_statement "LAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);" statement_identifier : (expression_statement "FUN_00075190(iVar28,iVar29,local_9b8);" (call_expression "FUN_00075190(iVar28,iVar29,local_9b8)" identifier (argument_list "(iVar28,iVar29,local_9b8)" ( identifier , identifier , identifier ))) ;)) }) (else_clause "else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }" else (compound_statement "{\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }" { (if_statement "if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }" if (parenthesized_expression "(iVar28 == 0x74)" ( (binary_expression "iVar28 == 0x74" identifier == number_literal) )) (compound_statement "{\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }" { (expression_statement "uVar23 = EVP_PKEY_get0_DSA(pkey);" (assignment_expression "uVar23 = EVP_PKEY_get0_DSA(pkey)" identifier = (call_expression "EVP_PKEY_get0_DSA(pkey)" identifier (argument_list "(pkey)" ( identifier )))) ;) (expression_statement "DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);" (call_expression "DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc)" identifier (argument_list "(uVar23,&local_9c4,&local_9c0,&local_9bc)" ( identifier , (pointer_expression "&local_9c4" & identifier) , (pointer_expression "&local_9c0" & identifier) , (pointer_expression "&local_9bc" & identifier) ))) ;) (expression_statement "iVar28 = unaff_EBX + 0xc090;" (assignment_expression "iVar28 = unaff_EBX + 0xc090" identifier = (binary_expression "unaff_EBX + 0xc090" identifier + number_literal)) ;) (expression_statement "DSA_get0_key(uVar23,&local_9b8,0);" (call_expression "DSA_get0_key(uVar23,&local_9b8,0)" identifier (argument_list "(uVar23,&local_9b8,0)" ( identifier , (pointer_expression "&local_9b8" & identifier) , number_literal ))) ;) (goto_statement "goto LAB_0007922b;" goto statement_identifier ;) })) (if_statement "if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }" if (parenthesized_expression "(iVar28 == 6)" ( (binary_expression "iVar28 == 6" identifier == number_literal) )) (compound_statement "{\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }" { (expression_statement "iVar28 = unaff_EBX + 0xc081;" (assignment_expression "iVar28 = unaff_EBX + 0xc081" identifier = (binary_expression "unaff_EBX + 0xc081" identifier + number_literal)) ;) (expression_statement "uVar23 = EVP_PKEY_get0_RSA(pkey);" (assignment_expression "uVar23 = EVP_PKEY_get0_RSA(pkey)" identifier = (call_expression "EVP_PKEY_get0_RSA(pkey)" identifier (argument_list "(pkey)" ( identifier )))) ;) (expression_statement "RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);" (call_expression "RSA_get0_key(uVar23,&local_9bc,&local_9b8,0)" identifier (argument_list "(uVar23,&local_9bc,&local_9b8,0)" ( identifier , (pointer_expression "&local_9bc" & identifier) , (pointer_expression "&local_9b8" & identifier) , number_literal ))) ;) (expression_statement "BN_print(out,local_9bc);" (call_expression "BN_print(out,local_9bc)" identifier (argument_list "(out,local_9bc)" ( identifier , identifier ))) ;) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0x104a6" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);" (call_expression "FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc)" identifier (argument_list "(iVar28,unaff_EBX + 0xf7bd,local_9bc)" ( identifier , (binary_expression "unaff_EBX + 0xf7bd" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar29 = unaff_EBX + 0x102a0;" (assignment_expression "iVar29 = unaff_EBX + 0x102a0" identifier = (binary_expression "unaff_EBX + 0x102a0" identifier + number_literal)) ;) (goto_statement "goto LAB_000791bc;" goto statement_identifier ;) })) }))) (expression_statement "EVP_PKEY_free(pkey);" (call_expression "EVP_PKEY_free(pkey)" identifier (argument_list "(pkey)" ( identifier ))) ;) }))) (if_statement "if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }" if (parenthesized_expression "(local_9c8 != (int *)0x0)" ( (binary_expression "local_9c8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }" { (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (if_statement "if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }" if (parenthesized_expression "(0 < *local_9c8)" ( (binary_expression "0 < *local_9c8" number_literal < (pointer_expression "*local_9c8" * identifier)) )) (compound_statement "{\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }" { (do_statement "do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);" do (compound_statement "{\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                }" { (expression_statement "pbVar2 = (byte *)(local_9c8[2] + iVar28);" (assignment_expression "pbVar2 = (byte *)(local_9c8[2] + iVar28)" identifier = (cast_expression "(byte *)(local_9c8[2] + iVar28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c8[2] + iVar28)" ( (binary_expression "local_9c8[2] + iVar28" (subscript_expression "local_9c8[2]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);" (call_expression "BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2)" identifier (argument_list "(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2)" ( identifier , (cast_expression "(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3)" ( (binary_expression "(int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3" (binary_expression "(int)&__DT_SYMTAB[10].st_value + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[10].st_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_SYMTAB[10].st_value" & (field_expression "__DT_SYMTAB[10].st_value" (subscript_expression "__DT_SYMTAB[10]" identifier [ number_literal ]) . field_identifier))) + identifier) + number_literal) ))) , (binary_expression "(uint)*pbVar2" (parenthesized_expression "(uint)" ( identifier )) * identifier) ))) ;) }) while (parenthesized_expression "(iVar28 < *local_9c8)" ( (binary_expression "iVar28 < *local_9c8" identifier < (pointer_expression "*local_9c8" * identifier)) )) ;) })) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0x104bd" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (expression_statement "PEM_write_bio_X509(out,pXVar12);" (call_expression "PEM_write_bio_X509(out,pXVar12)" identifier (argument_list "(out,pXVar12)" ( identifier , identifier ))) ;) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0x104cd" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "local_a44 = local_a44 + 1;" (assignment_expression "local_a44 = local_a44 + 1" identifier = (binary_expression "local_a44 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 != local_a44)" ( (binary_expression "iVar19 != local_a44" identifier != identifier) )) ;) })) (expression_statement "BIO_free(out);" (call_expression "BIO_free(out)" identifier (argument_list "(out)" ( identifier ))) ;) })) })) })) (expression_statement "iVar38 = *(int *)(param_2 + 0xc);" (assignment_expression "iVar38 = *(int *)(param_2 + 0xc)" identifier = (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pXVar12 = SSL_get_peer_certificate(*(SSL **)(iVar38 + 4));" (assignment_expression "pXVar12 = SSL_get_peer_certificate(*(SSL **)(iVar38 + 4))" identifier = (call_expression "SSL_get_peer_certificate(*(SSL **)(iVar38 + 4))" identifier (argument_list "(*(SSL **)(iVar38 + 4))" ( (pointer_expression "*(SSL **)(iVar38 + 4)" * (cast_expression "(SSL **)(iVar38 + 4)" ( (type_descriptor "SSL **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar38 + 4)" ( (binary_expression "iVar38 + 4" identifier + number_literal) )))) )))) ;) (expression_statement "*(X509 **)(iVar38 + 8) = pXVar12;" (assignment_expression "*(X509 **)(iVar38 + 8) = pXVar12" (pointer_expression "*(X509 **)(iVar38 + 8)" * (cast_expression "(X509 **)(iVar38 + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar38 + 8)" ( (binary_expression "iVar38 + 8" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(*(int *)(param_2 + 0xc) + 8) == 0) {\n    iVar38 = 0;\n    BIO_free(pBVar11);\n    if (param_3 != '\0') {\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }\n    goto LAB_00078251;\n  }" if (parenthesized_expression "(*(int *)(*(int *)(param_2 + 0xc) + 8) == 0)" ( (binary_expression "*(int *)(*(int *)(param_2 + 0xc) + 8) == 0" (pointer_expression "*(int *)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(int *)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar38 = 0;\n    BIO_free(pBVar11);\n    if (param_3 != '\0') {\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }\n    goto LAB_00078251;\n  }" { (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" identifier = number_literal) ;) (expression_statement "BIO_free(pBVar11);" (call_expression "BIO_free(pBVar11)" identifier (argument_list "(pBVar11)" ( identifier ))) ;) (if_statement "if (param_3 != '\0') {\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }" if (parenthesized_expression "(param_3 != '\0')" ( (binary_expression "param_3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }" { (expression_statement "iVar38 = 0x3c;" (assignment_expression "iVar38 = 0x3c" identifier = number_literal) ;) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x1122f);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x1122f)" identifier (argument_list "(iVar4,unaff_EBX + 0x1122f)" ( identifier , (binary_expression "unaff_EBX + 0x1122f" identifier + number_literal) ))) ;) })) (goto_statement "goto LAB_00078251;" goto statement_identifier ;) })) (expression_statement "iVar38 = unaff_EBX + 0x5eef;" (assignment_expression "iVar38 = unaff_EBX + 0x5eef" identifier = (binary_expression "unaff_EBX + 0x5eef" identifier + number_literal)) ;) (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    iVar38 = unaff_EBX + 0x5ee9;\n  }" if (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" ( (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n    iVar38 = unaff_EBX + 0x5ee9;\n  }" { (expression_statement "iVar38 = unaff_EBX + 0x5ee9;" (assignment_expression "iVar38 = unaff_EBX + 0x5ee9" identifier = (binary_expression "unaff_EBX + 0x5ee9" identifier + number_literal)) ;) })) (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x104d2,iVar38);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x104d2,iVar38)" identifier (argument_list "(iVar4,unaff_EBX + 0x104d2,iVar38)" ( identifier , (binary_expression "unaff_EBX + 0x104d2" identifier + number_literal) , identifier ))) ;) (expression_statement "X509_get_subject_name(*(X509 **)(*(int *)(param_2 + 0xc) + 8));" (call_expression "X509_get_subject_name(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" identifier (argument_list "(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" ( (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) ))) ;) (expression_statement "puVar22 = local_824;" (assignment_expression "puVar22 = local_824" identifier = identifier) ;) (expression_statement "iVar38 = FUN_00077df0();" (assignment_expression "iVar38 = FUN_00077df0()" identifier = (call_expression "FUN_00077df0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar13 = (undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX);" (assignment_expression "puVar13 = (undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX)" identifier = (cast_expression "(undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_SYMTAB[1].st_value + unaff_EBX)" ( (binary_expression "(int)&__DT_SYMTAB[1].st_value + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[1].st_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_SYMTAB[1].st_value" & (field_expression "__DT_SYMTAB[1].st_value" (subscript_expression "__DT_SYMTAB[1]" identifier [ number_literal ]) . field_identifier))) + identifier) )))) ;) (if_statement "if (iVar38 == 0) {\n    puVar13 = puVar22;\n  }" if (parenthesized_expression "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar13 = puVar22;\n  }" { (expression_statement "puVar13 = puVar22;" (assignment_expression "puVar13 = puVar22" identifier = identifier) ;) })) (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x104e3,puVar13);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x104e3,puVar13)" identifier (argument_list "(iVar4,unaff_EBX + 0x104e3,puVar13)" ( identifier , (binary_expression "unaff_EBX + 0x104e3" identifier + number_literal) , identifier ))) ;) (expression_statement "pAVar14 = (ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));" (assignment_expression "pAVar14 = (ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" identifier = (cast_expression "(ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" ( (type_descriptor "ASN1_TIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" identifier (argument_list "(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" ( (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) ))))) ;) (expression_statement "ASN1_TIME_print(pBVar11,pAVar14);" (call_expression "ASN1_TIME_print(pBVar11,pAVar14)" identifier (argument_list "(pBVar11,pAVar14)" ( identifier , identifier ))) ;) (expression_statement "lVar15 = BIO_ctrl(pBVar11,3,0,&local_9d0);" (assignment_expression "lVar15 = BIO_ctrl(pBVar11,3,0,&local_9d0)" identifier = (call_expression "BIO_ctrl(pBVar11,3,0,&local_9d0)" identifier (argument_list "(pBVar11,3,0,&local_9d0)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9d0" & identifier) )))) ;) (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0)" identifier (argument_list "(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0)" ( identifier , (binary_expression "unaff_EBX + 0x104f1" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(pBVar11,1,0,(void *)0x0);" (call_expression "BIO_ctrl(pBVar11,1,0,(void *)0x0)" identifier (argument_list "(pBVar11,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "pAVar14 = (ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));" (assignment_expression "pAVar14 = (ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" identifier = (cast_expression "(ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" ( (type_descriptor "ASN1_TIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" identifier (argument_list "(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" ( (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) ))))) ;) (expression_statement "ASN1_TIME_print(pBVar11,pAVar14);" (call_expression "ASN1_TIME_print(pBVar11,pAVar14)" identifier (argument_list "(pBVar11,pAVar14)" ( identifier , identifier ))) ;) (expression_statement "pAVar16 = (ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0);" (assignment_expression "pAVar16 = (ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "BIO_ctrl(pBVar11,3,0,&local_9d0)" identifier (argument_list "(pBVar11,3,0,&local_9d0)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9d0" & identifier) ))))) ;) (expression_statement "pcVar30 = (char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX);" (assignment_expression "pcVar30 = (char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX)" identifier = (cast_expression "(char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX)" ( (binary_expression "(int)&__DT_SYMTAB[0xe].st_value + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[0xe].st_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_SYMTAB[0xe].st_value" & (field_expression "__DT_SYMTAB[0xe].st_value" (subscript_expression "__DT_SYMTAB[0xe]" identifier [ number_literal ]) . field_identifier))) + identifier) )))) ;) (expression_statement "local_a10 = local_9d0;" (assignment_expression "local_a10 = local_9d0" identifier = identifier) ;) (expression_statement "FUN_00027140(iVar4,pcVar30,pAVar16,local_9d0);" (call_expression "FUN_00027140(iVar4,pcVar30,pAVar16,local_9d0)" identifier (argument_list "(iVar4,pcVar30,pAVar16,local_9d0)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(pBVar11,1,0,(void *)0x0);" (call_expression "BIO_ctrl(pBVar11,1,0,(void *)0x0)" identifier (argument_list "(pBVar11,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "BIO_free(pBVar11);" (call_expression "BIO_free(pBVar11)" identifier (argument_list "(pBVar11)" ( identifier ))) ;) (expression_statement "local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" identifier = (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (piVar9[0x3a] != 2) {\n    if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;\n    local_a1c = *piVar9;\nLAB_00078282:\n    local_a30 = (char *)piVar9[0x25];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];\nLAB_0007829a:\n    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }\n    local_a28 = local_9b4;\n    pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;\n    pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);\n    local_a10 = pAVar18;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\n    else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_000794d2:\n    iVar38 = 0x3c;\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    goto LAB_00078251;\n  }" if (parenthesized_expression "(piVar9[0x3a] != 2)" ( (binary_expression "piVar9[0x3a] != 2" (subscript_expression "piVar9[0x3a]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;\n    local_a1c = *piVar9;\nLAB_00078282:\n    local_a30 = (char *)piVar9[0x25];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];\nLAB_0007829a:\n    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }\n    local_a28 = local_9b4;\n    pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;\n    pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);\n    local_a10 = pAVar18;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\n    else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_000794d2:\n    iVar38 = 0x3c;\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    goto LAB_00078251;\n  }" { (if_statement "if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;" if (parenthesized_expression "(*(char *)((int)piVar9 + 0x201) == '\0')" ( (binary_expression "*(char *)((int)piVar9 + 0x201) == '\0'" (pointer_expression "*(char *)((int)piVar9 + 0x201)" * (cast_expression "(char *)((int)piVar9 + 0x201)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x201)" ( (binary_expression "(int)piVar9 + 0x201" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000780f3;" goto statement_identifier ;)) (expression_statement "local_a1c = *piVar9;" (assignment_expression "local_a1c = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (labeled_statement "LAB_00078282:\n    local_a30 = (char *)piVar9[0x25];" statement_identifier : (expression_statement "local_a30 = (char *)piVar9[0x25];" (assignment_expression "local_a30 = (char *)piVar9[0x25]" identifier = (cast_expression "(char *)piVar9[0x25]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[0x25]" identifier [ number_literal ]))) ;)) (expression_statement "local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];" (assignment_expression "local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26]" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)piVar9[0x26]" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[0x26]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_0007829a:\n    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }" statement_identifier : (if_statement "if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }" if (parenthesized_expression "((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0))" ( (binary_expression "(*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)" (parenthesized_expression "(*(char *)((int)piVar9 + 0x252) == '\0')" ( (binary_expression "*(char *)((int)piVar9 + 0x252) == '\0'" (pointer_expression "*(char *)((int)piVar9 + 0x252)" * (cast_expression "(char *)((int)piVar9 + 0x252)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x252)" ( (binary_expression "(int)piVar9 + 0x252" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)" ( (comma_expression "iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0" (assignment_expression "iVar38 = inet_pton(10,local_a30,local_9b4)" identifier = (call_expression "inet_pton(10,local_a30,local_9b4)" identifier (argument_list "(10,local_a30,local_9b4)" ( number_literal , identifier , identifier )))) , (binary_expression "iVar38 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }" { (expression_statement "local_a28 = local_9b4;" (assignment_expression "local_a28 = local_9b4" identifier = identifier) ;) (expression_statement "iVar38 = inet_pton(2,local_a30,local_a28);" (assignment_expression "iVar38 = inet_pton(2,local_a30,local_a28)" identifier = (call_expression "inet_pton(2,local_a30,local_a28)" identifier (argument_list "(2,local_a30,local_a28)" ( number_literal , identifier , identifier )))) ;) (expression_statement "local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);" (assignment_expression "local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~-(uint)(iVar38 == 0) & 4)" ( (binary_expression "~-(uint)(iVar38 == 0) & 4" (unary_expression "~-(uint)(iVar38 == 0)" ~ (unary_expression "-(uint)(iVar38 == 0)" - (call_expression "(uint)(iVar38 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) ))))) & number_literal) )))) ;) (expression_statement "iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;" (assignment_expression "iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7" identifier = (binary_expression "(-(uint)(iVar38 == 0) & 0xfffffffb) + 7" (parenthesized_expression "(-(uint)(iVar38 == 0) & 0xfffffffb)" ( (binary_expression "-(uint)(iVar38 == 0) & 0xfffffffb" (unary_expression "-(uint)(iVar38 == 0)" - (call_expression "(uint)(iVar38 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) }) (else_clause "else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }" else (compound_statement "{\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }" { (expression_statement "local_a20 = (ASN1_GENERALIZEDTIME *)0x10;" (assignment_expression "local_a20 = (ASN1_GENERALIZEDTIME *)0x10" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)0x10" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar38 = 7;" (assignment_expression "iVar38 = 7" identifier = number_literal) ;) })))) (expression_statement "local_a28 = local_9b4;" (assignment_expression "local_a28 = local_9b4" identifier = identifier) ;) (expression_statement "pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;" (assignment_expression "pAVar18 = (ASN1_GENERALIZEDTIME *)0x0" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;" (assignment_expression "pAVar16 = (ASN1_GENERALIZEDTIME *)0x0" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);" (assignment_expression "a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0)" identifier = (cast_expression "(GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0)" ( (type_descriptor "GENERAL_NAMES *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0)" identifier (argument_list "(local_a48,0x55,(int *)0x0,(int *)0x0)" ( identifier , number_literal , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "local_a10 = pAVar18;" (assignment_expression "local_a10 = pAVar18" identifier = identifier) ;) (if_statement "if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\n    else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }" if (parenthesized_expression "(a == (GENERAL_NAMES *)0x0)" ( (binary_expression "a == (GENERAL_NAMES *)0x0" identifier == (cast_expression "(GENERAL_NAMES *)0x0" ( (type_descriptor "GENERAL_NAMES *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }" { (labeled_statement "LAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);" statement_identifier : (expression_statement "pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);" (assignment_expression "pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBX + 0xfe77)" ( (binary_expression "unaff_EBX + 0xfe77" identifier + number_literal) )))) ;)) (expression_statement "local_9b8 = pAVar18;" (assignment_expression "local_9b8 = pAVar18" identifier = identifier) ;) (expression_statement "pXVar31 = X509_get_subject_name(local_a48);" (assignment_expression "pXVar31 = X509_get_subject_name(local_a48)" identifier = (call_expression "X509_get_subject_name(local_a48)" identifier (argument_list "(local_a48)" ( identifier )))) ;) (expression_statement "pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;" (assignment_expression "pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)0xffffffff" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }" if (parenthesized_expression "(pXVar31 == (X509_NAME *)0x0)" ( (binary_expression "pXVar31 == (X509_NAME *)0x0" identifier == (cast_expression "(X509_NAME *)0x0" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }" { (labeled_statement "LAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }" statement_identifier : (if_statement "if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }" if (parenthesized_expression "(local_9b8 == pAVar18)" ( (binary_expression "local_9b8 == pAVar18" identifier == identifier) )) (compound_statement "{\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }" { (expression_statement "local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;" (assignment_expression "local_9b8 = (ASN1_GENERALIZEDTIME *)0x0" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;" statement_identifier : (expression_statement "unaff_EBX = unaff_EBX + 0x1132b;" (assignment_expression "unaff_EBX = unaff_EBX + 0x1132b" identifier = (binary_expression "unaff_EBX + 0x1132b" identifier + number_literal)) ;)) (expression_statement "local_a14 = local_a10;" (assignment_expression "local_a14 = local_a10" identifier = identifier) ;) }) (else_clause "else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }" else (compound_statement "{\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }" { (if_statement "if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;" if (parenthesized_expression "(local_9b8 == (ASN1_GENERALIZEDTIME *)0x0)" ( (binary_expression "local_9b8 == (ASN1_GENERALIZEDTIME *)0x0" identifier == (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007950b;" goto statement_identifier ;)) (expression_statement "iVar38 = FUN_000602e0(local_9b8,local_a30);" (assignment_expression "iVar38 = FUN_000602e0(local_9b8,local_a30)" identifier = (call_expression "FUN_000602e0(local_9b8,local_a30)" identifier (argument_list "(local_9b8,local_a30)" ( identifier , identifier )))) ;) (expression_statement "pAVar16 = local_9b8;" (assignment_expression "pAVar16 = local_9b8" identifier = identifier) ;) (if_statement "if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }" if (parenthesized_expression "(iVar38 != 0)" ( (binary_expression "iVar38 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }" { (expression_statement "pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);" (assignment_expression "pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX)" identifier = (cast_expression "(char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX)" ( (binary_expression "(int)&__DT_SYMTAB[0x12].st_value + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[0x12].st_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_SYMTAB[0x12].st_value" & (field_expression "__DT_SYMTAB[0x12].st_value" (subscript_expression "__DT_SYMTAB[0x12]" identifier [ number_literal ]) . field_identifier))) + identifier) )))) ;) (expression_statement "FUN_00027140(local_a1c,pcVar30,local_9b8);" (call_expression "FUN_00027140(local_a1c,pcVar30,local_9b8)" identifier (argument_list "(local_a1c,pcVar30,local_9b8)" ( identifier , identifier , identifier ))) ;) (if_statement "if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;" if (parenthesized_expression "(local_9b8 == (ASN1_GENERALIZEDTIME *)0x0)" ( (binary_expression "local_9b8 == (ASN1_GENERALIZEDTIME *)0x0" identifier == (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000783a8;" goto statement_identifier ;)) (expression_statement "pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);" (assignment_expression "pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX)" identifier = (cast_expression "(char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX)" ( (binary_expression "(int)&__DT_SYMTAB[0xf].st_size + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[0xf].st_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_SYMTAB[0xf].st_size" & (field_expression "__DT_SYMTAB[0xf].st_size" (subscript_expression "__DT_SYMTAB[0xf]" identifier [ number_literal ]) . field_identifier))) + identifier) )))) ;) (expression_statement "pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;" (assignment_expression "pAVar16 = (ASN1_GENERALIZEDTIME *)0x693" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)0x693" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a10 = extraout_EDX;" (assignment_expression "local_a10 = extraout_EDX" identifier = identifier) ;) (expression_statement "CRYPTO_free(local_9b8);" (call_expression "CRYPTO_free(local_9b8)" identifier (argument_list "(local_9b8)" ( identifier ))) ;) (expression_statement "local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" identifier = (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_000780f3;" goto statement_identifier ;) })) (expression_statement "unaff_EBX = unaff_EBX + 0x11363;" (assignment_expression "unaff_EBX = unaff_EBX + 0x11363" identifier = (binary_expression "unaff_EBX + 0x11363" identifier + number_literal)) ;) })))) (expression_statement "FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);" (call_expression "FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14)" identifier (argument_list "(local_a1c,unaff_EBX,pAVar16,local_a14)" ( identifier , identifier , identifier , identifier ))) ;) (labeled_statement "LAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }" statement_identifier : (if_statement "if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }" if (parenthesized_expression "(local_9b8 != (ASN1_GENERALIZEDTIME *)0x0)" ( (binary_expression "local_9b8 != (ASN1_GENERALIZEDTIME *)0x0" identifier != (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }" { (expression_statement "CRYPTO_free(local_9b8);" (call_expression "CRYPTO_free(local_9b8)" identifier (argument_list "(local_9b8)" ( identifier ))) ;) (expression_statement "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" identifier = (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_000794d2;" goto statement_identifier ;) }))) }) (else_clause "else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }" else (compound_statement "{\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }" { (do_statement "do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);" do (compound_statement "{\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        }" { (expression_statement "pAVar36 = pAVar32;" (assignment_expression "pAVar36 = pAVar32" identifier = identifier) ;) (expression_statement "pAVar16 = pAVar36;" (assignment_expression "pAVar16 = pAVar36" identifier = identifier) ;) (expression_statement "pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);" (assignment_expression "pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36)" identifier (argument_list "(pXVar31,0xd,(int)pAVar36)" ( identifier , number_literal , (cast_expression "(int)pAVar36" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) }) while (parenthesized_expression "(-1 < (int)pAVar32)" ( (binary_expression "-1 < (int)pAVar32" number_literal < (cast_expression "(int)pAVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (if_statement "if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;" if (parenthesized_expression "(pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff)" ( (binary_expression "pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff" identifier == (cast_expression "(ASN1_GENERALIZEDTIME *)0xffffffff" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007908e;" goto statement_identifier ;)) (expression_statement "ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);" (assignment_expression "ne = X509_NAME_get_entry(pXVar31,(int)pAVar36)" identifier = (call_expression "X509_NAME_get_entry(pXVar31,(int)pAVar36)" identifier (argument_list "(pXVar31,(int)pAVar36)" ( identifier , (cast_expression "(int)pAVar36" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "pAVar34 = X509_NAME_ENTRY_get_data(ne);" (assignment_expression "pAVar34 = X509_NAME_ENTRY_get_data(ne)" identifier = (call_expression "X509_NAME_ENTRY_get_data(ne)" identifier (argument_list "(ne)" ( identifier )))) ;) (if_statement "if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;" if (parenthesized_expression "(pAVar34 == (ASN1_STRING *)0x0)" ( (binary_expression "pAVar34 == (ASN1_STRING *)0x0" identifier == (cast_expression "(ASN1_STRING *)0x0" ( (type_descriptor "ASN1_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007908e;" goto statement_identifier ;)) (expression_statement "iVar38 = ASN1_STRING_type(pAVar34);" (assignment_expression "iVar38 = ASN1_STRING_type(pAVar34)" identifier = (call_expression "ASN1_STRING_type(pAVar34)" identifier (argument_list "(pAVar34)" ( identifier )))) ;) (if_statement "if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }" if (parenthesized_expression "(iVar38 == 0xc)" ( (binary_expression "iVar38 == 0xc" identifier == number_literal) )) (compound_statement "{\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }" { (expression_statement "pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);" (assignment_expression "pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_length(pAVar34)" identifier (argument_list "(pAVar34)" ( identifier ))))) ;) (if_statement "if ((int)pAVar32 < 0) goto LAB_0007969a;" if (parenthesized_expression "((int)pAVar32 < 0)" ( (binary_expression "(int)pAVar32 < 0" (cast_expression "(int)pAVar32" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0007969a;" goto statement_identifier ;)) (expression_statement "pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;" (assignment_expression "pAVar16 = (ASN1_GENERALIZEDTIME *)0x662" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)0x662" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);" (assignment_expression "local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662)" identifier (argument_list "((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662)" ( (cast_expression "(int)((int)&pAVar32->length + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&pAVar32->length + 1)" ( (binary_expression "(int)&pAVar32->length + 1" (cast_expression "(int)&pAVar32->length" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pAVar32->length" & (field_expression "pAVar32->length" identifier -> field_identifier))) + number_literal) ))) , (cast_expression "(char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX)" ( (binary_expression "(int)&__DT_SYMTAB[0xf].st_size + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[0xf].st_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_SYMTAB[0xf].st_size" & (field_expression "__DT_SYMTAB[0xf].st_size" (subscript_expression "__DT_SYMTAB[0xf]" identifier [ number_literal ]) . field_identifier))) + identifier) ))) , number_literal ))))) ;) (if_statement "if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }" if (parenthesized_expression "(local_9b8 != (ASN1_GENERALIZEDTIME *)0x0)" ( (binary_expression "local_9b8 != (ASN1_GENERALIZEDTIME *)0x0" identifier != (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }" { (expression_statement "pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);" (assignment_expression "pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34)" identifier = (cast_expression "(void *)ASN1_STRING_get0_data(pAVar34)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_get0_data(pAVar34)" identifier (argument_list "(pAVar34)" ( identifier ))))) ;) (expression_statement "pAVar16 = pAVar32;" (assignment_expression "pAVar16 = pAVar32" identifier = identifier) ;) (expression_statement "memcpy(local_9b8,pvVar37,(size_t)pAVar32);" (call_expression "memcpy(local_9b8,pvVar37,(size_t)pAVar32)" identifier (argument_list "(local_9b8,pvVar37,(size_t)pAVar32)" ( identifier , identifier , (cast_expression "(size_t)pAVar32" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (expression_statement "*(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';" (assignment_expression "*(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0'" (pointer_expression "*(char *)((int)&pAVar32->length + (int)&local_9b8->length)" * (cast_expression "(char *)((int)&pAVar32->length + (int)&local_9b8->length)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pAVar32->length + (int)&local_9b8->length)" ( (binary_expression "(int)&pAVar32->length + (int)&local_9b8->length" (cast_expression "(int)&pAVar32->length" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pAVar32->length" & (field_expression "pAVar32->length" identifier -> field_identifier))) + (cast_expression "(int)&local_9b8->length" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_9b8->length" & (field_expression "local_9b8->length" identifier -> field_identifier)))) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_0007969a;" goto statement_identifier ;) })) (goto_statement "goto LAB_0007950b;" goto statement_identifier ;) })) (expression_statement "pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);" (assignment_expression "pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34)" identifier (argument_list "((uchar **)&local_9b8,pAVar34)" ( (cast_expression "(uchar **)&local_9b8" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_9b8" & identifier)) , identifier ))))) ;) (labeled_statement "LAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;" statement_identifier : (if_statement "if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;" if (parenthesized_expression "(local_9b8 == (ASN1_GENERALIZEDTIME *)0x0)" ( (binary_expression "local_9b8 == (ASN1_GENERALIZEDTIME *)0x0" identifier == (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007950b;" goto statement_identifier ;))) (expression_statement "sVar35 = strlen((char *)local_9b8);" (assignment_expression "sVar35 = strlen((char *)local_9b8)" identifier = (call_expression "strlen((char *)local_9b8)" identifier (argument_list "((char *)local_9b8)" ( (cast_expression "(char *)local_9b8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);" (assignment_expression "pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0005a1d0(sVar35)" identifier (argument_list "(sVar35)" ( identifier ))))) ;) (if_statement "if (pAVar36 == pAVar32) goto LAB_0007908e;" if (parenthesized_expression "(pAVar36 == pAVar32)" ( (binary_expression "pAVar36 == pAVar32" identifier == identifier) )) (goto_statement "goto LAB_0007908e;" goto statement_identifier ;)) (expression_statement "FUN_00027240(local_a1c,unaff_EBX + 0x10527);" (call_expression "FUN_00027240(local_a1c,unaff_EBX + 0x10527)" identifier (argument_list "(local_a1c,unaff_EBX + 0x10527)" ( identifier , (binary_expression "unaff_EBX + 0x10527" identifier + number_literal) ))) ;) (if_statement "if (local_9b8 != pAVar18) goto LAB_000790e4;" if (parenthesized_expression "(local_9b8 != pAVar18)" ( (binary_expression "local_9b8 != pAVar18" identifier != identifier) )) (goto_statement "goto LAB_000790e4;" goto statement_identifier ;)) }))) (expression_statement "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" identifier = (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }" else (compound_statement "{\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }" { (expression_statement "pcVar20 = (char *)OPENSSL_sk_num(a);" (assignment_expression "pcVar20 = (char *)OPENSSL_sk_num(a)" identifier = (cast_expression "(char *)OPENSSL_sk_num(a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_num(a)" identifier (argument_list "(a)" ( identifier ))))) ;) (if_statement "if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }" if (parenthesized_expression "((int)pcVar20 < 1)" ( (binary_expression "(int)pcVar20 < 1" (cast_expression "(int)pcVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }" { (expression_statement "GENERAL_NAMES_free(a);" (call_expression "GENERAL_NAMES_free(a)" identifier (argument_list "(a)" ( identifier ))) ;) (expression_statement "local_a10 = pAVar18;" (assignment_expression "local_a10 = pAVar18" identifier = identifier) ;) (goto_statement "goto LAB_00079040;" goto statement_identifier ;) })) (expression_statement "pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);" (assignment_expression "pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3)" identifier = (cast_expression "(char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3)" ( (binary_expression "(int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3" (binary_expression "(int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[0xe6].st_name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_SYMTAB[0xe6].st_name" & (field_expression "__DT_SYMTAB[0xe6].st_name" (subscript_expression "__DT_SYMTAB[0xe6]" identifier [ number_literal ]) . field_identifier))) + identifier) + number_literal) )))) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "pcVar41 = (char *)0x0;" (assignment_expression "pcVar41 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (do_statement "do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);" do (compound_statement "{\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      }" { (while_statement "while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }" { (expression_statement "pcVar30 = pcVar41;" (assignment_expression "pcVar30 = pcVar41" identifier = identifier) ;) (expression_statement "piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);" (assignment_expression "piVar21 = (int *)OPENSSL_sk_value(a,pcVar41)" identifier = (cast_expression "(int *)OPENSSL_sk_value(a,pcVar41)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_value(a,pcVar41)" identifier (argument_list "(a,pcVar41)" ( identifier , identifier ))))) ;) (expression_statement "iVar19 = *piVar21;" (assignment_expression "iVar19 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (if_statement "if (iVar19 == 2) break;" if (parenthesized_expression "(iVar19 == 2)" ( (binary_expression "iVar19 == 2" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }" if (parenthesized_expression "(iVar19 == 7)" ( (binary_expression "iVar19 == 7" identifier == number_literal) )) (compound_statement "{\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }" { (if_statement "if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }" if (parenthesized_expression "(iVar38 == 7)" ( (binary_expression "iVar38 == 7" identifier == number_literal) )) (compound_statement "{\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }" { (expression_statement "pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);" (assignment_expression "pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1])" identifier = (cast_expression "(void *)ASN1_STRING_get0_data(piVar21[1])" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_get0_data(piVar21[1])" identifier (argument_list "(piVar21[1])" ( (subscript_expression "piVar21[1]" identifier [ number_literal ]) ))))) ;) (expression_statement "pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);" (assignment_expression "pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1])" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1])" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_length((ASN1_STRING *)piVar21[1])" identifier (argument_list "((ASN1_STRING *)piVar21[1])" ( (cast_expression "(ASN1_STRING *)piVar21[1]" ( (type_descriptor "ASN1_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[1]" identifier [ number_literal ])) ))))) ;) (if_statement "if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }" if (parenthesized_expression "(local_a20 == pAVar32)" ( (binary_expression "local_a20 == pAVar32" identifier == identifier) )) (compound_statement "{\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }" { (expression_statement "pcVar30 = local_a28;" (assignment_expression "pcVar30 = local_a28" identifier = identifier) ;) (expression_statement "pAVar16 = local_a20;" (assignment_expression "pAVar16 = local_a20" identifier = identifier) ;) (expression_statement "iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);" (assignment_expression "iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20)" identifier = (call_expression "memcmp(pvVar37,local_a28,(size_t)local_a20)" identifier (argument_list "(pvVar37,local_a28,(size_t)local_a20)" ( identifier , identifier , (cast_expression "(size_t)local_a20" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" identifier = true) ;) (if_statement "if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }" { (expression_statement "pcVar30 = pcVar1;" (assignment_expression "pcVar30 = pcVar1" identifier = identifier) ;) (expression_statement "pAVar16 = local_a14;" (assignment_expression "pAVar16 = local_a14" identifier = identifier) ;) (expression_statement "FUN_00027140(local_a1c,pcVar1,local_a14);" (call_expression "FUN_00027140(local_a1c,pcVar1,local_a14)" identifier (argument_list "(local_a1c,pcVar1,local_a14)" ( identifier , identifier , identifier ))) ;) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) })) (goto_statement "goto LAB_00078351;" goto statement_identifier ;) })) })) (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" identifier = true) ;) }) (else_clause "else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }" else (if_statement "if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }" if (parenthesized_expression "(iVar19 == iVar38)" ( (binary_expression "iVar19 == iVar38" identifier == identifier) )) (compound_statement "{\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }" { (expression_statement "local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);" (assignment_expression "local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1])" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1])" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_get0_data(piVar21[1])" identifier (argument_list "(piVar21[1])" ( (subscript_expression "piVar21[1]" identifier [ number_literal ]) ))))) ;) (expression_statement "sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);" (assignment_expression "sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1])" identifier = (call_expression "ASN1_STRING_length((ASN1_STRING *)piVar21[1])" identifier (argument_list "((ASN1_STRING *)piVar21[1])" ( (cast_expression "(ASN1_STRING *)piVar21[1]" ( (type_descriptor "ASN1_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[1]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar38 == 2) goto LAB_00079422;" if (parenthesized_expression "(iVar38 == 2)" ( (binary_expression "iVar38 == 2" identifier == number_literal) )) (goto_statement "goto LAB_00079422;" goto statement_identifier ;)) })))) (labeled_statement "LAB_00078351:\n          pcVar41 = pcVar41 + 1;" statement_identifier : (expression_statement "pcVar41 = pcVar41 + 1;" (assignment_expression "pcVar41 = pcVar41 + 1" identifier = (binary_expression "pcVar41 + 1" identifier + number_literal)) ;)) (expression_statement "local_a10 = pAVar18;" (assignment_expression "local_a10 = pAVar18" identifier = identifier) ;) (if_statement "if (pcVar20 == pcVar41) goto LAB_0007838a;" if (parenthesized_expression "(pcVar20 == pcVar41)" ( (binary_expression "pcVar20 == pcVar41" identifier == identifier) )) (goto_statement "goto LAB_0007838a;" goto statement_identifier ;)) })) (if_statement "if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }" if (parenthesized_expression "(iVar38 == 2)" ( (binary_expression "iVar38 == 2" identifier == number_literal) )) (compound_statement "{\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }" { (expression_statement "local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);" (assignment_expression "local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1])" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1])" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_get0_data(piVar21[1])" identifier (argument_list "(piVar21[1])" ( (subscript_expression "piVar21[1]" identifier [ number_literal ]) ))))) ;) (expression_statement "sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);" (assignment_expression "sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1])" identifier = (call_expression "ASN1_STRING_length((ASN1_STRING *)piVar21[1])" identifier (argument_list "((ASN1_STRING *)piVar21[1])" ( (cast_expression "(ASN1_STRING *)piVar21[1]" ( (type_descriptor "ASN1_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[1]" identifier [ number_literal ])) )))) ;) (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) (labeled_statement "LAB_00079422:\n          sVar33 = strlen((char *)local_a10);" statement_identifier : (expression_statement "sVar33 = strlen((char *)local_a10);" (assignment_expression "sVar33 = strlen((char *)local_a10)" identifier = (call_expression "strlen((char *)local_a10)" identifier (argument_list "((char *)local_a10)" ( (cast_expression "(char *)local_a10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (if_statement "if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;" if (parenthesized_expression "((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))" ( (binary_expression "(sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0)" (parenthesized_expression "(sVar33 != sVar35)" ( (binary_expression "sVar33 != sVar35" identifier != identifier) )) || (parenthesized_expression "(pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0)" ( (comma_expression "pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0" (assignment_expression "pcVar30 = local_a30" identifier = identifier) , (comma_expression "iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0" (assignment_expression "iVar19 = FUN_000602e0(local_a10,local_a30)" identifier = (call_expression "FUN_000602e0(local_a10,local_a30)" identifier (argument_list "(local_a10,local_a30)" ( identifier , identifier )))) , (binary_expression "iVar19 == 0" identifier == number_literal))) ))) )) (goto_statement "goto LAB_00078351;" goto statement_identifier ;)) (expression_statement "pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);" (assignment_expression "pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3)" identifier = (cast_expression "(char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3)" ( (binary_expression "(int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3" (binary_expression "(int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[0xe3].st_name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_SYMTAB[0xe3].st_name" & (field_expression "__DT_SYMTAB[0xe3].st_name" (subscript_expression "__DT_SYMTAB[0xe3]" identifier [ number_literal ]) . field_identifier))) + identifier) + number_literal) )))) ;) (expression_statement "FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);" (call_expression "FUN_00027140(local_a1c,pcVar30,local_a14,local_a10)" identifier (argument_list "(local_a1c,pcVar30,local_a14,local_a10)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "GENERAL_NAMES_free(a);" (call_expression "GENERAL_NAMES_free(a)" identifier (argument_list "(a)" ( identifier ))) ;) (expression_statement "pAVar16 = local_a14;" (assignment_expression "pAVar16 = local_a14" identifier = identifier) ;) (goto_statement "goto LAB_000783a8;" goto statement_identifier ;) })) (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) (expression_statement "pcVar41 = pcVar41 + 1;" (assignment_expression "pcVar41 = pcVar41 + 1" identifier = (binary_expression "pcVar41 + 1" identifier + number_literal)) ;) (expression_statement "local_a10 = pAVar18;" (assignment_expression "local_a10 = pAVar18" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar20 != pcVar41)" ( (binary_expression "pcVar20 != pcVar41" identifier != identifier) )) ;) (labeled_statement "LAB_0007838a:\n      GENERAL_NAMES_free(a);" statement_identifier : (expression_statement "GENERAL_NAMES_free(a);" (call_expression "GENERAL_NAMES_free(a)" identifier (argument_list "(a)" ( identifier ))) ;)) (if_statement "if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }" { (labeled_statement "LAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" statement_identifier : (expression_statement "local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" identifier = (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;)) (goto_statement "goto LAB_000780f3;" goto statement_identifier ;) })) (if_statement "if ((!bVar6) && (!bVar7)) goto LAB_00079040;" if (parenthesized_expression "((!bVar6) && (!bVar7))" ( (binary_expression "(!bVar6) && (!bVar7)" (parenthesized_expression "(!bVar6)" ( (unary_expression "!bVar6" ! identifier) )) && (parenthesized_expression "(!bVar7)" ( (unary_expression "!bVar7" ! identifier) ))) )) (goto_statement "goto LAB_00079040;" goto statement_identifier ;)) (expression_statement "FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);" (call_expression "FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14)" identifier (argument_list "(local_a1c,unaff_EBX + 0x112bb,local_a14)" ( identifier , (binary_expression "unaff_EBX + 0x112bb" identifier + number_literal) , identifier ))) ;) (expression_statement "FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);" (call_expression "FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14)" identifier (argument_list "(local_a1c,unaff_EBX + 0x112df,local_a14)" ( identifier , (binary_expression "unaff_EBX + 0x112df" identifier + number_literal) , identifier ))) ;) (expression_statement "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" identifier = (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (labeled_statement "LAB_000794d2:\n    iVar38 = 0x3c;" statement_identifier : (expression_statement "iVar38 = 0x3c;" (assignment_expression "iVar38 = 0x3c" identifier = number_literal) ;)) (expression_statement "X509_free(pXVar12);" (call_expression "X509_free(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00078251;" goto statement_identifier ;) })) (if_statement "if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) {\n    if (*(char *)((int)piVar9 + 0x201) != '\0') {\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }\n  else if (*(char *)((int)piVar9 + 0x229) != '\0') {\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }" if (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) == number_literal) )) (compound_statement "{\n    if (*(char *)((int)piVar9 + 0x201) != '\0') {\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }" { (if_statement "if (*(char *)((int)piVar9 + 0x201) != '\0') {\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }" if (parenthesized_expression "(*(char *)((int)piVar9 + 0x201) != '\0')" ( (binary_expression "*(char *)((int)piVar9 + 0x201) != '\0'" (pointer_expression "*(char *)((int)piVar9 + 0x201)" * (cast_expression "(char *)((int)piVar9 + 0x201)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x201)" ( (binary_expression "(int)piVar9 + 0x201" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }" { (expression_statement "local_a1c = *piVar9;" (assignment_expression "local_a1c = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (if_statement "if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;" if (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) == number_literal) )) (goto_statement "goto LAB_00078282;" goto statement_identifier ;)) (goto_statement "goto LAB_00078a68;" goto statement_identifier ;) })) }) (else_clause "else if (*(char *)((int)piVar9 + 0x229) != '\0') {\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }" else (if_statement "if (*(char *)((int)piVar9 + 0x229) != '\0') {\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }" if (parenthesized_expression "(*(char *)((int)piVar9 + 0x229) != '\0')" ( (binary_expression "*(char *)((int)piVar9 + 0x229) != '\0'" (pointer_expression "*(char *)((int)piVar9 + 0x229)" * (cast_expression "(char *)((int)piVar9 + 0x229)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x229)" ( (binary_expression "(int)piVar9 + 0x229" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }" { (expression_statement "local_a1c = *piVar9;" (assignment_expression "local_a1c = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (labeled_statement "LAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];" statement_identifier : (expression_statement "local_a30 = (char *)piVar9[0x37];" (assignment_expression "local_a30 = (char *)piVar9[0x37]" identifier = (cast_expression "(char *)piVar9[0x37]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[0x37]" identifier [ number_literal ]))) ;)) (expression_statement "local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];" (assignment_expression "local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38]" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)piVar9[0x38]" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[0x38]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0007829a;" goto statement_identifier ;) })))) (labeled_statement "LAB_000780f3:\n  X509_get_issuer_name(local_a48);" statement_identifier : (expression_statement "X509_get_issuer_name(local_a48);" (call_expression "X509_get_issuer_name(local_a48)" identifier (argument_list "(local_a48)" ( identifier ))) ;)) (expression_statement "iVar38 = FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10);" (assignment_expression "iVar38 = FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10)" identifier = (call_expression "FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10)" identifier (argument_list "(local_a48,pcVar30,pAVar16,local_a10)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar38 == 0) {\n    FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);\n    if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }\n    else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }\n    if (iVar38 != 0) {\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    *local_9f8 = lVar15;\n    if (lVar15 == 0) {\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }\n    else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }\n  }\n  else if (param_3 == '\0') {\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }\n  else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }" if (parenthesized_expression "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);\n    if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }\n    else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }\n    if (iVar38 != 0) {\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    *local_9f8 = lVar15;\n    if (lVar15 == 0) {\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }\n    else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }\n  }" { (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22)" identifier (argument_list "(iVar4,unaff_EBX + 0x10560,puVar22)" ( identifier , (binary_expression "unaff_EBX + 0x10560" identifier + number_literal) , identifier ))) ;) (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }\n    else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }" if (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" ( (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }" { (expression_statement "iVar38 = *(int *)(iVar4 + 0x8bc);" (assignment_expression "iVar38 = *(int *)(iVar4 + 0x8bc)" identifier = (pointer_expression "*(int *)(iVar4 + 0x8bc)" * (cast_expression "(int *)(iVar4 + 0x8bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x8bc)" ( (binary_expression "iVar4 + 0x8bc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }" else (compound_statement "{\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }" { (expression_statement "iVar38 = *(int *)(iVar4 + 0x858);" (assignment_expression "iVar38 = *(int *)(iVar4 + 0x858)" identifier = (pointer_expression "*(int *)(iVar4 + 0x858)" * (cast_expression "(int *)(iVar4 + 0x858)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x858)" ( (binary_expression "iVar4 + 0x858" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar38 != 0) {\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }" if (parenthesized_expression "(iVar38 != 0)" ( (binary_expression "iVar38 != 0" identifier != number_literal) )) (compound_statement "{\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }" { (expression_statement "pBVar10 = BIO_s_file();" (assignment_expression "pBVar10 = BIO_s_file()" identifier = (call_expression "BIO_s_file()" identifier (argument_list "()" ( )))) ;) (expression_statement "pBVar11 = BIO_new(pBVar10);" (assignment_expression "pBVar11 = BIO_new(pBVar10)" identifier = (call_expression "BIO_new(pBVar10)" identifier (argument_list "(pBVar10)" ( identifier )))) ;) (if_statement "if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }" if (parenthesized_expression "(pBVar11 == (BIO *)0x0)" ( (binary_expression "pBVar11 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }" { (expression_statement "e = ERR_get_error();" (assignment_expression "e = ERR_get_error()" identifier = (call_expression "ERR_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "ERR_error_string_n(e,local_924,0x100);" (call_expression "ERR_error_string_n(e,local_924,0x100)" identifier (argument_list "(e,local_924,0x100)" ( identifier , identifier , number_literal ))) ;) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924)" identifier (argument_list "(iVar4,unaff_EBX + 0x10c77,local_924)" ( identifier , (binary_expression "unaff_EBX + 0x10c77" identifier + number_literal) , identifier ))) ;) (expression_statement "X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));" (call_expression "X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" identifier (argument_list "(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" ( (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) ))) ;) (expression_statement "iVar38 = 0x1b;" (assignment_expression "iVar38 = 0x1b" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00078251;" goto statement_identifier ;) })) (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }" if (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" ( (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }" { (expression_statement "pvVar37 = *(void **)(iVar4 + 0x8bc);" (assignment_expression "pvVar37 = *(void **)(iVar4 + 0x8bc)" identifier = (pointer_expression "*(void **)(iVar4 + 0x8bc)" * (cast_expression "(void **)(iVar4 + 0x8bc)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x8bc)" ( (binary_expression "iVar4 + 0x8bc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }" else (compound_statement "{\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }" { (expression_statement "pvVar37 = *(void **)(iVar4 + 0x858);" (assignment_expression "pvVar37 = *(void **)(iVar4 + 0x858)" identifier = (pointer_expression "*(void **)(iVar4 + 0x858)" * (cast_expression "(void **)(iVar4 + 0x858)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x858)" ( (binary_expression "iVar4 + 0x858" identifier + number_literal) ))))) ;) }))) (expression_statement "lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);" (assignment_expression "lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37)" identifier = (call_expression "BIO_ctrl(pBVar11,0x6c,3,pvVar37)" identifier (argument_list "(pBVar11,0x6c,3,pvVar37)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }" if (parenthesized_expression "(lVar15 < 1)" ( (binary_expression "lVar15 < 1" identifier < number_literal) )) (compound_statement "{\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }" { (if_statement "if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }" if (parenthesized_expression "(param_3 != '\0')" ( (binary_expression "param_3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }" { (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }" if (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" ( (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }" { (expression_statement "uVar23 = *(undefined4 *)(iVar4 + 0x8bc);" (assignment_expression "uVar23 = *(undefined4 *)(iVar4 + 0x8bc)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x8bc)" * (cast_expression "(undefined4 *)(iVar4 + 0x8bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x8bc)" ( (binary_expression "iVar4 + 0x8bc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }" else (compound_statement "{\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }" { (expression_statement "uVar23 = *(undefined4 *)(iVar4 + 0x858);" (assignment_expression "uVar23 = *(undefined4 *)(iVar4 + 0x858)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x858)" * (cast_expression "(undefined4 *)(iVar4 + 0x858)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x858)" ( (binary_expression "iVar4 + 0x858" identifier + number_literal) ))))) ;) }))) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23)" identifier (argument_list "(iVar4,unaff_EBX + 0x113cf,uVar23)" ( identifier , (binary_expression "unaff_EBX + 0x113cf" identifier + number_literal) , identifier ))) ;) })) (expression_statement "BIO_free(pBVar11);" (call_expression "BIO_free(pBVar11)" identifier (argument_list "(pBVar11)" ( identifier ))) ;) }) (else_clause "else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }" else (compound_statement "{\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }" { (expression_statement "pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);" (assignment_expression "pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0)" identifier = (call_expression "PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0)" identifier (argument_list "(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0)" ( identifier , (cast_expression "(X509 **)0x0" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }" if (parenthesized_expression "(pXVar12 == (X509 *)0x0)" ( (binary_expression "pXVar12 == (X509 *)0x0" identifier == (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }" { (if_statement "if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }" if (parenthesized_expression "(param_3 != '\0')" ( (binary_expression "param_3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }" { (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }" if (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" ( (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }" { (expression_statement "uVar23 = *(undefined4 *)(iVar4 + 0x8bc);" (assignment_expression "uVar23 = *(undefined4 *)(iVar4 + 0x8bc)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x8bc)" * (cast_expression "(undefined4 *)(iVar4 + 0x8bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x8bc)" ( (binary_expression "iVar4 + 0x8bc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }" else (compound_statement "{\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }" { (expression_statement "uVar23 = *(undefined4 *)(iVar4 + 0x858);" (assignment_expression "uVar23 = *(undefined4 *)(iVar4 + 0x858)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x858)" * (cast_expression "(undefined4 *)(iVar4 + 0x858)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x858)" ( (binary_expression "iVar4 + 0x858" identifier + number_literal) ))))) ;) }))) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23)" identifier (argument_list "(iVar4,unaff_EBX + 0x113f7,uVar23)" ( identifier , (binary_expression "unaff_EBX + 0x113f7" identifier + number_literal) , identifier ))) ;) })) (expression_statement "BIO_free(pBVar11);" (call_expression "BIO_free(pBVar11)" identifier (argument_list "(pBVar11)" ( identifier ))) ;) (expression_statement "pXVar12 = (X509 *)0x0;" (assignment_expression "pXVar12 = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }" else (compound_statement "{\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }" { (expression_statement "iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));" (assignment_expression "iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8))" identifier = (call_expression "X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8))" identifier (argument_list "(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8))" ( identifier , (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) )))) ;) (if_statement "if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }" if (parenthesized_expression "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )) (compound_statement "{\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }" { (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }" if (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" ( (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }" { (expression_statement "puVar22 = *(undefined1 **)(iVar4 + 0x8bc);" (assignment_expression "puVar22 = *(undefined1 **)(iVar4 + 0x8bc)" identifier = (pointer_expression "*(undefined1 **)(iVar4 + 0x8bc)" * (cast_expression "(undefined1 **)(iVar4 + 0x8bc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x8bc)" ( (binary_expression "iVar4 + 0x8bc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }" else (compound_statement "{\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }" { (expression_statement "puVar22 = *(undefined1 **)(iVar4 + 0x858);" (assignment_expression "puVar22 = *(undefined1 **)(iVar4 + 0x858)" identifier = (pointer_expression "*(undefined1 **)(iVar4 + 0x858)" * (cast_expression "(undefined1 **)(iVar4 + 0x858)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x858)" ( (binary_expression "iVar4 + 0x858" identifier + number_literal) ))))) ;) }))) (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22)" identifier (argument_list "(iVar4,unaff_EBX + 0x1144b,puVar22)" ( identifier , (binary_expression "unaff_EBX + 0x1144b" identifier + number_literal) , identifier ))) ;) (expression_statement "BIO_free(pBVar11);" (call_expression "BIO_free(pBVar11)" identifier (argument_list "(pBVar11)" ( identifier ))) ;) (expression_statement "X509_free(pXVar12);" (call_expression "X509_free(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier ))) ;) (goto_statement "goto LAB_000784c4;" goto statement_identifier ;) })) (if_statement "if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }" if (parenthesized_expression "(param_3 != '\0')" ( (binary_expression "param_3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }" { (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }" if (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" ( (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }" { (expression_statement "uVar23 = *(undefined4 *)(iVar4 + 0x8bc);" (assignment_expression "uVar23 = *(undefined4 *)(iVar4 + 0x8bc)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x8bc)" * (cast_expression "(undefined4 *)(iVar4 + 0x8bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x8bc)" ( (binary_expression "iVar4 + 0x8bc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }" else (compound_statement "{\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }" { (expression_statement "uVar23 = *(undefined4 *)(iVar4 + 0x858);" (assignment_expression "uVar23 = *(undefined4 *)(iVar4 + 0x858)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x858)" * (cast_expression "(undefined4 *)(iVar4 + 0x858)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x858)" ( (binary_expression "iVar4 + 0x858" identifier + number_literal) ))))) ;) }))) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23)" identifier (argument_list "(iVar4,unaff_EBX + 0x1141f,uVar23)" ( identifier , (binary_expression "unaff_EBX + 0x1141f" identifier + number_literal) , identifier ))) ;) })) (expression_statement "BIO_free(pBVar11);" (call_expression "BIO_free(pBVar11)" identifier (argument_list "(pBVar11)" ( identifier ))) ;) }))) (expression_statement "X509_free(pXVar12);" (call_expression "X509_free(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier ))) ;) }))) (expression_statement "X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));" (call_expression "X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" identifier (argument_list "(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" ( (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) ))) ;) (expression_statement "iVar38 = 0x53;" (assignment_expression "iVar38 = 0x53" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00078251;" goto statement_identifier ;) })) (labeled_statement "LAB_000784c4:\n    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));" statement_identifier : (expression_statement "lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));" (assignment_expression "lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" identifier = (call_expression "SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" identifier (argument_list "(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" ( (pointer_expression "*(SSL **)(*(int *)(param_2 + 0xc) + 4)" * (cast_expression "(SSL **)(*(int *)(param_2 + 0xc) + 4)" ( (type_descriptor "SSL **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 4)" ( (binary_expression "*(int *)(param_2 + 0xc) + 4" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) )))) ;)) (expression_statement "*local_9f8 = lVar15;" (assignment_expression "*local_9f8 = lVar15" (pointer_expression "*local_9f8" * identifier) = identifier) ;) (if_statement "if (lVar15 == 0) {\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }\n    else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }" { (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" identifier = number_literal) ;) (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22)" identifier (argument_list "(iVar4,unaff_EBX + 0x1056d,puVar22)" ( identifier , (binary_expression "unaff_EBX + 0x1056d" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" identifier = (subscript_expression "piVar9[0x3a]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }" else (compound_statement "{\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }" { (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" identifier = (subscript_expression "piVar9[0x3a]" identifier [ number_literal ])) ;) (if_statement "if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }" if (parenthesized_expression "((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(iVar19 == 2)" ( (binary_expression "iVar19 == 2" identifier == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n        cVar3 = (char)piVar9[0x8a];\n      }" { (expression_statement "cVar3 = (char)piVar9[0x8a];" (assignment_expression "cVar3 = (char)piVar9[0x8a]" identifier = (cast_expression "(char)piVar9[0x8a]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar9[0x8a]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n        cVar3 = (char)piVar9[0x80];\n      }" else (compound_statement "{\n        cVar3 = (char)piVar9[0x80];\n      }" { (expression_statement "cVar3 = (char)piVar9[0x80];" (assignment_expression "cVar3 = (char)piVar9[0x80]" identifier = (cast_expression "(char)piVar9[0x80]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar9[0x80]" identifier [ number_literal ]))) ;) }))) (if_statement "if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }" { (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" identifier = number_literal) ;) (expression_statement "pcVar30 = X509_verify_cert_error_string(lVar15);" (assignment_expression "pcVar30 = X509_verify_cert_error_string(lVar15)" identifier = (call_expression "X509_verify_cert_error_string(lVar15)" identifier (argument_list "(lVar15)" ( identifier )))) ;) (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15)" identifier (argument_list "(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15)" ( identifier , (binary_expression "unaff_EBX + 0x1149b" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" identifier = (subscript_expression "piVar9[0x3a]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }" else (compound_statement "{\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }" { (expression_statement "iVar38 = 0x3c;" (assignment_expression "iVar38 = 0x3c" identifier = number_literal) ;) (if_statement "if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }" if (parenthesized_expression "(param_3 != '\0')" ( (binary_expression "param_3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }" { (expression_statement "pcVar30 = X509_verify_cert_error_string(lVar15);" (assignment_expression "pcVar30 = X509_verify_cert_error_string(lVar15)" identifier = (call_expression "X509_verify_cert_error_string(lVar15)" identifier (argument_list "(lVar15)" ( identifier )))) ;) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15)" identifier (argument_list "(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15)" ( identifier , (binary_expression "unaff_EBX + 0x11473" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" identifier = (subscript_expression "piVar9[0x3a]" identifier [ number_literal ])) ;) })) }))) }))) }) (else_clause "else if (param_3 == '\0') {\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }\n  else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }" else (if_statement "if (param_3 == '\0') {\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }\n  else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }" if (parenthesized_expression "(param_3 == '\0')" ( (binary_expression "param_3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }" { (expression_statement "iVar38 = 0x3c;" (assignment_expression "iVar38 = 0x3c" identifier = number_literal) ;) (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" identifier = (subscript_expression "piVar9[0x3a]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }" else (compound_statement "{\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }" { (expression_statement "iVar38 = 0x3c;" (assignment_expression "iVar38 = 0x3c" identifier = number_literal) ;) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x113ab);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x113ab)" identifier (argument_list "(iVar4,unaff_EBX + 0x113ab)" ( identifier , (binary_expression "unaff_EBX + 0x113ab" identifier + number_literal) ))) ;) (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" identifier = (subscript_expression "piVar9[0x3a]" identifier [ number_literal ])) ;) }))))) (if_statement "if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    cVar3 = *(char *)((int)piVar9 + 0x22a);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  else {\n    cVar3 = *(char *)((int)piVar9 + 0x202);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }" if (parenthesized_expression "((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(iVar19 == 2)" ( (binary_expression "iVar19 == 2" identifier == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n    cVar3 = *(char *)((int)piVar9 + 0x22a);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }" { (expression_statement "cVar3 = *(char *)((int)piVar9 + 0x22a);" (assignment_expression "cVar3 = *(char *)((int)piVar9 + 0x22a)" identifier = (pointer_expression "*(char *)((int)piVar9 + 0x22a)" * (cast_expression "(char *)((int)piVar9 + 0x22a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x22a)" ( (binary_expression "(int)piVar9 + 0x22a" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(param_2 + 0xc);" (assignment_expression "iVar28 = *(int *)(param_2 + 0xc)" identifier = (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    cVar3 = *(char *)((int)piVar9 + 0x202);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }" else (compound_statement "{\n    cVar3 = *(char *)((int)piVar9 + 0x202);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }" { (expression_statement "cVar3 = *(char *)((int)piVar9 + 0x202);" (assignment_expression "cVar3 = *(char *)((int)piVar9 + 0x202)" identifier = (pointer_expression "*(char *)((int)piVar9 + 0x202)" * (cast_expression "(char *)((int)piVar9 + 0x202)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x202)" ( (binary_expression "(int)piVar9 + 0x202" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(param_2 + 0xc);" (assignment_expression "iVar28 = *(int *)(param_2 + 0xc)" identifier = (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) }))) (if_statement "if (cVar3 == '\0') {\nLAB_0007814e:\n    if (param_3 == '\0') {\n      iVar38 = 0;\n    }\n    if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }\n    else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }\n    pXVar12 = *(X509 **)(iVar28 + 8);\n    local_9d0 = pAVar16;\n    if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_00078230:\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    *(undefined4 *)(param_2 + 8) = 5;\n    goto LAB_00078251;\n  }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0007814e:\n    if (param_3 == '\0') {\n      iVar38 = 0;\n    }\n    if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }\n    else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }\n    pXVar12 = *(X509 **)(iVar28 + 8);\n    local_9d0 = pAVar16;\n    if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_00078230:\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    *(undefined4 *)(param_2 + 8) = 5;\n    goto LAB_00078251;\n  }" { (labeled_statement "LAB_0007814e:\n    if (param_3 == '\0') {\n      iVar38 = 0;\n    }" statement_identifier : (if_statement "if (param_3 == '\0') {\n      iVar38 = 0;\n    }" if (parenthesized_expression "(param_3 == '\0')" ( (binary_expression "param_3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar38 = 0;\n    }" { (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" identifier = number_literal) ;) }))) (if_statement "if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }\n    else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }" if (parenthesized_expression "((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(iVar19 == 2)" ( (binary_expression "iVar19 == 2" identifier == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }" { (expression_statement "pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);" (assignment_expression "pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8)" identifier = (pointer_expression "*(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8)" * (cast_expression "(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8)" ( (type_descriptor "ASN1_GENERALIZEDTIME **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x9e8)" ( (binary_expression "iVar4 + 0x9e8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }" else (compound_statement "{\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }" { (expression_statement "pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);" (assignment_expression "pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4)" identifier = (pointer_expression "*(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4)" * (cast_expression "(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4)" ( (type_descriptor "ASN1_GENERALIZEDTIME **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x9e4)" ( (binary_expression "iVar4 + 0x9e4" identifier + number_literal) ))))) ;) }))) (expression_statement "pXVar12 = *(X509 **)(iVar28 + 8);" (assignment_expression "pXVar12 = *(X509 **)(iVar28 + 8)" identifier = (pointer_expression "*(X509 **)(iVar28 + 8)" * (cast_expression "(X509 **)(iVar28 + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + 8)" ( (binary_expression "iVar28 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_9d0 = pAVar16;" (assignment_expression "local_9d0 = pAVar16" identifier = identifier) ;) (if_statement "if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }" if (parenthesized_expression "((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0))" ( (binary_expression "(iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)" (parenthesized_expression "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )) && (parenthesized_expression "(pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)" ( (binary_expression "pAVar16 != (ASN1_GENERALIZEDTIME *)0x0" identifier != (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }" { (expression_statement "local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;" (assignment_expression "local_9b8 = (ASN1_GENERALIZEDTIME *)0x0" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }" if (parenthesized_expression "(pXVar12 == (X509 *)0x0)" ( (binary_expression "pXVar12 == (X509 *)0x0" identifier == (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00078208:\n        iVar38 = 0x5a;\n      }" { (labeled_statement "LAB_00078208:\n        iVar38 = 0x5a;" statement_identifier : (expression_statement "iVar38 = 0x5a;" (assignment_expression "iVar38 = 0x5a" identifier = number_literal) ;)) }) (else_clause "else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }" else (compound_statement "{\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }" { (expression_statement "pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);" (assignment_expression "pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12)" identifier = (cast_expression "(X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12)" ( (type_descriptor "X509_PUBKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get_X509_PUBKEY(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier ))))) ;) (expression_statement "iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);" (assignment_expression "iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0)" identifier = (call_expression "i2d_X509_PUBKEY(pXVar17,(uchar **)0x0)" identifier (argument_list "(pXVar17,(uchar **)0x0)" ( identifier , (cast_expression "(uchar **)0x0" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) (if_statement "if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;" if (parenthesized_expression "((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0))" ( (binary_expression "(iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)" (parenthesized_expression "(iVar38 < 1)" ( (binary_expression "iVar38 < 1" identifier < number_literal) )) || (parenthesized_expression "(pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)" ( (comma_expression "pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0" (assignment_expression "pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(unaff_EBX + 0x39177))(iVar38)" (parenthesized_expression "(**(code **)(unaff_EBX + 0x39177))" ( (pointer_expression "**(code **)(unaff_EBX + 0x39177)" * (pointer_expression "*(code **)(unaff_EBX + 0x39177)" * (cast_expression "(code **)(unaff_EBX + 0x39177)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBX + 0x39177)" ( (binary_expression "unaff_EBX + 0x39177" identifier + number_literal) ))))) )) (argument_list "(iVar38)" ( identifier ))))) , (comma_expression "local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0" (assignment_expression "local_9b8 = pAVar18" identifier = identifier) , (binary_expression "pAVar18 == (ASN1_GENERALIZEDTIME *)0x0" identifier == (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (goto_statement "goto LAB_00078208;" goto statement_identifier ;)) (expression_statement "pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);" (assignment_expression "pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12)" identifier = (cast_expression "(X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12)" ( (type_descriptor "X509_PUBKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get_X509_PUBKEY(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier ))))) ;) (expression_statement "iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);" (assignment_expression "iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8)" identifier = (call_expression "i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8)" identifier (argument_list "(pXVar17,(uchar **)&local_9b8)" ( identifier , (cast_expression "(uchar **)&local_9b8" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_9b8" & identifier)) )))) ;) (if_statement "if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }" if (parenthesized_expression "((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           )" ( (binary_expression "(iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))" (parenthesized_expression "(iVar38 != iVar19)" ( (binary_expression "iVar38 != iVar19" identifier != identifier) )) || (parenthesized_expression "((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))" ( (parenthesized_expression "(local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18))" ( (binary_expression "local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)" (binary_expression "local_9b8 == (ASN1_GENERALIZEDTIME *)0x0" identifier == (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(iVar38 != (int)local_9b8 - (int)pAVar18)" ( (binary_expression "iVar38 != (int)local_9b8 - (int)pAVar18" identifier != (binary_expression "(int)local_9b8 - (int)pAVar18" (cast_expression "(int)local_9b8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pAVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) ))) )) (compound_statement "{\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }" { (expression_statement "(**(code **)(unaff_EBX + 0x39173))(pAVar18);" (call_expression "(**(code **)(unaff_EBX + 0x39173))(pAVar18)" (parenthesized_expression "(**(code **)(unaff_EBX + 0x39173))" ( (pointer_expression "**(code **)(unaff_EBX + 0x39173)" * (pointer_expression "*(code **)(unaff_EBX + 0x39173)" * (cast_expression "(code **)(unaff_EBX + 0x39173)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBX + 0x39173)" ( (binary_expression "unaff_EBX + 0x39173" identifier + number_literal) ))))) )) (argument_list "(pAVar18)" ( identifier ))) ;) (goto_statement "goto LAB_00078208;" goto statement_identifier ;) })) (expression_statement "iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);" (assignment_expression "iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38)" identifier = (call_expression "FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38)" identifier (argument_list "(iVar4,pAVar16,pAVar18,iVar38)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "(**(code **)(unaff_EBX + 0x39173))(pAVar18);" (call_expression "(**(code **)(unaff_EBX + 0x39173))(pAVar18)" (parenthesized_expression "(**(code **)(unaff_EBX + 0x39173))" ( (pointer_expression "**(code **)(unaff_EBX + 0x39173)" * (pointer_expression "*(code **)(unaff_EBX + 0x39173)" * (cast_expression "(code **)(unaff_EBX + 0x39173)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBX + 0x39173)" ( (binary_expression "unaff_EBX + 0x39173" identifier + number_literal) ))))) )) (argument_list "(pAVar18)" ( identifier ))) ;) (if_statement "if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }" if (parenthesized_expression "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )) (compound_statement "{\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }" { (expression_statement "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" identifier = (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_00078230;" goto statement_identifier ;) })) }))) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x11577);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x11577)" identifier (argument_list "(iVar4,unaff_EBX + 0x11577)" ( identifier , (binary_expression "unaff_EBX + 0x11577" identifier + number_literal) ))) ;) (expression_statement "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" identifier = (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) })) (labeled_statement "LAB_00078230:\n    X509_free(pXVar12);" statement_identifier : (expression_statement "X509_free(pXVar12);" (call_expression "X509_free(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier ))) ;)) (expression_statement "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_2 + 8) = 5;" (assignment_expression "*(undefined4 *)(param_2 + 8) = 5" (pointer_expression "*(undefined4 *)(param_2 + 8)" * (cast_expression "(undefined4 *)(param_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00078251;" goto statement_identifier ;) })) (expression_statement "iVar38 = *piVar9;" (assignment_expression "iVar38 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "lVar15 = SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc);" (assignment_expression "lVar15 = SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc)" identifier = (call_expression "SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc)" identifier (argument_list "(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc)" ( (pointer_expression "*(SSL **)(iVar28 + 4)" * (cast_expression "(SSL **)(iVar28 + 4)" ( (type_descriptor "SSL **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + 4)" ( (binary_expression "iVar28 + 4" identifier + number_literal) )))) , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (if_statement "if (local_9cc == (int *)0x0) {\n    FUN_00027240(iVar38,unaff_EBX + 0x1058a);\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }\n  else {\n    local_9c8 = local_9cc;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }\n    iVar19 = OCSP_response_status(resp);\n    if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));\n    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  iVar38 = 0x5b;\n  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\nLAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0007c1a0();\n}" if (parenthesized_expression "(local_9cc == (int *)0x0)" ( (binary_expression "local_9cc == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00027240(iVar38,unaff_EBX + 0x1058a);\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }" { (expression_statement "FUN_00027240(iVar38,unaff_EBX + 0x1058a);" (call_expression "FUN_00027240(iVar38,unaff_EBX + 0x1058a)" identifier (argument_list "(iVar38,unaff_EBX + 0x1058a)" ( identifier , (binary_expression "unaff_EBX + 0x1058a" identifier + number_literal) ))) ;) (expression_statement "resp = (OCSP_RESPONSE *)0x0;" (assignment_expression "resp = (OCSP_RESPONSE *)0x0" identifier = (cast_expression "(OCSP_RESPONSE *)0x0" ( (type_descriptor "OCSP_RESPONSE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000795a6:\n    OCSP_RESPONSE_free(resp);" statement_identifier : (expression_statement "OCSP_RESPONSE_free(resp);" (call_expression "OCSP_RESPONSE_free(resp)" identifier (argument_list "(resp)" ( identifier ))) ;)) }) (else_clause "else {\n    local_9c8 = local_9cc;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }\n    iVar19 = OCSP_response_status(resp);\n    if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));\n    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  iVar38 = 0x5b;\n  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\nLAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0007c1a0();\n}" else (compound_statement "{\n    local_9c8 = local_9cc;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }\n    iVar19 = OCSP_response_status(resp);\n    if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));\n    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  iVar38 = 0x5b;\n  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\nLAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0007c1a0();\n}" { (expression_statement "local_9c8 = local_9cc;" (assignment_expression "local_9c8 = local_9cc" identifier = identifier) ;) (expression_statement "resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);" (assignment_expression "resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15)" identifier = (call_expression "d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15)" identifier (argument_list "((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15)" ( (cast_expression "(OCSP_RESPONSE **)0x0" ( (type_descriptor "OCSP_RESPONSE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(uchar **)&local_9c8" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_9c8" & identifier)) , identifier )))) ;) (if_statement "if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }" if (parenthesized_expression "(resp == (OCSP_RESPONSE *)0x0)" ( (binary_expression "resp == (OCSP_RESPONSE *)0x0" identifier == (cast_expression "(OCSP_RESPONSE *)0x0" ( (type_descriptor "OCSP_RESPONSE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }" { (labeled_statement "LAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);" statement_identifier : (expression_statement "FUN_00027240(iVar38,unaff_EBX + 0x105a4);" (call_expression "FUN_00027240(iVar38,unaff_EBX + 0x105a4)" identifier (argument_list "(iVar38,unaff_EBX + 0x105a4)" ( identifier , (binary_expression "unaff_EBX + 0x105a4" identifier + number_literal) ))) ;)) (goto_statement "goto LAB_000795a6;" goto statement_identifier ;) })) (expression_statement "iVar19 = OCSP_response_status(resp);" (assignment_expression "iVar19 = OCSP_response_status(resp)" identifier = (call_expression "OCSP_response_status(resp)" identifier (argument_list "(resp)" ( identifier )))) ;) (if_statement "if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }" { (expression_statement "pcVar30 = OCSP_response_status_str(iVar19);" (assignment_expression "pcVar30 = OCSP_response_status_str(iVar19)" identifier = (call_expression "OCSP_response_status_str(iVar19)" identifier (argument_list "(iVar19)" ( identifier )))) ;) (expression_statement "FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);" (call_expression "FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19)" identifier (argument_list "(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19)" ( identifier , (binary_expression "unaff_EBX + 0x114db" identifier + number_literal) , identifier , identifier ))) ;) (goto_statement "goto LAB_000795a6;" goto statement_identifier ;) })) (expression_statement "bs = OCSP_response_get1_basic(resp);" (assignment_expression "bs = OCSP_response_get1_basic(resp)" identifier = (call_expression "OCSP_response_get1_basic(resp)" identifier (argument_list "(resp)" ( identifier )))) ;) (if_statement "if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;" if (parenthesized_expression "(bs == (OCSP_BASICRESP *)0x0)" ( (binary_expression "bs == (OCSP_BASICRESP *)0x0" identifier == (cast_expression "(OCSP_BASICRESP *)0x0" ( (type_descriptor "OCSP_BASICRESP *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00079758;" goto statement_identifier ;)) (expression_statement "psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));" (assignment_expression "psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" identifier = (call_expression "SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" identifier (argument_list "(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" ( (pointer_expression "*(SSL **)(*(int *)(param_2 + 0xc) + 4)" * (cast_expression "(SSL **)(*(int *)(param_2 + 0xc) + 4)" ( (type_descriptor "SSL **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 4)" ( (binary_expression "*(int *)(param_2 + 0xc) + 4" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) )))) ;) (expression_statement "st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));" (assignment_expression "st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc))" identifier = (call_expression "SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc))" identifier (argument_list "((SSL_CTX *)**(undefined4 **)(param_2 + 0xc))" ( (cast_expression "(SSL_CTX *)**(undefined4 **)(param_2 + 0xc)" ( (type_descriptor "SSL_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(param_2 + 0xc)" * (pointer_expression "*(undefined4 **)(param_2 + 0xc)" * (cast_expression "(undefined4 **)(param_2 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))))) )))) ;) (expression_statement "iVar19 = OCSP_basic_verify(bs,psVar27,st,0);" (assignment_expression "iVar19 = OCSP_basic_verify(bs,psVar27,st,0)" identifier = (call_expression "OCSP_basic_verify(bs,psVar27,st,0)" identifier (argument_list "(bs,psVar27,st,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }" if (parenthesized_expression "(0 < iVar19)" ( (binary_expression "0 < iVar19" number_literal < identifier) )) (compound_statement "{\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }" { (for_statement "for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }" for ( (assignment_expression "iVar19 = 0" identifier = number_literal) ; (comma_expression "iVar28 = OCSP_resp_count(bs), iVar19 < iVar28" (assignment_expression "iVar28 = OCSP_resp_count(bs)" identifier = (call_expression "OCSP_resp_count(bs)" identifier (argument_list "(bs)" ( identifier )))) , (binary_expression "iVar19 < iVar28" identifier < identifier)) ; (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ) (compound_statement "{\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }" { (expression_statement "single = OCSP_resp_get0(bs,iVar19);" (assignment_expression "single = OCSP_resp_get0(bs,iVar19)" identifier = (call_expression "OCSP_resp_get0(bs,iVar19)" identifier (argument_list "(bs,iVar19)" ( identifier , identifier )))) ;) (if_statement "if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }" if (parenthesized_expression "(single != (OCSP_SINGLERESP *)0x0)" ( (binary_expression "single != (OCSP_SINGLERESP *)0x0" identifier != (cast_expression "(OCSP_SINGLERESP *)0x0" ( (type_descriptor "OCSP_SINGLERESP *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }" { (expression_statement "iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);" (assignment_expression "iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8)" identifier = (call_expression "OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8)" identifier (argument_list "(single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8)" ( identifier , (pointer_expression "&local_9c4" & identifier) , (pointer_expression "&local_9c0" & identifier) , (cast_expression "(ASN1_GENERALIZEDTIME **)&local_9bc" ( (type_descriptor "ASN1_GENERALIZEDTIME **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_9bc" & identifier)) , (pointer_expression "&local_9b8" & identifier) )))) ;) (expression_statement "iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);" (assignment_expression "iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1)" identifier = (call_expression "OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1)" identifier (argument_list "((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1)" ( (cast_expression "(ASN1_GENERALIZEDTIME *)local_9bc" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }" { (expression_statement "FUN_00027240(iVar38,unaff_EBX + 0x105ba);" (call_expression "FUN_00027240(iVar38,unaff_EBX + 0x105ba)" identifier (argument_list "(iVar38,unaff_EBX + 0x105ba)" ( identifier , (binary_expression "unaff_EBX + 0x105ba" identifier + number_literal) ))) ;) }) (else_clause "else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }" else (compound_statement "{\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }" { (expression_statement "pcVar30 = OCSP_cert_status_str(iVar28);" (assignment_expression "pcVar30 = OCSP_cert_status_str(iVar28)" identifier = (call_expression "OCSP_cert_status_str(iVar28)" identifier (argument_list "(iVar28)" ( identifier )))) ;) (expression_statement "FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);" (call_expression "FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28)" identifier (argument_list "(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28)" ( identifier , (binary_expression "unaff_EBX + 0x11527" identifier + number_literal) , identifier , identifier ))) ;) (if_statement "if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;" if (parenthesized_expression "(iVar28 == 1)" ( (binary_expression "iVar28 == 1" identifier == number_literal) )) (compound_statement "{\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }" { (expression_statement "pcVar30 = OCSP_crl_reason_str(local_9c4);" (assignment_expression "pcVar30 = OCSP_crl_reason_str(local_9c4)" identifier = (call_expression "OCSP_crl_reason_str(local_9c4)" identifier (argument_list "(local_9c4)" ( identifier )))) ;) (expression_statement "FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);" (call_expression "FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4)" identifier (argument_list "(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4)" ( identifier , (binary_expression "unaff_EBX + 0x1154b" identifier + number_literal) , identifier , identifier ))) ;) }) (else_clause "else if (iVar28 != 2) goto LAB_00079488;" else (if_statement "if (iVar28 != 2) goto LAB_00079488;" if (parenthesized_expression "(iVar28 != 2)" ( (binary_expression "iVar28 != 2" identifier != number_literal) )) (goto_statement "goto LAB_00079488;" goto statement_identifier ;)))) }))) (expression_statement "OCSP_BASICRESP_free(bs);" (call_expression "OCSP_BASICRESP_free(bs)" identifier (argument_list "(bs)" ( identifier ))) ;) (expression_statement "OCSP_RESPONSE_free(resp);" (call_expression "OCSP_RESPONSE_free(resp)" identifier (argument_list "(resp)" ( identifier ))) ;) (goto_statement "goto LAB_00078c7e;" goto statement_identifier ;) })) (labeled_statement "LAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);" statement_identifier : (ERROR "}" }) (expression_statement "OCSP_BASICRESP_free(bs);" (call_expression "OCSP_BASICRESP_free(bs)" identifier (argument_list "(bs)" ( identifier ))) ;)) (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" identifier = number_literal) ;) (expression_statement "OCSP_RESPONSE_free(resp);" (call_expression "OCSP_RESPONSE_free(resp)" identifier (argument_list "(resp)" ( identifier ))) ;) (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" identifier = (subscript_expression "piVar9[0x3a]" identifier [ number_literal ])) ;) (expression_statement "iVar28 = *(int *)(param_2 + 0xc);" (assignment_expression "iVar28 = *(int *)(param_2 + 0xc)" identifier = (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0007814e;" goto statement_identifier ;) })) (expression_statement "FUN_00027240(iVar38,unaff_EBX + 0x11503);" (call_expression "FUN_00027240(iVar38,unaff_EBX + 0x11503)" identifier (argument_list "(iVar38,unaff_EBX + 0x11503)" ( identifier , (binary_expression "unaff_EBX + 0x11503" identifier + number_literal) ))) ;) (expression_statement "OCSP_BASICRESP_free(bs);" (call_expression "OCSP_BASICRESP_free(bs)" identifier (argument_list "(bs)" ( identifier ))) ;) (expression_statement "OCSP_RESPONSE_free(resp);" (call_expression "OCSP_RESPONSE_free(resp)" identifier (argument_list "(resp)" ( identifier ))) ;) })) (labeled_statement "LAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));" statement_identifier : (expression_statement "X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));" (call_expression "X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" identifier (argument_list "(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" ( (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) ))) ;)) (expression_statement "iVar38 = 0x5b;" (assignment_expression "iVar38 = 0x5b" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }" statement_identifier : (if_statement "if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }" if (parenthesized_expression "(local_24 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_24 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar38;\n  }" { (return_statement "return iVar38;" return identifier ;) }))) comment (expression_statement "FUN_0007c1a0();" (call_expression "FUN_0007c1a0()" identifier (argument_list "()" ( ))) ;) }))) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nCURLcode __regparm3 servercert(connectdata *conn,ssl_connect_data *connssl,_Bool strict)\n\n{\n  byte *pbVar1;\n  char cVar2;\n  Curl_easy *data;\n  int iVar3;\n  uint uVar4;\n  Curl_easy *pCVar5;\n  bool bVar6;\n  bool bVar7;\n  bool bVar8;\n  ssl_config_data *psVar9;\n  uint uVar10;\n  BIO_METHOD *pBVar11;\n  BIO *pBVar12;\n  X509 *pXVar13;\n  X509_NAME *pXVar14;\n  ASN1_TIME *pAVar15;\n  long lVar16;\n  uchar *puVar17;\n  ssl_backend_data *psVar18;\n  X509_PUBKEY *pXVar19;\n  size_t sVar20;\n  size_t sVar21;\n  GENERAL_NAMES *a;\n  int *piVar22;\n  BIO *out;\n  undefined4 uVar23;\n  ASN1_INTEGER *pAVar24;\n  X509_EXTENSION *ex;\n  BIO *out_00;\n  ASN1_OBJECT *a_00;\n  uint uVar25;\n  uint uVar26;\n  OCSP_RESPONSE *resp;\n  OCSP_BASICRESP *bs;\n  stack_st_X509 *psVar27;\n  X509_STORE *st;\n  int iVar28;\n  OCSP_SINGLERESP *single;\n  int iVar29;\n  char *pcVar30;\n  EVP_PKEY *pkey;\n  ASN1_OCTET_STRING *v;\n  char *pcVar31;\n  size_t sVar32;\n  int iVar33;\n  X509_NAME_ENTRY *ne;\n  ASN1_STRING *pAVar34;\n  size_t sVar35;\n  uchar *puVar36;\n  void *pvVar37;\n  ulong e;\n  int iVar38;\n  size_t size;\n  size_t size_00;\n  curl_proxytype cVar39;\n  uint uVar40;\n  uchar *extraout_EDX;\n  CURLcode CVar41;\n  uint *puVar42;\n  int in_GS_OFFSET;\n  uchar *puVar43;\n  X509 *local_a44;\n  int local_a40;\n  char *local_a2c;\n  int local_a28;\n  in6_addr *local_a24;\n  undefined *local_a20;\n  uchar *local_a1c;\n  Curl_easy *local_a18;\n  uchar *local_a10;\n  uchar *local_a0c;\n  long *local_9f4;\n  char *ptr;\n  char *ptr_1;\n  ASN1_BIT_STRING *psig;\n  BIGNUM *p;\n  BIGNUM *q;\n  X509_ALGOR *palg;\n  uchar *temp;\n  in6_addr addr;\n  char namebuf [128];\n  char error_buffer [256];\n  char buffer [2048];\n  \n  pcVar30 = error_buffer;\n  data = conn->data;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  for (iVar38 = 0x3f; pcVar30 = pcVar30 + 4, iVar38 != 0; iVar38 = iVar38 + -1) {\n    pcVar30[0] = '\0';\n    pcVar30[1] = '\0';\n    pcVar30[2] = '\0';\n    pcVar30[3] = '\0';\n  }\n  error_buffer[0] = '\0';\n  error_buffer[1] = '\0';\n  error_buffer[2] = '\0';\n  error_buffer[3] = '\0';\n  if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n    psVar9 = &(data->set).proxy_ssl;\n  }\n  else {\n    psVar9 = &(data->set).ssl;\n  }\n  local_9f4 = &psVar9->certverifyresult;\n  pBVar11 = BIO_s_mem();\n  pBVar12 = BIO_new(pBVar11);\n  if ((data->set).ssl.certinfo != false) {\n    pCVar5 = conn->data;\n    psVar27 = SSL_get_peer_cert_chain((SSL *)connssl->backend->handle);\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar38 = OPENSSL_sk_num(psVar27);\n      CVar41 = Curl_ssl_init_certinfo(pCVar5,iVar38);\n      if (CVar41 == CURLE_OK) {\n        pBVar11 = BIO_s_mem();\n        out = BIO_new(pBVar11);\n        if (0 < iVar38) {\n          local_a40 = 0;\n          do {\n            pXVar13 = (X509 *)OPENSSL_sk_value(psVar27,local_a40);\n            psig = (ASN1_BIT_STRING *)0x0;\n            pXVar14 = X509_get_subject_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Subject",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar14 = X509_get_issuer_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Issuer",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar13);\n            BIO_printf(out,"%lx",uVar23);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Version",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar13);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,"-");\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar1 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,"%02x",(uint)*pbVar1);\n              } while (iVar28 < pAVar24->length);\n            }\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Serial Number",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            palg = (X509_ALGOR *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&psig,&palg,pXVar13);\n              X509_signature_print(out,(X509_ALGOR *)palg,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (palg != (X509_ALGOR *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);\n                sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar13);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a28 = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a28 < iVar28; local_a28 = local_a28 + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);\n                pBVar11 = BIO_s_mem();\n                out_00 = BIO_new(pBVar11);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(namebuf,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&temp);\n                uVar25 = 0;\n                uVar40 = *(uint *)temp;\n                puVar42 = (uint *)temp;\n                local_a1c = (uchar *)buffer;\n                if (uVar40 != 0) {\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }\n                Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);\n                BIO_free(out_00);\n              }\n            }\n            pAVar15 = (ASN1_TIME *)X509_get0_notBefore(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Start date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar15 = (ASN1_TIME *)X509_get0_notAfter(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Expire date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar13);\n            if (pkey == (EVP_PKEY *)0x0) {\n              Curl_infof(pCVar5,"   Unable to load public key\n");\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&p,&q,&palg);\n                pcVar30 = "dh";\n                DH_get0_key(uVar23,&temp,0);\nLAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);\n                pcVar31 = "pub_key";\nLAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (psig != (ASN1_BIT_STRING *)0x0) {\n              iVar28 = 0;\n              if (0 < psig->length) {\n                do {\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                } while (iVar28 < psig->length);\n              }\n              sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n              Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Signature",ptr_1,sVar20);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar13);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Cert",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a40 = local_a40 + 1;\n          } while (iVar38 != local_a40);\n        }\n        BIO_free(out);\n      }\n    }\n  }\n  psVar18 = connssl->backend;\n  pXVar13 = SSL_get_peer_certificate((SSL *)psVar18->handle);\n  psVar18->server_cert = (X509 *)pXVar13;\n  if (connssl->backend->server_cert == (X509 *)0x0) {\n    CVar41 = CURLE_OK;\n    BIO_free(pBVar12);\n    if (strict) {\n      CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n      Curl_failf(data,"SSL: couldn\'t get peer certificate!");\n    }\n    goto LAB_00078251;\n  }\n  pcVar30 = "Server";\n  if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n    pcVar30 = "Proxy";\n  }\n  Curl_infof(data,"%s certificate:\n",pcVar30);\n  pXVar14 = X509_get_subject_name((X509 *)connssl->backend->server_cert);\n  pcVar30 = buffer;\n  iVar38 = x509_name_oneline((X509_NAME *)pXVar14,pcVar30,size);\n  pcVar31 = "[NONE]";\n  if (iVar38 == 0) {\n    pcVar31 = pcVar30;\n  }\n  Curl_infof(data," subject: %s\n",pcVar31);\n  pAVar15 = (ASN1_TIME *)X509_get0_notBefore(connssl->backend->server_cert);\n  ASN1_TIME_print(pBVar12,pAVar15);\n  lVar16 = BIO_ctrl(pBVar12,3,0,&ptr);\n  Curl_infof(data," start date: %.*s\n",lVar16,ptr);\n  BIO_ctrl(pBVar12,1,0,(void *)0x0);\n  pAVar15 = (ASN1_TIME *)X509_get0_notAfter(connssl->backend->server_cert);\n  ASN1_TIME_print(pBVar12,pAVar15);\n  puVar17 = (uchar *)BIO_ctrl(pBVar12,3,0,&ptr);\n  local_a0c = (uchar *)ptr;\n  Curl_infof(data," expire date: %.*s\n",puVar17,ptr);\n  BIO_ctrl(pBVar12,1,0,(void *)0x0);\n  BIO_free(pBVar12);\n  local_a44 = (X509 *)connssl->backend->server_cert;\n  if ((conn->http_proxy).proxytype != CURLPROXY_HTTPS) {\n    if ((conn->ssl_config).verifyhost == false) goto LAB_000780f3;\n    local_a18 = conn->data;\nLAB_00078282:\n    local_a2c = (conn->host).name;\n    local_a10 = (uchar *)(conn->host).dispname;\nLAB_0007829a:\n    if (((conn->bits).ipv6_ip == false) || (iVar38 = inet_pton(10,local_a2c,&addr), iVar38 == 0)) {\n      local_a24 = &addr;\n      iVar38 = inet_pton(2,local_a2c,local_a24);\n      local_a1c = (uchar *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a1c = (uchar *)0x10;\n      iVar38 = 7;\n    }\n    local_a24 = &addr;\n    puVar43 = (uchar *)0x0;\n    puVar17 = (uchar *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a44,0x55,(int *)0x0,(int *)0x0);\n    local_a0c = puVar43;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      temp = "";\n      pXVar14 = X509_get_subject_name(local_a44);\n      puVar43 = (uchar *)0xffffffff;\n      if (pXVar14 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (temp == "") {\n          temp = (uchar *)0x0;\nLAB_0007950b:\n          pcVar30 = "SSL: unable to obtain common name from peer certificate";\n          local_a10 = local_a0c;\n        }\n        else {\n          if (temp == (uchar *)0x0) goto LAB_0007950b;\n          iVar38 = Curl_cert_hostcheck((char *)temp,local_a2c);\n          puVar17 = temp;\n          if (iVar38 != 0) {\n            Curl_infof(local_a18," common name: %s (matched)\n",temp);\n            if (temp == (uchar *)0x0) goto LAB_000783a8;\n            puVar17 = (uchar *)0x693;\n            local_a0c = extraout_EDX;\n            CRYPTO_free(temp);\n            local_a44 = (X509 *)connssl->backend->server_cert;\n            goto LAB_000780f3;\n          }\n          pcVar30 = "SSL: certificate subject name \'%s\' does not match target host name \'%s\'";\n        }\n        Curl_failf(local_a18,pcVar30,puVar17,local_a10);\nLAB_000790e4:\n        if (temp != (uchar *)0x0) {\n          CRYPTO_free(temp);\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          puVar36 = puVar43;\n          puVar17 = puVar36;\n          puVar43 = (uchar *)X509_NAME_get_index_by_NID(pXVar14,0xd,(int)puVar36);\n        } while (-1 < (int)puVar43);\n        if (puVar36 == (uchar *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar14,(int)puVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          puVar43 = (uchar *)ASN1_STRING_length(pAVar34);\n          if ((int)puVar43 < 0) goto LAB_0007969a;\n          puVar17 = (uchar *)0x662;\n          temp = (uchar *)CRYPTO_malloc((int)(puVar43 + 1),"vtls/openssl.c",0x662);\n          if (temp != (uchar *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            puVar17 = puVar43;\n            memcpy(temp,pvVar37,(size_t)puVar43);\n            temp[(int)puVar43] = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        puVar43 = (uchar *)ASN1_STRING_to_UTF8(&temp,pAVar34);\nLAB_0007969a:\n        if (temp == (uchar *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)temp);\n        puVar36 = (uchar *)curlx_uztosi(sVar35);\n        if (puVar36 == puVar43) goto LAB_0007908e;\n        Curl_failf(local_a18,"SSL: illegal cert name field");\n        if (temp != "") goto LAB_000790e4;\n      }\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }\n    else {\n      iVar28 = OPENSSL_sk_num(a);\n      if (iVar28 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a0c = puVar43;\n        goto LAB_00079040;\n      }\n      bVar6 = false;\n      iVar29 = 0;\n      bVar7 = false;\n      bVar8 = false;\n      do {\n        while( true ) {\n          piVar22 = (int *)OPENSSL_sk_value(a,iVar29);\n          iVar33 = *piVar22;\n          if (iVar33 == 2) break;\n          if (iVar33 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1]);\n              puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n              if (local_a1c == puVar36) {\n                puVar17 = local_a1c;\n                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);\n                bVar7 = true;\n                if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar7 = true;\n          }\n          else if (iVar33 == iVar38) {\n            local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          iVar29 = iVar29 + 1;\n          local_a0c = puVar43;\n          if (iVar28 == iVar29) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n          bVar8 = true;\nLAB_00079422:\n          sVar32 = strlen((char *)local_a0c);\n          if ((sVar32 != sVar35) ||\n             (iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c), iVar33 == 0))\n          goto LAB_00078351;\n          Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s \"%s\"\n",local_a10,\n                     local_a0c);\n          GENERAL_NAMES_free(a);\n          puVar17 = local_a10;\n          goto LAB_000783a8;\n        }\n        bVar8 = true;\n        iVar29 = iVar29 + 1;\n        local_a0c = puVar43;\n      } while (iVar28 != iVar29);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar6) {\nLAB_000783a8:\n        local_a44 = (X509 *)connssl->backend->server_cert;\n        goto LAB_000780f3;\n      }\n      if ((!bVar7) && (!bVar8)) goto LAB_00079040;\n      Curl_infof(local_a18," subjectAltName does not match %s\n",local_a10);\n      Curl_failf(local_a18,\n                 "SSL: no alternative certificate subject name matches target host name \'%s\'",\n                 local_a10);\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }\nLAB_000794d2:\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    X509_free(pXVar13);\n    connssl->backend->server_cert = (X509 *)0x0;\n    goto LAB_00078251;\n  }\n  if (conn->proxy_ssl[conn->sock[1] != -1].state == ssl_connection_complete) {\n    if ((conn->ssl_config).verifyhost != false) {\n      local_a18 = conn->data;\n      if (conn->proxy_ssl[conn->sock[1] != -1].state == ssl_connection_complete) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }\n  else if ((conn->proxy_ssl_config).verifyhost != false) {\n    local_a18 = conn->data;\nLAB_00078a68:\n    local_a2c = (conn->http_proxy).host.name;\n    local_a10 = (uchar *)(conn->http_proxy).host.dispname;\n    goto LAB_0007829a;\n  }\nLAB_000780f3:\n  pXVar14 = X509_get_issuer_name(local_a44);\n  iVar38 = x509_name_oneline((X509_NAME *)pXVar14,pcVar30,size_00);\n  if (iVar38 == 0) {\n    Curl_infof(data," issuer: %s\n",pcVar30,local_a0c);\n    if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n       (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n      pcVar31 = (data->set).proxy_ssl.issuercert;\n    }\n    else {\n      pcVar31 = (data->set).ssl.issuercert;\n    }\n    if (pcVar31 != (char *)0x0) {\n      pBVar11 = BIO_s_file();\n      pBVar12 = BIO_new(pBVar11);\n      if (pBVar12 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,error_buffer,0x100);\n        Curl_failf(data,"BIO_new return NULL, OpenSSL error %s",error_buffer);\n        X509_free((X509 *)connssl->backend->server_cert);\n        CVar41 = CURLE_OUT_OF_MEMORY;\n        connssl->backend->server_cert = (X509 *)0x0;\n        goto LAB_00078251;\n      }\n      if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n        pcVar30 = (data->set).proxy_ssl.issuercert;\n      }\n      else {\n        pcVar30 = (data->set).ssl.issuercert;\n      }\n      lVar16 = BIO_ctrl(pBVar12,0x6c,3,pcVar30);\n      if (lVar16 < 1) {\n        if (strict) {\n          if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n             (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n            pcVar30 = (data->set).proxy_ssl.issuercert;\n          }\n          else {\n            pcVar30 = (data->set).ssl.issuercert;\n          }\n          Curl_failf(data,"SSL: Unable to open issuer cert (%s)",pcVar30);\n        }\n        BIO_free(pBVar12);\n      }\n      else {\n        pXVar13 = PEM_read_bio_X509(pBVar12,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar13 == (X509 *)0x0) {\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Unable to read issuer cert (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n          pXVar13 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar13,(X509 *)connssl->backend->server_cert);\n          if (iVar38 == 0) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_infof(data," SSL certificate issuer check ok (%s)\n",pcVar30);\n            BIO_free(pBVar12);\n            X509_free(pXVar13);\n            goto LAB_000784c4;\n          }\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Certificate issuer check failed (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n        }\n        X509_free(pXVar13);\n      }\n      X509_free((X509 *)connssl->backend->server_cert);\n      CVar41 = CURLE_SSL_ISSUER_ERROR;\n      connssl->backend->server_cert = (X509 *)0x0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar16 = SSL_get_verify_result((SSL *)connssl->backend->handle);\n    *local_9f4 = lVar16;\n    if (lVar16 == 0) {\n      CVar41 = CURLE_OK;\n      Curl_infof(data," SSL certificate verify ok.\n",pcVar30);\n      cVar39 = (conn->http_proxy).proxytype;\n    }\n    else {\n      cVar39 = (conn->http_proxy).proxytype;\n      if ((cVar39 == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n        cVar2 = (conn->proxy_ssl_config).verifypeer;\n      }\n      else {\n        cVar2 = (conn->ssl_config).verifypeer;\n      }\n      if (cVar2 == '\0') {\n        CVar41 = CURLE_OK;\n        pcVar30 = X509_verify_cert_error_string(lVar16);\n        Curl_infof(data," SSL certificate verify result: %s (%ld), continuing anyway.\n",pcVar30,\n                   lVar16);\n        cVar39 = (conn->http_proxy).proxytype;\n      }\n      else {\n        CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n        if (strict) {\n          pcVar30 = X509_verify_cert_error_string(lVar16);\n          Curl_failf(data,"SSL certificate verify result: %s (%ld)",pcVar30,lVar16);\n          cVar39 = (conn->http_proxy).proxytype;\n        }\n      }\n    }\n  }\n  else if (strict) {\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    Curl_failf(data,"SSL: couldn\'t get X509-issuer name!",puVar17);\n    cVar39 = (conn->http_proxy).proxytype;\n  }\n  else {\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    cVar39 = (conn->http_proxy).proxytype;\n  }\n  if ((cVar39 == CURLPROXY_HTTPS) &&\n     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n    cVar2 = (conn->proxy_ssl_config).verifystatus;\n    psVar18 = connssl->backend;\n  }\n  else {\n    cVar2 = (conn->ssl_config).verifystatus;\n    psVar18 = connssl->backend;\n  }\n  if (cVar2 == '\0') {\nLAB_0007814e:\n    if (!strict) {\n      CVar41 = CURLE_OK;\n    }\n    if ((cVar39 == CURLPROXY_HTTPS) &&\n       (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n      pcVar30 = (data->set).str[0x1f];\n    }\n    else {\n      pcVar30 = (data->set).str[0x1e];\n    }\n    pXVar13 = (X509 *)psVar18->server_cert;\n    ptr = pcVar30;\n    if ((CVar41 == CURLE_OK) && (pcVar30 != (char *)0x0)) {\n      temp = (uchar *)0x0;\n      if (pXVar13 == (X509 *)0x0) {\nLAB_00078208:\n        CVar41 = CURLE_SSL_PINNEDPUBKEYNOTMATCH;\n      }\n      else {\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar20 = i2d_X509_PUBKEY(pXVar19,(uchar **)0x0);\n        if (((int)sVar20 < 1) ||\n           (puVar17 = (uchar *)(*Curl_cmalloc)(sVar20), temp = puVar17, puVar17 == (uchar *)0x0))\n        goto LAB_00078208;\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar21 = i2d_X509_PUBKEY(pXVar19,&temp);\n        if ((sVar20 != sVar21) || ((temp == (uchar *)0x0 || (sVar20 != (int)temp - (int)puVar17))))\n        {\n          (*Curl_cfree)(puVar17);\n          goto LAB_00078208;\n        }\n        CVar41 = Curl_pin_peer_pubkey(data,pcVar30,puVar17,sVar20);\n        (*Curl_cfree)(puVar17);\n        if (CVar41 == CURLE_OK) {\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_00078230;\n        }\n      }\n      Curl_failf(data,"SSL: public key does not match pinned public key!");\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }\nLAB_00078230:\n    X509_free(pXVar13);\n    connssl->backend->server_cert = (X509 *)0x0;\n    connssl->connecting_state = ssl_connect_done;\n    goto LAB_00078251;\n  }\n  pCVar5 = conn->data;\n  lVar16 = SSL_ctrl((SSL *)psVar18->handle,0x46,0,&ptr_1);\n  if (ptr_1 == (char *)0x0) {\n    Curl_failf(pCVar5,"No OCSP response received");\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }\n  else {\n    psig = (ASN1_BIT_STRING *)ptr_1;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&psig,lVar16);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      Curl_failf(pCVar5,"Invalid OCSP response");\n      goto LAB_000795a6;\n    }\n    iVar38 = OCSP_response_status(resp);\n    if (iVar38 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar38);\n      Curl_failf(pCVar5,"Invalid OCSP response status: %s (%d)",pcVar30,iVar38);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain((SSL *)connssl->backend->handle);\n    st = SSL_CTX_get_cert_store((SSL_CTX *)connssl->backend->ctx);\n    iVar38 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar38) {\n      for (iVar38 = 0; iVar28 = OCSP_resp_count(bs), iVar38 < iVar28; iVar38 = iVar38 + 1) {\n        single = OCSP_resp_get0(bs,iVar38);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,(int *)&p,(ASN1_GENERALIZEDTIME **)&q,\n                              (ASN1_GENERALIZEDTIME **)&palg,(ASN1_GENERALIZEDTIME **)&temp);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)palg,(ASN1_GENERALIZEDTIME *)temp,300\n                                       ,-1);\n          if (iVar29 == 0) {\n            Curl_failf(pCVar5,"OCSP response has expired");\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            Curl_infof(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str((long)p);\n              Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      CVar41 = CURLE_OK;\n      OCSP_RESPONSE_free(resp);\n      cVar39 = (conn->http_proxy).proxytype;\n      psVar18 = connssl->backend;\n      goto LAB_0007814e;\n    }\n    Curl_failf(pCVar5,"OCSP response verification failed");\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free((X509 *)connssl->backend->server_cert);\n  CVar41 = CURLE_SSL_INVALIDCERTSTATUS;\n  connssl->backend->server_cert = (X509 *)0x0;\nLAB_00078251:\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CVar41;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment comment (function_definition "CURLcode __regparm3 servercert(connectdata *conn,ssl_connect_data *connssl,_Bool strict)\n\n{\n  byte *pbVar1;\n  char cVar2;\n  Curl_easy *data;\n  int iVar3;\n  uint uVar4;\n  Curl_easy *pCVar5;\n  bool bVar6;\n  bool bVar7;\n  bool bVar8;\n  ssl_config_data *psVar9;\n  uint uVar10;\n  BIO_METHOD *pBVar11;\n  BIO *pBVar12;\n  X509 *pXVar13;\n  X509_NAME *pXVar14;\n  ASN1_TIME *pAVar15;\n  long lVar16;\n  uchar *puVar17;\n  ssl_backend_data *psVar18;\n  X509_PUBKEY *pXVar19;\n  size_t sVar20;\n  size_t sVar21;\n  GENERAL_NAMES *a;\n  int *piVar22;\n  BIO *out;\n  undefined4 uVar23;\n  ASN1_INTEGER *pAVar24;\n  X509_EXTENSION *ex;\n  BIO *out_00;\n  ASN1_OBJECT *a_00;\n  uint uVar25;\n  uint uVar26;\n  OCSP_RESPONSE *resp;\n  OCSP_BASICRESP *bs;\n  stack_st_X509 *psVar27;\n  X509_STORE *st;\n  int iVar28;\n  OCSP_SINGLERESP *single;\n  int iVar29;\n  char *pcVar30;\n  EVP_PKEY *pkey;\n  ASN1_OCTET_STRING *v;\n  char *pcVar31;\n  size_t sVar32;\n  int iVar33;\n  X509_NAME_ENTRY *ne;\n  ASN1_STRING *pAVar34;\n  size_t sVar35;\n  uchar *puVar36;\n  void *pvVar37;\n  ulong e;\n  int iVar38;\n  size_t size;\n  size_t size_00;\n  curl_proxytype cVar39;\n  uint uVar40;\n  uchar *extraout_EDX;\n  CURLcode CVar41;\n  uint *puVar42;\n  int in_GS_OFFSET;\n  uchar *puVar43;\n  X509 *local_a44;\n  int local_a40;\n  char *local_a2c;\n  int local_a28;\n  in6_addr *local_a24;\n  undefined *local_a20;\n  uchar *local_a1c;\n  Curl_easy *local_a18;\n  uchar *local_a10;\n  uchar *local_a0c;\n  long *local_9f4;\n  char *ptr;\n  char *ptr_1;\n  ASN1_BIT_STRING *psig;\n  BIGNUM *p;\n  BIGNUM *q;\n  X509_ALGOR *palg;\n  uchar *temp;\n  in6_addr addr;\n  char namebuf [128];\n  char error_buffer [256];\n  char buffer [2048];\n  \n  pcVar30 = error_buffer;\n  data = conn->data;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  for (iVar38 = 0x3f; pcVar30 = pcVar30 + 4, iVar38 != 0; iVar38 = iVar38 + -1) {\n    pcVar30[0] = '\0';\n    pcVar30[1] = '\0';\n    pcVar30[2] = '\0';\n    pcVar30[3] = '\0';\n  }\n  error_buffer[0] = '\0';\n  error_buffer[1] = '\0';\n  error_buffer[2] = '\0';\n  error_buffer[3] = '\0';\n  if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n    psVar9 = &(data->set).proxy_ssl;\n  }\n  else {\n    psVar9 = &(data->set).ssl;\n  }\n  local_9f4 = &psVar9->certverifyresult;\n  pBVar11 = BIO_s_mem();\n  pBVar12 = BIO_new(pBVar11);\n  if ((data->set).ssl.certinfo != false) {\n    pCVar5 = conn->data;\n    psVar27 = SSL_get_peer_cert_chain((SSL *)connssl->backend->handle);\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar38 = OPENSSL_sk_num(psVar27);\n      CVar41 = Curl_ssl_init_certinfo(pCVar5,iVar38);\n      if (CVar41 == CURLE_OK) {\n        pBVar11 = BIO_s_mem();\n        out = BIO_new(pBVar11);\n        if (0 < iVar38) {\n          local_a40 = 0;\n          do {\n            pXVar13 = (X509 *)OPENSSL_sk_value(psVar27,local_a40);\n            psig = (ASN1_BIT_STRING *)0x0;\n            pXVar14 = X509_get_subject_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Subject",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar14 = X509_get_issuer_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Issuer",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar13);\n            BIO_printf(out,"%lx",uVar23);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Version",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar13);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,"-");\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar1 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,"%02x",(uint)*pbVar1);\n              } while (iVar28 < pAVar24->length);\n            }\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Serial Number",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            palg = (X509_ALGOR *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&psig,&palg,pXVar13);\n              X509_signature_print(out,(X509_ALGOR *)palg,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (palg != (X509_ALGOR *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);\n                sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar13);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a28 = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a28 < iVar28; local_a28 = local_a28 + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);\n                pBVar11 = BIO_s_mem();\n                out_00 = BIO_new(pBVar11);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(namebuf,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&temp);\n                uVar25 = 0;\n                uVar40 = *(uint *)temp;\n                puVar42 = (uint *)temp;\n                local_a1c = (uchar *)buffer;\n                if (uVar40 != 0) {\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }\n                Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);\n                BIO_free(out_00);\n              }\n            }\n            pAVar15 = (ASN1_TIME *)X509_get0_notBefore(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Start date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar15 = (ASN1_TIME *)X509_get0_notAfter(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Expire date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar13);\n            if (pkey == (EVP_PKEY *)0x0) {\n              Curl_infof(pCVar5,"   Unable to load public key\n");\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&p,&q,&palg);\n                pcVar30 = "dh";\n                DH_get0_key(uVar23,&temp,0);\nLAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);\n                pcVar31 = "pub_key";\nLAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (psig != (ASN1_BIT_STRING *)0x0) {\n              iVar28 = 0;\n              if (0 < psig->length) {\n                do {\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                } while (iVar28 < psig->length);\n              }\n              sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n              Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Signature",ptr_1,sVar20);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar13);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Cert",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a40 = local_a40 + 1;\n          } while (iVar38 != local_a40);\n        }\n        BIO_free(out);\n      }\n    }\n  }\n  psVar18 = connssl->backend;\n  pXVar13 = SSL_get_peer_certificate((SSL *)psVar18->handle);\n  psVar18->server_cert = (X509 *)pXVar13;\n  if (connssl->backend->server_cert == (X509 *)0x0) {\n    CVar41 = CURLE_OK;\n    BIO_free(pBVar12);\n    if (strict) {\n      CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n      Curl_failf(data,"SSL: couldn\'t get peer certificate!");\n    }\n    goto LAB_00078251;\n  }\n  pcVar30 = "Server";\n  if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n    pcVar30 = "Proxy";\n  }\n  Curl_infof(data,"%s certificate:\n",pcVar30);\n  pXVar14 = X509_get_subject_name((X509 *)connssl->backend->server_cert);\n  pcVar30 = buffer;\n  iVar38 = x509_name_oneline((X509_NAME *)pXVar14,pcVar30,size);\n  pcVar31 = "[NONE]";\n  if (iVar38 == 0) {\n    pcVar31 = pcVar30;\n  }\n  Curl_infof(data," subject: %s\n",pcVar31);\n  pAVar15 = (ASN1_TIME *)X509_get0_notBefore(connssl->backend->server_cert);\n  ASN1_TIME_print(pBVar12,pAVar15);\n  lVar16 = BIO_ctrl(pBVar12,3,0,&ptr);\n  Curl_infof(data," start date: %.*s\n",lVar16,ptr);\n  BIO_ctrl(pBVar12,1,0,(void *)0x0);\n  pAVar15 = (ASN1_TIME *)X509_get0_notAfter(connssl->backend->server_cert);\n  ASN1_TIME_print(pBVar12,pAVar15);\n  puVar17 = (uchar *)BIO_ctrl(pBVar12,3,0,&ptr);\n  local_a0c = (uchar *)ptr;\n  Curl_infof(data," expire date: %.*s\n",puVar17,ptr);\n  BIO_ctrl(pBVar12,1,0,(void *)0x0);\n  BIO_free(pBVar12);\n  local_a44 = (X509 *)connssl->backend->server_cert;\n  if ((conn->http_proxy).proxytype != CURLPROXY_HTTPS) {\n    if ((conn->ssl_config).verifyhost == false) goto LAB_000780f3;\n    local_a18 = conn->data;\nLAB_00078282:\n    local_a2c = (conn->host).name;\n    local_a10 = (uchar *)(conn->host).dispname;\nLAB_0007829a:\n    if (((conn->bits).ipv6_ip == false) || (iVar38 = inet_pton(10,local_a2c,&addr), iVar38 == 0)) {\n      local_a24 = &addr;\n      iVar38 = inet_pton(2,local_a2c,local_a24);\n      local_a1c = (uchar *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a1c = (uchar *)0x10;\n      iVar38 = 7;\n    }\n    local_a24 = &addr;\n    puVar43 = (uchar *)0x0;\n    puVar17 = (uchar *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a44,0x55,(int *)0x0,(int *)0x0);\n    local_a0c = puVar43;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      temp = "";\n      pXVar14 = X509_get_subject_name(local_a44);\n      puVar43 = (uchar *)0xffffffff;\n      if (pXVar14 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (temp == "") {\n          temp = (uchar *)0x0;\nLAB_0007950b:\n          pcVar30 = "SSL: unable to obtain common name from peer certificate";\n          local_a10 = local_a0c;\n        }\n        else {\n          if (temp == (uchar *)0x0) goto LAB_0007950b;\n          iVar38 = Curl_cert_hostcheck((char *)temp,local_a2c);\n          puVar17 = temp;\n          if (iVar38 != 0) {\n            Curl_infof(local_a18," common name: %s (matched)\n",temp);\n            if (temp == (uchar *)0x0) goto LAB_000783a8;\n            puVar17 = (uchar *)0x693;\n            local_a0c = extraout_EDX;\n            CRYPTO_free(temp);\n            local_a44 = (X509 *)connssl->backend->server_cert;\n            goto LAB_000780f3;\n          }\n          pcVar30 = "SSL: certificate subject name \'%s\' does not match target host name \'%s\'";\n        }\n        Curl_failf(local_a18,pcVar30,puVar17,local_a10);\nLAB_000790e4:\n        if (temp != (uchar *)0x0) {\n          CRYPTO_free(temp);\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          puVar36 = puVar43;\n          puVar17 = puVar36;\n          puVar43 = (uchar *)X509_NAME_get_index_by_NID(pXVar14,0xd,(int)puVar36);\n        } while (-1 < (int)puVar43);\n        if (puVar36 == (uchar *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar14,(int)puVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          puVar43 = (uchar *)ASN1_STRING_length(pAVar34);\n          if ((int)puVar43 < 0) goto LAB_0007969a;\n          puVar17 = (uchar *)0x662;\n          temp = (uchar *)CRYPTO_malloc((int)(puVar43 + 1),"vtls/openssl.c",0x662);\n          if (temp != (uchar *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            puVar17 = puVar43;\n            memcpy(temp,pvVar37,(size_t)puVar43);\n            temp[(int)puVar43] = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        puVar43 = (uchar *)ASN1_STRING_to_UTF8(&temp,pAVar34);\nLAB_0007969a:\n        if (temp == (uchar *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)temp);\n        puVar36 = (uchar *)curlx_uztosi(sVar35);\n        if (puVar36 == puVar43) goto LAB_0007908e;\n        Curl_failf(local_a18,"SSL: illegal cert name field");\n        if (temp != "") goto LAB_000790e4;\n      }\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }\n    else {\n      iVar28 = OPENSSL_sk_num(a);\n      if (iVar28 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a0c = puVar43;\n        goto LAB_00079040;\n      }\n      bVar6 = false;\n      iVar29 = 0;\n      bVar7 = false;\n      bVar8 = false;\n      do {\n        while( true ) {\n          piVar22 = (int *)OPENSSL_sk_value(a,iVar29);\n          iVar33 = *piVar22;\n          if (iVar33 == 2) break;\n          if (iVar33 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1]);\n              puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n              if (local_a1c == puVar36) {\n                puVar17 = local_a1c;\n                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);\n                bVar7 = true;\n                if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar7 = true;\n          }\n          else if (iVar33 == iVar38) {\n            local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          iVar29 = iVar29 + 1;\n          local_a0c = puVar43;\n          if (iVar28 == iVar29) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n          bVar8 = true;\nLAB_00079422:\n          sVar32 = strlen((char *)local_a0c);\n          if ((sVar32 != sVar35) ||\n             (iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c), iVar33 == 0))\n          goto LAB_00078351;\n          Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s \"%s\"\n",local_a10,\n                     local_a0c);\n          GENERAL_NAMES_free(a);\n          puVar17 = local_a10;\n          goto LAB_000783a8;\n        }\n        bVar8 = true;\n        iVar29 = iVar29 + 1;\n        local_a0c = puVar43;\n      } while (iVar28 != iVar29);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar6) {\nLAB_000783a8:\n        local_a44 = (X509 *)connssl->backend->server_cert;\n        goto LAB_000780f3;\n      }\n      if ((!bVar7) && (!bVar8)) goto LAB_00079040;\n      Curl_infof(local_a18," subjectAltName does not match %s\n",local_a10);\n      Curl_failf(local_a18,\n                 "SSL: no alternative certificate subject name matches target host name \'%s\'",\n                 local_a10);\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }\nLAB_000794d2:\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    X509_free(pXVar13);\n    connssl->backend->server_cert = (X509 *)0x0;\n    goto LAB_00078251;\n  }\n  if (conn->proxy_ssl[conn->sock[1] != -1].state == ssl_connection_complete) {\n    if ((conn->ssl_config).verifyhost != false) {\n      local_a18 = conn->data;\n      if (conn->proxy_ssl[conn->sock[1] != -1].state == ssl_connection_complete) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }\n  else if ((conn->proxy_ssl_config).verifyhost != false) {\n    local_a18 = conn->data;\nLAB_00078a68:\n    local_a2c = (conn->http_proxy).host.name;\n    local_a10 = (uchar *)(conn->http_proxy).host.dispname;\n    goto LAB_0007829a;\n  }\nLAB_000780f3:\n  pXVar14 = X509_get_issuer_name(local_a44);\n  iVar38 = x509_name_oneline((X509_NAME *)pXVar14,pcVar30,size_00);\n  if (iVar38 == 0) {\n    Curl_infof(data," issuer: %s\n",pcVar30,local_a0c);\n    if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n       (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n      pcVar31 = (data->set).proxy_ssl.issuercert;\n    }\n    else {\n      pcVar31 = (data->set).ssl.issuercert;\n    }\n    if (pcVar31 != (char *)0x0) {\n      pBVar11 = BIO_s_file();\n      pBVar12 = BIO_new(pBVar11);\n      if (pBVar12 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,error_buffer,0x100);\n        Curl_failf(data,"BIO_new return NULL, OpenSSL error %s",error_buffer);\n        X509_free((X509 *)connssl->backend->server_cert);\n        CVar41 = CURLE_OUT_OF_MEMORY;\n        connssl->backend->server_cert = (X509 *)0x0;\n        goto LAB_00078251;\n      }\n      if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n        pcVar30 = (data->set).proxy_ssl.issuercert;\n      }\n      else {\n        pcVar30 = (data->set).ssl.issuercert;\n      }\n      lVar16 = BIO_ctrl(pBVar12,0x6c,3,pcVar30);\n      if (lVar16 < 1) {\n        if (strict) {\n          if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n             (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n            pcVar30 = (data->set).proxy_ssl.issuercert;\n          }\n          else {\n            pcVar30 = (data->set).ssl.issuercert;\n          }\n          Curl_failf(data,"SSL: Unable to open issuer cert (%s)",pcVar30);\n        }\n        BIO_free(pBVar12);\n      }\n      else {\n        pXVar13 = PEM_read_bio_X509(pBVar12,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar13 == (X509 *)0x0) {\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Unable to read issuer cert (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n          pXVar13 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar13,(X509 *)connssl->backend->server_cert);\n          if (iVar38 == 0) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_infof(data," SSL certificate issuer check ok (%s)\n",pcVar30);\n            BIO_free(pBVar12);\n            X509_free(pXVar13);\n            goto LAB_000784c4;\n          }\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Certificate issuer check failed (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n        }\n        X509_free(pXVar13);\n      }\n      X509_free((X509 *)connssl->backend->server_cert);\n      CVar41 = CURLE_SSL_ISSUER_ERROR;\n      connssl->backend->server_cert = (X509 *)0x0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar16 = SSL_get_verify_result((SSL *)connssl->backend->handle);\n    *local_9f4 = lVar16;\n    if (lVar16 == 0) {\n      CVar41 = CURLE_OK;\n      Curl_infof(data," SSL certificate verify ok.\n",pcVar30);\n      cVar39 = (conn->http_proxy).proxytype;\n    }\n    else {\n      cVar39 = (conn->http_proxy).proxytype;\n      if ((cVar39 == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n        cVar2 = (conn->proxy_ssl_config).verifypeer;\n      }\n      else {\n        cVar2 = (conn->ssl_config).verifypeer;\n      }\n      if (cVar2 == '\0') {\n        CVar41 = CURLE_OK;\n        pcVar30 = X509_verify_cert_error_string(lVar16);\n        Curl_infof(data," SSL certificate verify result: %s (%ld), continuing anyway.\n",pcVar30,\n                   lVar16);\n        cVar39 = (conn->http_proxy).proxytype;\n      }\n      else {\n        CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n        if (strict) {\n          pcVar30 = X509_verify_cert_error_string(lVar16);\n          Curl_failf(data,"SSL certificate verify result: %s (%ld)",pcVar30,lVar16);\n          cVar39 = (conn->http_proxy).proxytype;\n        }\n      }\n    }\n  }\n  else if (strict) {\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    Curl_failf(data,"SSL: couldn\'t get X509-issuer name!",puVar17);\n    cVar39 = (conn->http_proxy).proxytype;\n  }\n  else {\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    cVar39 = (conn->http_proxy).proxytype;\n  }\n  if ((cVar39 == CURLPROXY_HTTPS) &&\n     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n    cVar2 = (conn->proxy_ssl_config).verifystatus;\n    psVar18 = connssl->backend;\n  }\n  else {\n    cVar2 = (conn->ssl_config).verifystatus;\n    psVar18 = connssl->backend;\n  }\n  if (cVar2 == '\0') {\nLAB_0007814e:\n    if (!strict) {\n      CVar41 = CURLE_OK;\n    }\n    if ((cVar39 == CURLPROXY_HTTPS) &&\n       (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n      pcVar30 = (data->set).str[0x1f];\n    }\n    else {\n      pcVar30 = (data->set).str[0x1e];\n    }\n    pXVar13 = (X509 *)psVar18->server_cert;\n    ptr = pcVar30;\n    if ((CVar41 == CURLE_OK) && (pcVar30 != (char *)0x0)) {\n      temp = (uchar *)0x0;\n      if (pXVar13 == (X509 *)0x0) {\nLAB_00078208:\n        CVar41 = CURLE_SSL_PINNEDPUBKEYNOTMATCH;\n      }\n      else {\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar20 = i2d_X509_PUBKEY(pXVar19,(uchar **)0x0);\n        if (((int)sVar20 < 1) ||\n           (puVar17 = (uchar *)(*Curl_cmalloc)(sVar20), temp = puVar17, puVar17 == (uchar *)0x0))\n        goto LAB_00078208;\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar21 = i2d_X509_PUBKEY(pXVar19,&temp);\n        if ((sVar20 != sVar21) || ((temp == (uchar *)0x0 || (sVar20 != (int)temp - (int)puVar17))))\n        {\n          (*Curl_cfree)(puVar17);\n          goto LAB_00078208;\n        }\n        CVar41 = Curl_pin_peer_pubkey(data,pcVar30,puVar17,sVar20);\n        (*Curl_cfree)(puVar17);\n        if (CVar41 == CURLE_OK) {\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_00078230;\n        }\n      }\n      Curl_failf(data,"SSL: public key does not match pinned public key!");\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }\nLAB_00078230:\n    X509_free(pXVar13);\n    connssl->backend->server_cert = (X509 *)0x0;\n    connssl->connecting_state = ssl_connect_done;\n    goto LAB_00078251;\n  }\n  pCVar5 = conn->data;\n  lVar16 = SSL_ctrl((SSL *)psVar18->handle,0x46,0,&ptr_1);\n  if (ptr_1 == (char *)0x0) {\n    Curl_failf(pCVar5,"No OCSP response received");\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }\n  else {\n    psig = (ASN1_BIT_STRING *)ptr_1;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&psig,lVar16);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      Curl_failf(pCVar5,"Invalid OCSP response");\n      goto LAB_000795a6;\n    }\n    iVar38 = OCSP_response_status(resp);\n    if (iVar38 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar38);\n      Curl_failf(pCVar5,"Invalid OCSP response status: %s (%d)",pcVar30,iVar38);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain((SSL *)connssl->backend->handle);\n    st = SSL_CTX_get_cert_store((SSL_CTX *)connssl->backend->ctx);\n    iVar38 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar38) {\n      for (iVar38 = 0; iVar28 = OCSP_resp_count(bs), iVar38 < iVar28; iVar38 = iVar38 + 1) {\n        single = OCSP_resp_get0(bs,iVar38);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,(int *)&p,(ASN1_GENERALIZEDTIME **)&q,\n                              (ASN1_GENERALIZEDTIME **)&palg,(ASN1_GENERALIZEDTIME **)&temp);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)palg,(ASN1_GENERALIZEDTIME *)temp,300\n                                       ,-1);\n          if (iVar29 == 0) {\n            Curl_failf(pCVar5,"OCSP response has expired");\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            Curl_infof(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str((long)p);\n              Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      CVar41 = CURLE_OK;\n      OCSP_RESPONSE_free(resp);\n      cVar39 = (conn->http_proxy).proxytype;\n      psVar18 = connssl->backend;\n      goto LAB_0007814e;\n    }\n    Curl_failf(pCVar5,"OCSP response verification failed");\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free((X509 *)connssl->backend->server_cert);\n  CVar41 = CURLE_SSL_INVALIDCERTSTATUS;\n  connssl->backend->server_cert = (X509 *)0x0;\nLAB_00078251:\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CVar41;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "servercert(connectdata *conn,ssl_connect_data *connssl,_Bool strict)" identifier (parameter_list "(connectdata *conn,ssl_connect_data *connssl,_Bool strict)" ( (parameter_declaration "connectdata *conn" type_identifier (pointer_declarator "*conn" * identifier)) , (parameter_declaration "ssl_connect_data *connssl" type_identifier (pointer_declarator "*connssl" * identifier)) , (parameter_declaration "_Bool strict" type_identifier identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  char cVar2;\n  Curl_easy *data;\n  int iVar3;\n  uint uVar4;\n  Curl_easy *pCVar5;\n  bool bVar6;\n  bool bVar7;\n  bool bVar8;\n  ssl_config_data *psVar9;\n  uint uVar10;\n  BIO_METHOD *pBVar11;\n  BIO *pBVar12;\n  X509 *pXVar13;\n  X509_NAME *pXVar14;\n  ASN1_TIME *pAVar15;\n  long lVar16;\n  uchar *puVar17;\n  ssl_backend_data *psVar18;\n  X509_PUBKEY *pXVar19;\n  size_t sVar20;\n  size_t sVar21;\n  GENERAL_NAMES *a;\n  int *piVar22;\n  BIO *out;\n  undefined4 uVar23;\n  ASN1_INTEGER *pAVar24;\n  X509_EXTENSION *ex;\n  BIO *out_00;\n  ASN1_OBJECT *a_00;\n  uint uVar25;\n  uint uVar26;\n  OCSP_RESPONSE *resp;\n  OCSP_BASICRESP *bs;\n  stack_st_X509 *psVar27;\n  X509_STORE *st;\n  int iVar28;\n  OCSP_SINGLERESP *single;\n  int iVar29;\n  char *pcVar30;\n  EVP_PKEY *pkey;\n  ASN1_OCTET_STRING *v;\n  char *pcVar31;\n  size_t sVar32;\n  int iVar33;\n  X509_NAME_ENTRY *ne;\n  ASN1_STRING *pAVar34;\n  size_t sVar35;\n  uchar *puVar36;\n  void *pvVar37;\n  ulong e;\n  int iVar38;\n  size_t size;\n  size_t size_00;\n  curl_proxytype cVar39;\n  uint uVar40;\n  uchar *extraout_EDX;\n  CURLcode CVar41;\n  uint *puVar42;\n  int in_GS_OFFSET;\n  uchar *puVar43;\n  X509 *local_a44;\n  int local_a40;\n  char *local_a2c;\n  int local_a28;\n  in6_addr *local_a24;\n  undefined *local_a20;\n  uchar *local_a1c;\n  Curl_easy *local_a18;\n  uchar *local_a10;\n  uchar *local_a0c;\n  long *local_9f4;\n  char *ptr;\n  char *ptr_1;\n  ASN1_BIT_STRING *psig;\n  BIGNUM *p;\n  BIGNUM *q;\n  X509_ALGOR *palg;\n  uchar *temp;\n  in6_addr addr;\n  char namebuf [128];\n  char error_buffer [256];\n  char buffer [2048];\n  \n  pcVar30 = error_buffer;\n  data = conn->data;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  for (iVar38 = 0x3f; pcVar30 = pcVar30 + 4, iVar38 != 0; iVar38 = iVar38 + -1) {\n    pcVar30[0] = '\0';\n    pcVar30[1] = '\0';\n    pcVar30[2] = '\0';\n    pcVar30[3] = '\0';\n  }\n  error_buffer[0] = '\0';\n  error_buffer[1] = '\0';\n  error_buffer[2] = '\0';\n  error_buffer[3] = '\0';\n  if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n    psVar9 = &(data->set).proxy_ssl;\n  }\n  else {\n    psVar9 = &(data->set).ssl;\n  }\n  local_9f4 = &psVar9->certverifyresult;\n  pBVar11 = BIO_s_mem();\n  pBVar12 = BIO_new(pBVar11);\n  if ((data->set).ssl.certinfo != false) {\n    pCVar5 = conn->data;\n    psVar27 = SSL_get_peer_cert_chain((SSL *)connssl->backend->handle);\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar38 = OPENSSL_sk_num(psVar27);\n      CVar41 = Curl_ssl_init_certinfo(pCVar5,iVar38);\n      if (CVar41 == CURLE_OK) {\n        pBVar11 = BIO_s_mem();\n        out = BIO_new(pBVar11);\n        if (0 < iVar38) {\n          local_a40 = 0;\n          do {\n            pXVar13 = (X509 *)OPENSSL_sk_value(psVar27,local_a40);\n            psig = (ASN1_BIT_STRING *)0x0;\n            pXVar14 = X509_get_subject_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Subject",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar14 = X509_get_issuer_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Issuer",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar13);\n            BIO_printf(out,"%lx",uVar23);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Version",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar13);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,"-");\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar1 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,"%02x",(uint)*pbVar1);\n              } while (iVar28 < pAVar24->length);\n            }\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Serial Number",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            palg = (X509_ALGOR *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&psig,&palg,pXVar13);\n              X509_signature_print(out,(X509_ALGOR *)palg,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (palg != (X509_ALGOR *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);\n                sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar13);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a28 = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a28 < iVar28; local_a28 = local_a28 + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);\n                pBVar11 = BIO_s_mem();\n                out_00 = BIO_new(pBVar11);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(namebuf,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&temp);\n                uVar25 = 0;\n                uVar40 = *(uint *)temp;\n                puVar42 = (uint *)temp;\n                local_a1c = (uchar *)buffer;\n                if (uVar40 != 0) {\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }\n                Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);\n                BIO_free(out_00);\n              }\n            }\n            pAVar15 = (ASN1_TIME *)X509_get0_notBefore(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Start date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar15 = (ASN1_TIME *)X509_get0_notAfter(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Expire date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar13);\n            if (pkey == (EVP_PKEY *)0x0) {\n              Curl_infof(pCVar5,"   Unable to load public key\n");\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&p,&q,&palg);\n                pcVar30 = "dh";\n                DH_get0_key(uVar23,&temp,0);\nLAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);\n                pcVar31 = "pub_key";\nLAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (psig != (ASN1_BIT_STRING *)0x0) {\n              iVar28 = 0;\n              if (0 < psig->length) {\n                do {\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                } while (iVar28 < psig->length);\n              }\n              sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n              Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Signature",ptr_1,sVar20);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar13);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Cert",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a40 = local_a40 + 1;\n          } while (iVar38 != local_a40);\n        }\n        BIO_free(out);\n      }\n    }\n  }\n  psVar18 = connssl->backend;\n  pXVar13 = SSL_get_peer_certificate((SSL *)psVar18->handle);\n  psVar18->server_cert = (X509 *)pXVar13;\n  if (connssl->backend->server_cert == (X509 *)0x0) {\n    CVar41 = CURLE_OK;\n    BIO_free(pBVar12);\n    if (strict) {\n      CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n      Curl_failf(data,"SSL: couldn\'t get peer certificate!");\n    }\n    goto LAB_00078251;\n  }\n  pcVar30 = "Server";\n  if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n    pcVar30 = "Proxy";\n  }\n  Curl_infof(data,"%s certificate:\n",pcVar30);\n  pXVar14 = X509_get_subject_name((X509 *)connssl->backend->server_cert);\n  pcVar30 = buffer;\n  iVar38 = x509_name_oneline((X509_NAME *)pXVar14,pcVar30,size);\n  pcVar31 = "[NONE]";\n  if (iVar38 == 0) {\n    pcVar31 = pcVar30;\n  }\n  Curl_infof(data," subject: %s\n",pcVar31);\n  pAVar15 = (ASN1_TIME *)X509_get0_notBefore(connssl->backend->server_cert);\n  ASN1_TIME_print(pBVar12,pAVar15);\n  lVar16 = BIO_ctrl(pBVar12,3,0,&ptr);\n  Curl_infof(data," start date: %.*s\n",lVar16,ptr);\n  BIO_ctrl(pBVar12,1,0,(void *)0x0);\n  pAVar15 = (ASN1_TIME *)X509_get0_notAfter(connssl->backend->server_cert);\n  ASN1_TIME_print(pBVar12,pAVar15);\n  puVar17 = (uchar *)BIO_ctrl(pBVar12,3,0,&ptr);\n  local_a0c = (uchar *)ptr;\n  Curl_infof(data," expire date: %.*s\n",puVar17,ptr);\n  BIO_ctrl(pBVar12,1,0,(void *)0x0);\n  BIO_free(pBVar12);\n  local_a44 = (X509 *)connssl->backend->server_cert;\n  if ((conn->http_proxy).proxytype != CURLPROXY_HTTPS) {\n    if ((conn->ssl_config).verifyhost == false) goto LAB_000780f3;\n    local_a18 = conn->data;\nLAB_00078282:\n    local_a2c = (conn->host).name;\n    local_a10 = (uchar *)(conn->host).dispname;\nLAB_0007829a:\n    if (((conn->bits).ipv6_ip == false) || (iVar38 = inet_pton(10,local_a2c,&addr), iVar38 == 0)) {\n      local_a24 = &addr;\n      iVar38 = inet_pton(2,local_a2c,local_a24);\n      local_a1c = (uchar *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a1c = (uchar *)0x10;\n      iVar38 = 7;\n    }\n    local_a24 = &addr;\n    puVar43 = (uchar *)0x0;\n    puVar17 = (uchar *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a44,0x55,(int *)0x0,(int *)0x0);\n    local_a0c = puVar43;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      temp = "";\n      pXVar14 = X509_get_subject_name(local_a44);\n      puVar43 = (uchar *)0xffffffff;\n      if (pXVar14 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (temp == "") {\n          temp = (uchar *)0x0;\nLAB_0007950b:\n          pcVar30 = "SSL: unable to obtain common name from peer certificate";\n          local_a10 = local_a0c;\n        }\n        else {\n          if (temp == (uchar *)0x0) goto LAB_0007950b;\n          iVar38 = Curl_cert_hostcheck((char *)temp,local_a2c);\n          puVar17 = temp;\n          if (iVar38 != 0) {\n            Curl_infof(local_a18," common name: %s (matched)\n",temp);\n            if (temp == (uchar *)0x0) goto LAB_000783a8;\n            puVar17 = (uchar *)0x693;\n            local_a0c = extraout_EDX;\n            CRYPTO_free(temp);\n            local_a44 = (X509 *)connssl->backend->server_cert;\n            goto LAB_000780f3;\n          }\n          pcVar30 = "SSL: certificate subject name \'%s\' does not match target host name \'%s\'";\n        }\n        Curl_failf(local_a18,pcVar30,puVar17,local_a10);\nLAB_000790e4:\n        if (temp != (uchar *)0x0) {\n          CRYPTO_free(temp);\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          puVar36 = puVar43;\n          puVar17 = puVar36;\n          puVar43 = (uchar *)X509_NAME_get_index_by_NID(pXVar14,0xd,(int)puVar36);\n        } while (-1 < (int)puVar43);\n        if (puVar36 == (uchar *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar14,(int)puVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          puVar43 = (uchar *)ASN1_STRING_length(pAVar34);\n          if ((int)puVar43 < 0) goto LAB_0007969a;\n          puVar17 = (uchar *)0x662;\n          temp = (uchar *)CRYPTO_malloc((int)(puVar43 + 1),"vtls/openssl.c",0x662);\n          if (temp != (uchar *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            puVar17 = puVar43;\n            memcpy(temp,pvVar37,(size_t)puVar43);\n            temp[(int)puVar43] = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        puVar43 = (uchar *)ASN1_STRING_to_UTF8(&temp,pAVar34);\nLAB_0007969a:\n        if (temp == (uchar *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)temp);\n        puVar36 = (uchar *)curlx_uztosi(sVar35);\n        if (puVar36 == puVar43) goto LAB_0007908e;\n        Curl_failf(local_a18,"SSL: illegal cert name field");\n        if (temp != "") goto LAB_000790e4;\n      }\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }\n    else {\n      iVar28 = OPENSSL_sk_num(a);\n      if (iVar28 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a0c = puVar43;\n        goto LAB_00079040;\n      }\n      bVar6 = false;\n      iVar29 = 0;\n      bVar7 = false;\n      bVar8 = false;\n      do {\n        while( true ) {\n          piVar22 = (int *)OPENSSL_sk_value(a,iVar29);\n          iVar33 = *piVar22;\n          if (iVar33 == 2) break;\n          if (iVar33 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1]);\n              puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n              if (local_a1c == puVar36) {\n                puVar17 = local_a1c;\n                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);\n                bVar7 = true;\n                if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar7 = true;\n          }\n          else if (iVar33 == iVar38) {\n            local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          iVar29 = iVar29 + 1;\n          local_a0c = puVar43;\n          if (iVar28 == iVar29) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n          bVar8 = true;\nLAB_00079422:\n          sVar32 = strlen((char *)local_a0c);\n          if ((sVar32 != sVar35) ||\n             (iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c), iVar33 == 0))\n          goto LAB_00078351;\n          Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s \"%s\"\n",local_a10,\n                     local_a0c);\n          GENERAL_NAMES_free(a);\n          puVar17 = local_a10;\n          goto LAB_000783a8;\n        }\n        bVar8 = true;\n        iVar29 = iVar29 + 1;\n        local_a0c = puVar43;\n      } while (iVar28 != iVar29);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar6) {\nLAB_000783a8:\n        local_a44 = (X509 *)connssl->backend->server_cert;\n        goto LAB_000780f3;\n      }\n      if ((!bVar7) && (!bVar8)) goto LAB_00079040;\n      Curl_infof(local_a18," subjectAltName does not match %s\n",local_a10);\n      Curl_failf(local_a18,\n                 "SSL: no alternative certificate subject name matches target host name \'%s\'",\n                 local_a10);\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }\nLAB_000794d2:\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    X509_free(pXVar13);\n    connssl->backend->server_cert = (X509 *)0x0;\n    goto LAB_00078251;\n  }\n  if (conn->proxy_ssl[conn->sock[1] != -1].state == ssl_connection_complete) {\n    if ((conn->ssl_config).verifyhost != false) {\n      local_a18 = conn->data;\n      if (conn->proxy_ssl[conn->sock[1] != -1].state == ssl_connection_complete) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }\n  else if ((conn->proxy_ssl_config).verifyhost != false) {\n    local_a18 = conn->data;\nLAB_00078a68:\n    local_a2c = (conn->http_proxy).host.name;\n    local_a10 = (uchar *)(conn->http_proxy).host.dispname;\n    goto LAB_0007829a;\n  }\nLAB_000780f3:\n  pXVar14 = X509_get_issuer_name(local_a44);\n  iVar38 = x509_name_oneline((X509_NAME *)pXVar14,pcVar30,size_00);\n  if (iVar38 == 0) {\n    Curl_infof(data," issuer: %s\n",pcVar30,local_a0c);\n    if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n       (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n      pcVar31 = (data->set).proxy_ssl.issuercert;\n    }\n    else {\n      pcVar31 = (data->set).ssl.issuercert;\n    }\n    if (pcVar31 != (char *)0x0) {\n      pBVar11 = BIO_s_file();\n      pBVar12 = BIO_new(pBVar11);\n      if (pBVar12 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,error_buffer,0x100);\n        Curl_failf(data,"BIO_new return NULL, OpenSSL error %s",error_buffer);\n        X509_free((X509 *)connssl->backend->server_cert);\n        CVar41 = CURLE_OUT_OF_MEMORY;\n        connssl->backend->server_cert = (X509 *)0x0;\n        goto LAB_00078251;\n      }\n      if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n        pcVar30 = (data->set).proxy_ssl.issuercert;\n      }\n      else {\n        pcVar30 = (data->set).ssl.issuercert;\n      }\n      lVar16 = BIO_ctrl(pBVar12,0x6c,3,pcVar30);\n      if (lVar16 < 1) {\n        if (strict) {\n          if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n             (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n            pcVar30 = (data->set).proxy_ssl.issuercert;\n          }\n          else {\n            pcVar30 = (data->set).ssl.issuercert;\n          }\n          Curl_failf(data,"SSL: Unable to open issuer cert (%s)",pcVar30);\n        }\n        BIO_free(pBVar12);\n      }\n      else {\n        pXVar13 = PEM_read_bio_X509(pBVar12,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar13 == (X509 *)0x0) {\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Unable to read issuer cert (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n          pXVar13 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar13,(X509 *)connssl->backend->server_cert);\n          if (iVar38 == 0) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_infof(data," SSL certificate issuer check ok (%s)\n",pcVar30);\n            BIO_free(pBVar12);\n            X509_free(pXVar13);\n            goto LAB_000784c4;\n          }\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Certificate issuer check failed (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n        }\n        X509_free(pXVar13);\n      }\n      X509_free((X509 *)connssl->backend->server_cert);\n      CVar41 = CURLE_SSL_ISSUER_ERROR;\n      connssl->backend->server_cert = (X509 *)0x0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar16 = SSL_get_verify_result((SSL *)connssl->backend->handle);\n    *local_9f4 = lVar16;\n    if (lVar16 == 0) {\n      CVar41 = CURLE_OK;\n      Curl_infof(data," SSL certificate verify ok.\n",pcVar30);\n      cVar39 = (conn->http_proxy).proxytype;\n    }\n    else {\n      cVar39 = (conn->http_proxy).proxytype;\n      if ((cVar39 == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n        cVar2 = (conn->proxy_ssl_config).verifypeer;\n      }\n      else {\n        cVar2 = (conn->ssl_config).verifypeer;\n      }\n      if (cVar2 == '\0') {\n        CVar41 = CURLE_OK;\n        pcVar30 = X509_verify_cert_error_string(lVar16);\n        Curl_infof(data," SSL certificate verify result: %s (%ld), continuing anyway.\n",pcVar30,\n                   lVar16);\n        cVar39 = (conn->http_proxy).proxytype;\n      }\n      else {\n        CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n        if (strict) {\n          pcVar30 = X509_verify_cert_error_string(lVar16);\n          Curl_failf(data,"SSL certificate verify result: %s (%ld)",pcVar30,lVar16);\n          cVar39 = (conn->http_proxy).proxytype;\n        }\n      }\n    }\n  }\n  else if (strict) {\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    Curl_failf(data,"SSL: couldn\'t get X509-issuer name!",puVar17);\n    cVar39 = (conn->http_proxy).proxytype;\n  }\n  else {\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    cVar39 = (conn->http_proxy).proxytype;\n  }\n  if ((cVar39 == CURLPROXY_HTTPS) &&\n     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n    cVar2 = (conn->proxy_ssl_config).verifystatus;\n    psVar18 = connssl->backend;\n  }\n  else {\n    cVar2 = (conn->ssl_config).verifystatus;\n    psVar18 = connssl->backend;\n  }\n  if (cVar2 == '\0') {\nLAB_0007814e:\n    if (!strict) {\n      CVar41 = CURLE_OK;\n    }\n    if ((cVar39 == CURLPROXY_HTTPS) &&\n       (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n      pcVar30 = (data->set).str[0x1f];\n    }\n    else {\n      pcVar30 = (data->set).str[0x1e];\n    }\n    pXVar13 = (X509 *)psVar18->server_cert;\n    ptr = pcVar30;\n    if ((CVar41 == CURLE_OK) && (pcVar30 != (char *)0x0)) {\n      temp = (uchar *)0x0;\n      if (pXVar13 == (X509 *)0x0) {\nLAB_00078208:\n        CVar41 = CURLE_SSL_PINNEDPUBKEYNOTMATCH;\n      }\n      else {\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar20 = i2d_X509_PUBKEY(pXVar19,(uchar **)0x0);\n        if (((int)sVar20 < 1) ||\n           (puVar17 = (uchar *)(*Curl_cmalloc)(sVar20), temp = puVar17, puVar17 == (uchar *)0x0))\n        goto LAB_00078208;\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar21 = i2d_X509_PUBKEY(pXVar19,&temp);\n        if ((sVar20 != sVar21) || ((temp == (uchar *)0x0 || (sVar20 != (int)temp - (int)puVar17))))\n        {\n          (*Curl_cfree)(puVar17);\n          goto LAB_00078208;\n        }\n        CVar41 = Curl_pin_peer_pubkey(data,pcVar30,puVar17,sVar20);\n        (*Curl_cfree)(puVar17);\n        if (CVar41 == CURLE_OK) {\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_00078230;\n        }\n      }\n      Curl_failf(data,"SSL: public key does not match pinned public key!");\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }\nLAB_00078230:\n    X509_free(pXVar13);\n    connssl->backend->server_cert = (X509 *)0x0;\n    connssl->connecting_state = ssl_connect_done;\n    goto LAB_00078251;\n  }\n  pCVar5 = conn->data;\n  lVar16 = SSL_ctrl((SSL *)psVar18->handle,0x46,0,&ptr_1);\n  if (ptr_1 == (char *)0x0) {\n    Curl_failf(pCVar5,"No OCSP response received");\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }\n  else {\n    psig = (ASN1_BIT_STRING *)ptr_1;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&psig,lVar16);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      Curl_failf(pCVar5,"Invalid OCSP response");\n      goto LAB_000795a6;\n    }\n    iVar38 = OCSP_response_status(resp);\n    if (iVar38 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar38);\n      Curl_failf(pCVar5,"Invalid OCSP response status: %s (%d)",pcVar30,iVar38);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain((SSL *)connssl->backend->handle);\n    st = SSL_CTX_get_cert_store((SSL_CTX *)connssl->backend->ctx);\n    iVar38 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar38) {\n      for (iVar38 = 0; iVar28 = OCSP_resp_count(bs), iVar38 < iVar28; iVar38 = iVar38 + 1) {\n        single = OCSP_resp_get0(bs,iVar38);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,(int *)&p,(ASN1_GENERALIZEDTIME **)&q,\n                              (ASN1_GENERALIZEDTIME **)&palg,(ASN1_GENERALIZEDTIME **)&temp);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)palg,(ASN1_GENERALIZEDTIME *)temp,300\n                                       ,-1);\n          if (iVar29 == 0) {\n            Curl_failf(pCVar5,"OCSP response has expired");\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            Curl_infof(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str((long)p);\n              Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      CVar41 = CURLE_OK;\n      OCSP_RESPONSE_free(resp);\n      cVar39 = (conn->http_proxy).proxytype;\n      psVar18 = connssl->backend;\n      goto LAB_0007814e;\n    }\n    Curl_failf(pCVar5,"OCSP response verification failed");\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free((X509 *)connssl->backend->server_cert);\n  CVar41 = CURLE_SSL_INVALIDCERTSTATUS;\n  connssl->backend->server_cert = (X509 *)0x0;\nLAB_00078251:\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CVar41;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "Curl_easy *data;" type_identifier (pointer_declarator "*data" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "Curl_easy *pCVar5;" type_identifier (pointer_declarator "*pCVar5" * identifier) ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "ssl_config_data *psVar9;" type_identifier (pointer_declarator "*psVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "BIO_METHOD *pBVar11;" type_identifier (pointer_declarator "*pBVar11" * identifier) ;) (declaration "BIO *pBVar12;" type_identifier (pointer_declarator "*pBVar12" * identifier) ;) (declaration "X509 *pXVar13;" type_identifier (pointer_declarator "*pXVar13" * identifier) ;) (declaration "X509_NAME *pXVar14;" type_identifier (pointer_declarator "*pXVar14" * identifier) ;) (declaration "ASN1_TIME *pAVar15;" type_identifier (pointer_declarator "*pAVar15" * identifier) ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "uchar *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "ssl_backend_data *psVar18;" type_identifier (pointer_declarator "*psVar18" * identifier) ;) (declaration "X509_PUBKEY *pXVar19;" type_identifier (pointer_declarator "*pXVar19" * identifier) ;) (declaration "size_t sVar20;" primitive_type identifier ;) (declaration "size_t sVar21;" primitive_type identifier ;) (declaration "GENERAL_NAMES *a;" type_identifier (pointer_declarator "*a" * identifier) ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "BIO *out;" type_identifier (pointer_declarator "*out" * identifier) ;) (declaration "undefined4 uVar23;" type_identifier identifier ;) (declaration "ASN1_INTEGER *pAVar24;" type_identifier (pointer_declarator "*pAVar24" * identifier) ;) (declaration "X509_EXTENSION *ex;" type_identifier (pointer_declarator "*ex" * identifier) ;) (declaration "BIO *out_00;" type_identifier (pointer_declarator "*out_00" * identifier) ;) (declaration "ASN1_OBJECT *a_00;" type_identifier (pointer_declarator "*a_00" * identifier) ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "OCSP_RESPONSE *resp;" type_identifier (pointer_declarator "*resp" * identifier) ;) (declaration "OCSP_BASICRESP *bs;" type_identifier (pointer_declarator "*bs" * identifier) ;) (declaration "stack_st_X509 *psVar27;" type_identifier (pointer_declarator "*psVar27" * identifier) ;) (declaration "X509_STORE *st;" type_identifier (pointer_declarator "*st" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "OCSP_SINGLERESP *single;" type_identifier (pointer_declarator "*single" * identifier) ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "char *pcVar30;" primitive_type (pointer_declarator "*pcVar30" * identifier) ;) (declaration "EVP_PKEY *pkey;" type_identifier (pointer_declarator "*pkey" * identifier) ;) (declaration "ASN1_OCTET_STRING *v;" type_identifier (pointer_declarator "*v" * identifier) ;) (declaration "char *pcVar31;" primitive_type (pointer_declarator "*pcVar31" * identifier) ;) (declaration "size_t sVar32;" primitive_type identifier ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "X509_NAME_ENTRY *ne;" type_identifier (pointer_declarator "*ne" * identifier) ;) (declaration "ASN1_STRING *pAVar34;" type_identifier (pointer_declarator "*pAVar34" * identifier) ;) (declaration "size_t sVar35;" primitive_type identifier ;) (declaration "uchar *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "void *pvVar37;" primitive_type (pointer_declarator "*pvVar37" * identifier) ;) (declaration "ulong e;" type_identifier identifier ;) (declaration "int iVar38;" primitive_type identifier ;) (declaration "size_t size;" primitive_type identifier ;) (declaration "size_t size_00;" primitive_type identifier ;) (declaration "curl_proxytype cVar39;" type_identifier identifier ;) (declaration "uint uVar40;" type_identifier identifier ;) (declaration "uchar *extraout_EDX;" type_identifier (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "CURLcode CVar41;" type_identifier identifier ;) (declaration "uint *puVar42;" type_identifier (pointer_declarator "*puVar42" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "uchar *puVar43;" type_identifier (pointer_declarator "*puVar43" * identifier) ;) (declaration "X509 *local_a44;" type_identifier (pointer_declarator "*local_a44" * identifier) ;) (declaration "int local_a40;" primitive_type identifier ;) (declaration "char *local_a2c;" primitive_type (pointer_declarator "*local_a2c" * identifier) ;) (declaration "int local_a28;" primitive_type identifier ;) (declaration "in6_addr *local_a24;" type_identifier (pointer_declarator "*local_a24" * identifier) ;) (declaration "undefined *local_a20;" type_identifier (pointer_declarator "*local_a20" * identifier) ;) (declaration "uchar *local_a1c;" type_identifier (pointer_declarator "*local_a1c" * identifier) ;) (declaration "Curl_easy *local_a18;" type_identifier (pointer_declarator "*local_a18" * identifier) ;) (declaration "uchar *local_a10;" type_identifier (pointer_declarator "*local_a10" * identifier) ;) (declaration "uchar *local_a0c;" type_identifier (pointer_declarator "*local_a0c" * identifier) ;) (declaration "long *local_9f4;" (sized_type_specifier "long" long) (pointer_declarator "*local_9f4" * identifier) ;) (declaration "char *ptr;" primitive_type (pointer_declarator "*ptr" * identifier) ;) (declaration "char *ptr_1;" primitive_type (pointer_declarator "*ptr_1" * identifier) ;) (declaration "ASN1_BIT_STRING *psig;" type_identifier (pointer_declarator "*psig" * identifier) ;) (declaration "BIGNUM *p;" type_identifier (pointer_declarator "*p" * identifier) ;) (declaration "BIGNUM *q;" type_identifier (pointer_declarator "*q" * identifier) ;) (declaration "X509_ALGOR *palg;" type_identifier (pointer_declarator "*palg" * identifier) ;) (declaration "uchar *temp;" type_identifier (pointer_declarator "*temp" * identifier) ;) (declaration "in6_addr addr;" type_identifier identifier ;) (declaration "char namebuf [128];" primitive_type (array_declarator "namebuf [128]" identifier [ number_literal ]) ;) (declaration "char error_buffer [256];" primitive_type (array_declarator "error_buffer [256]" identifier [ number_literal ]) ;) (declaration "char buffer [2048];" primitive_type (array_declarator "buffer [2048]" identifier [ number_literal ]) ;) (expression_statement "pcVar30 = error_buffer;" (assignment_expression "pcVar30 = error_buffer" identifier = identifier) ;) (expression_statement "data = conn->data;" (assignment_expression "data = conn->data" identifier = (field_expression "conn->data" identifier -> field_identifier)) ;) (expression_statement "iVar3 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar3 = *(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) ))))) ;) (for_statement "for (iVar38 = 0x3f; pcVar30 = pcVar30 + 4, iVar38 != 0; iVar38 = iVar38 + -1) {\n    pcVar30[0] = '\0';\n    pcVar30[1] = '\0';\n    pcVar30[2] = '\0';\n    pcVar30[3] = '\0';\n  }" for ( (assignment_expression "iVar38 = 0x3f" identifier = number_literal) ; (comma_expression "pcVar30 = pcVar30 + 4, iVar38 != 0" (assignment_expression "pcVar30 = pcVar30 + 4" identifier = (binary_expression "pcVar30 + 4" identifier + number_literal)) , (binary_expression "iVar38 != 0" identifier != number_literal)) ; (assignment_expression "iVar38 = iVar38 + -1" identifier = (binary_expression "iVar38 + -1" identifier + number_literal)) ) (compound_statement "{\n    pcVar30[0] = '\0';\n    pcVar30[1] = '\0';\n    pcVar30[2] = '\0';\n    pcVar30[3] = '\0';\n  }" { (expression_statement "pcVar30[0] = '\0';" (assignment_expression "pcVar30[0] = '\0'" (subscript_expression "pcVar30[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar30[1] = '\0';" (assignment_expression "pcVar30[1] = '\0'" (subscript_expression "pcVar30[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar30[2] = '\0';" (assignment_expression "pcVar30[2] = '\0'" (subscript_expression "pcVar30[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar30[3] = '\0';" (assignment_expression "pcVar30[3] = '\0'" (subscript_expression "pcVar30[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "error_buffer[0] = '\0';" (assignment_expression "error_buffer[0] = '\0'" (subscript_expression "error_buffer[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "error_buffer[1] = '\0';" (assignment_expression "error_buffer[1] = '\0'" (subscript_expression "error_buffer[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "error_buffer[2] = '\0';" (assignment_expression "error_buffer[2] = '\0'" (subscript_expression "error_buffer[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "error_buffer[3] = '\0';" (assignment_expression "error_buffer[3] = '\0'" (subscript_expression "error_buffer[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n    psVar9 = &(data->set).proxy_ssl;\n  }\n  else {\n    psVar9 = &(data->set).ssl;\n  }" if (parenthesized_expression "(((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete))" ( (binary_expression "((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" (parenthesized_expression "((conn->http_proxy).proxytype == CURLPROXY_HTTPS)" ( (binary_expression "(conn->http_proxy).proxytype == CURLPROXY_HTTPS" (field_expression "(conn->http_proxy).proxytype" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier) == identifier) )) && (parenthesized_expression "(conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" ( (binary_expression "conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete" (field_expression "conn->proxy_ssl[conn->sock[1] != -1].state" (subscript_expression "conn->proxy_ssl[conn->sock[1] != -1]" (field_expression "conn->proxy_ssl" identifier -> field_identifier) [ (binary_expression "conn->sock[1] != -1" (subscript_expression "conn->sock[1]" (field_expression "conn->sock" identifier -> field_identifier) [ number_literal ]) != number_literal) ]) . field_identifier) != identifier) ))) )) (compound_statement "{\n    psVar9 = &(data->set).proxy_ssl;\n  }" { (expression_statement "psVar9 = &(data->set).proxy_ssl;" (assignment_expression "psVar9 = &(data->set).proxy_ssl" identifier = (pointer_expression "&(data->set).proxy_ssl" & (field_expression "(data->set).proxy_ssl" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier))) ;) }) (else_clause "else {\n    psVar9 = &(data->set).ssl;\n  }" else (compound_statement "{\n    psVar9 = &(data->set).ssl;\n  }" { (expression_statement "psVar9 = &(data->set).ssl;" (assignment_expression "psVar9 = &(data->set).ssl" identifier = (pointer_expression "&(data->set).ssl" & (field_expression "(data->set).ssl" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier))) ;) }))) (expression_statement "local_9f4 = &psVar9->certverifyresult;" (assignment_expression "local_9f4 = &psVar9->certverifyresult" identifier = (pointer_expression "&psVar9->certverifyresult" & (field_expression "psVar9->certverifyresult" identifier -> field_identifier))) ;) (expression_statement "pBVar11 = BIO_s_mem();" (assignment_expression "pBVar11 = BIO_s_mem()" identifier = (call_expression "BIO_s_mem()" identifier (argument_list "()" ( )))) ;) (expression_statement "pBVar12 = BIO_new(pBVar11);" (assignment_expression "pBVar12 = BIO_new(pBVar11)" identifier = (call_expression "BIO_new(pBVar11)" identifier (argument_list "(pBVar11)" ( identifier )))) ;) (if_statement "if ((data->set).ssl.certinfo != false) {\n    pCVar5 = conn->data;\n    psVar27 = SSL_get_peer_cert_chain((SSL *)connssl->backend->handle);\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar38 = OPENSSL_sk_num(psVar27);\n      CVar41 = Curl_ssl_init_certinfo(pCVar5,iVar38);\n      if (CVar41 == CURLE_OK) {\n        pBVar11 = BIO_s_mem();\n        out = BIO_new(pBVar11);\n        if (0 < iVar38) {\n          local_a40 = 0;\n          do {\n            pXVar13 = (X509 *)OPENSSL_sk_value(psVar27,local_a40);\n            psig = (ASN1_BIT_STRING *)0x0;\n            pXVar14 = X509_get_subject_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Subject",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar14 = X509_get_issuer_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Issuer",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar13);\n            BIO_printf(out,"%lx",uVar23);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Version",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar13);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,"-");\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar1 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,"%02x",(uint)*pbVar1);\n              } while (iVar28 < pAVar24->length);\n            }\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Serial Number",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            palg = (X509_ALGOR *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&psig,&palg,pXVar13);\n              X509_signature_print(out,(X509_ALGOR *)palg,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (palg != (X509_ALGOR *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);\n                sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar13);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a28 = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a28 < iVar28; local_a28 = local_a28 + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);\n                pBVar11 = BIO_s_mem();\n                out_00 = BIO_new(pBVar11);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(namebuf,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&temp);\n                uVar25 = 0;\n                uVar40 = *(uint *)temp;\n                puVar42 = (uint *)temp;\n                local_a1c = (uchar *)buffer;\n                if (uVar40 != 0) {\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }\n                Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);\n                BIO_free(out_00);\n              }\n            }\n            pAVar15 = (ASN1_TIME *)X509_get0_notBefore(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Start date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar15 = (ASN1_TIME *)X509_get0_notAfter(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Expire date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar13);\n            if (pkey == (EVP_PKEY *)0x0) {\n              Curl_infof(pCVar5,"   Unable to load public key\n");\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&p,&q,&palg);\n                pcVar30 = "dh";\n                DH_get0_key(uVar23,&temp,0);\nLAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);\n                pcVar31 = "pub_key";\nLAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (psig != (ASN1_BIT_STRING *)0x0) {\n              iVar28 = 0;\n              if (0 < psig->length) {\n                do {\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                } while (iVar28 < psig->length);\n              }\n              sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n              Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Signature",ptr_1,sVar20);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar13);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Cert",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a40 = local_a40 + 1;\n          } while (iVar38 != local_a40);\n        }\n        BIO_free(out);\n      }\n    }\n  }" if (parenthesized_expression "((data->set).ssl.certinfo != false)" ( (binary_expression "(data->set).ssl.certinfo != false" (field_expression "(data->set).ssl.certinfo" (field_expression "(data->set).ssl" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) . field_identifier) != false) )) (compound_statement "{\n    pCVar5 = conn->data;\n    psVar27 = SSL_get_peer_cert_chain((SSL *)connssl->backend->handle);\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar38 = OPENSSL_sk_num(psVar27);\n      CVar41 = Curl_ssl_init_certinfo(pCVar5,iVar38);\n      if (CVar41 == CURLE_OK) {\n        pBVar11 = BIO_s_mem();\n        out = BIO_new(pBVar11);\n        if (0 < iVar38) {\n          local_a40 = 0;\n          do {\n            pXVar13 = (X509 *)OPENSSL_sk_value(psVar27,local_a40);\n            psig = (ASN1_BIT_STRING *)0x0;\n            pXVar14 = X509_get_subject_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Subject",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar14 = X509_get_issuer_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Issuer",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar13);\n            BIO_printf(out,"%lx",uVar23);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Version",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar13);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,"-");\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar1 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,"%02x",(uint)*pbVar1);\n              } while (iVar28 < pAVar24->length);\n            }\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Serial Number",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            palg = (X509_ALGOR *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&psig,&palg,pXVar13);\n              X509_signature_print(out,(X509_ALGOR *)palg,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (palg != (X509_ALGOR *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);\n                sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar13);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a28 = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a28 < iVar28; local_a28 = local_a28 + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);\n                pBVar11 = BIO_s_mem();\n                out_00 = BIO_new(pBVar11);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(namebuf,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&temp);\n                uVar25 = 0;\n                uVar40 = *(uint *)temp;\n                puVar42 = (uint *)temp;\n                local_a1c = (uchar *)buffer;\n                if (uVar40 != 0) {\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }\n                Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);\n                BIO_free(out_00);\n              }\n            }\n            pAVar15 = (ASN1_TIME *)X509_get0_notBefore(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Start date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar15 = (ASN1_TIME *)X509_get0_notAfter(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Expire date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar13);\n            if (pkey == (EVP_PKEY *)0x0) {\n              Curl_infof(pCVar5,"   Unable to load public key\n");\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&p,&q,&palg);\n                pcVar30 = "dh";\n                DH_get0_key(uVar23,&temp,0);\nLAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);\n                pcVar31 = "pub_key";\nLAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (psig != (ASN1_BIT_STRING *)0x0) {\n              iVar28 = 0;\n              if (0 < psig->length) {\n                do {\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                } while (iVar28 < psig->length);\n              }\n              sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n              Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Signature",ptr_1,sVar20);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar13);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Cert",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a40 = local_a40 + 1;\n          } while (iVar38 != local_a40);\n        }\n        BIO_free(out);\n      }\n    }\n  }" { (expression_statement "pCVar5 = conn->data;" (assignment_expression "pCVar5 = conn->data" identifier = (field_expression "conn->data" identifier -> field_identifier)) ;) (expression_statement "psVar27 = SSL_get_peer_cert_chain((SSL *)connssl->backend->handle);" (assignment_expression "psVar27 = SSL_get_peer_cert_chain((SSL *)connssl->backend->handle)" identifier = (call_expression "SSL_get_peer_cert_chain((SSL *)connssl->backend->handle)" identifier (argument_list "((SSL *)connssl->backend->handle)" ( (cast_expression "(SSL *)connssl->backend->handle" ( (type_descriptor "SSL *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connssl->backend->handle" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier)) )))) ;) (if_statement "if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar38 = OPENSSL_sk_num(psVar27);\n      CVar41 = Curl_ssl_init_certinfo(pCVar5,iVar38);\n      if (CVar41 == CURLE_OK) {\n        pBVar11 = BIO_s_mem();\n        out = BIO_new(pBVar11);\n        if (0 < iVar38) {\n          local_a40 = 0;\n          do {\n            pXVar13 = (X509 *)OPENSSL_sk_value(psVar27,local_a40);\n            psig = (ASN1_BIT_STRING *)0x0;\n            pXVar14 = X509_get_subject_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Subject",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar14 = X509_get_issuer_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Issuer",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar13);\n            BIO_printf(out,"%lx",uVar23);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Version",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar13);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,"-");\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar1 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,"%02x",(uint)*pbVar1);\n              } while (iVar28 < pAVar24->length);\n            }\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Serial Number",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            palg = (X509_ALGOR *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&psig,&palg,pXVar13);\n              X509_signature_print(out,(X509_ALGOR *)palg,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (palg != (X509_ALGOR *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);\n                sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar13);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a28 = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a28 < iVar28; local_a28 = local_a28 + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);\n                pBVar11 = BIO_s_mem();\n                out_00 = BIO_new(pBVar11);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(namebuf,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&temp);\n                uVar25 = 0;\n                uVar40 = *(uint *)temp;\n                puVar42 = (uint *)temp;\n                local_a1c = (uchar *)buffer;\n                if (uVar40 != 0) {\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }\n                Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);\n                BIO_free(out_00);\n              }\n            }\n            pAVar15 = (ASN1_TIME *)X509_get0_notBefore(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Start date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar15 = (ASN1_TIME *)X509_get0_notAfter(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Expire date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar13);\n            if (pkey == (EVP_PKEY *)0x0) {\n              Curl_infof(pCVar5,"   Unable to load public key\n");\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&p,&q,&palg);\n                pcVar30 = "dh";\n                DH_get0_key(uVar23,&temp,0);\nLAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);\n                pcVar31 = "pub_key";\nLAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (psig != (ASN1_BIT_STRING *)0x0) {\n              iVar28 = 0;\n              if (0 < psig->length) {\n                do {\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                } while (iVar28 < psig->length);\n              }\n              sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n              Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Signature",ptr_1,sVar20);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar13);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Cert",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a40 = local_a40 + 1;\n          } while (iVar38 != local_a40);\n        }\n        BIO_free(out);\n      }\n    }" if (parenthesized_expression "(psVar27 != (stack_st_X509 *)0x0)" ( (binary_expression "psVar27 != (stack_st_X509 *)0x0" identifier != (cast_expression "(stack_st_X509 *)0x0" ( (type_descriptor "stack_st_X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar38 = OPENSSL_sk_num(psVar27);\n      CVar41 = Curl_ssl_init_certinfo(pCVar5,iVar38);\n      if (CVar41 == CURLE_OK) {\n        pBVar11 = BIO_s_mem();\n        out = BIO_new(pBVar11);\n        if (0 < iVar38) {\n          local_a40 = 0;\n          do {\n            pXVar13 = (X509 *)OPENSSL_sk_value(psVar27,local_a40);\n            psig = (ASN1_BIT_STRING *)0x0;\n            pXVar14 = X509_get_subject_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Subject",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar14 = X509_get_issuer_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Issuer",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar13);\n            BIO_printf(out,"%lx",uVar23);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Version",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar13);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,"-");\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar1 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,"%02x",(uint)*pbVar1);\n              } while (iVar28 < pAVar24->length);\n            }\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Serial Number",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            palg = (X509_ALGOR *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&psig,&palg,pXVar13);\n              X509_signature_print(out,(X509_ALGOR *)palg,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (palg != (X509_ALGOR *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);\n                sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar13);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a28 = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a28 < iVar28; local_a28 = local_a28 + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);\n                pBVar11 = BIO_s_mem();\n                out_00 = BIO_new(pBVar11);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(namebuf,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&temp);\n                uVar25 = 0;\n                uVar40 = *(uint *)temp;\n                puVar42 = (uint *)temp;\n                local_a1c = (uchar *)buffer;\n                if (uVar40 != 0) {\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }\n                Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);\n                BIO_free(out_00);\n              }\n            }\n            pAVar15 = (ASN1_TIME *)X509_get0_notBefore(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Start date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar15 = (ASN1_TIME *)X509_get0_notAfter(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Expire date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar13);\n            if (pkey == (EVP_PKEY *)0x0) {\n              Curl_infof(pCVar5,"   Unable to load public key\n");\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&p,&q,&palg);\n                pcVar30 = "dh";\n                DH_get0_key(uVar23,&temp,0);\nLAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);\n                pcVar31 = "pub_key";\nLAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (psig != (ASN1_BIT_STRING *)0x0) {\n              iVar28 = 0;\n              if (0 < psig->length) {\n                do {\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                } while (iVar28 < psig->length);\n              }\n              sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n              Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Signature",ptr_1,sVar20);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar13);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Cert",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a40 = local_a40 + 1;\n          } while (iVar38 != local_a40);\n        }\n        BIO_free(out);\n      }\n    }" { (expression_statement "iVar38 = OPENSSL_sk_num(psVar27);" (assignment_expression "iVar38 = OPENSSL_sk_num(psVar27)" identifier = (call_expression "OPENSSL_sk_num(psVar27)" identifier (argument_list "(psVar27)" ( identifier )))) ;) (expression_statement "CVar41 = Curl_ssl_init_certinfo(pCVar5,iVar38);" (assignment_expression "CVar41 = Curl_ssl_init_certinfo(pCVar5,iVar38)" identifier = (call_expression "Curl_ssl_init_certinfo(pCVar5,iVar38)" identifier (argument_list "(pCVar5,iVar38)" ( identifier , identifier )))) ;) (if_statement "if (CVar41 == CURLE_OK) {\n        pBVar11 = BIO_s_mem();\n        out = BIO_new(pBVar11);\n        if (0 < iVar38) {\n          local_a40 = 0;\n          do {\n            pXVar13 = (X509 *)OPENSSL_sk_value(psVar27,local_a40);\n            psig = (ASN1_BIT_STRING *)0x0;\n            pXVar14 = X509_get_subject_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Subject",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar14 = X509_get_issuer_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Issuer",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar13);\n            BIO_printf(out,"%lx",uVar23);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Version",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar13);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,"-");\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar1 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,"%02x",(uint)*pbVar1);\n              } while (iVar28 < pAVar24->length);\n            }\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Serial Number",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            palg = (X509_ALGOR *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&psig,&palg,pXVar13);\n              X509_signature_print(out,(X509_ALGOR *)palg,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (palg != (X509_ALGOR *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);\n                sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar13);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a28 = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a28 < iVar28; local_a28 = local_a28 + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);\n                pBVar11 = BIO_s_mem();\n                out_00 = BIO_new(pBVar11);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(namebuf,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&temp);\n                uVar25 = 0;\n                uVar40 = *(uint *)temp;\n                puVar42 = (uint *)temp;\n                local_a1c = (uchar *)buffer;\n                if (uVar40 != 0) {\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }\n                Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);\n                BIO_free(out_00);\n              }\n            }\n            pAVar15 = (ASN1_TIME *)X509_get0_notBefore(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Start date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar15 = (ASN1_TIME *)X509_get0_notAfter(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Expire date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar13);\n            if (pkey == (EVP_PKEY *)0x0) {\n              Curl_infof(pCVar5,"   Unable to load public key\n");\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&p,&q,&palg);\n                pcVar30 = "dh";\n                DH_get0_key(uVar23,&temp,0);\nLAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);\n                pcVar31 = "pub_key";\nLAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (psig != (ASN1_BIT_STRING *)0x0) {\n              iVar28 = 0;\n              if (0 < psig->length) {\n                do {\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                } while (iVar28 < psig->length);\n              }\n              sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n              Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Signature",ptr_1,sVar20);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar13);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Cert",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a40 = local_a40 + 1;\n          } while (iVar38 != local_a40);\n        }\n        BIO_free(out);\n      }" if (parenthesized_expression "(CVar41 == CURLE_OK)" ( (binary_expression "CVar41 == CURLE_OK" identifier == identifier) )) (compound_statement "{\n        pBVar11 = BIO_s_mem();\n        out = BIO_new(pBVar11);\n        if (0 < iVar38) {\n          local_a40 = 0;\n          do {\n            pXVar13 = (X509 *)OPENSSL_sk_value(psVar27,local_a40);\n            psig = (ASN1_BIT_STRING *)0x0;\n            pXVar14 = X509_get_subject_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Subject",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar14 = X509_get_issuer_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Issuer",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar13);\n            BIO_printf(out,"%lx",uVar23);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Version",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar13);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,"-");\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar1 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,"%02x",(uint)*pbVar1);\n              } while (iVar28 < pAVar24->length);\n            }\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Serial Number",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            palg = (X509_ALGOR *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&psig,&palg,pXVar13);\n              X509_signature_print(out,(X509_ALGOR *)palg,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (palg != (X509_ALGOR *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);\n                sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar13);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a28 = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a28 < iVar28; local_a28 = local_a28 + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);\n                pBVar11 = BIO_s_mem();\n                out_00 = BIO_new(pBVar11);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(namebuf,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&temp);\n                uVar25 = 0;\n                uVar40 = *(uint *)temp;\n                puVar42 = (uint *)temp;\n                local_a1c = (uchar *)buffer;\n                if (uVar40 != 0) {\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }\n                Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);\n                BIO_free(out_00);\n              }\n            }\n            pAVar15 = (ASN1_TIME *)X509_get0_notBefore(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Start date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar15 = (ASN1_TIME *)X509_get0_notAfter(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Expire date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar13);\n            if (pkey == (EVP_PKEY *)0x0) {\n              Curl_infof(pCVar5,"   Unable to load public key\n");\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&p,&q,&palg);\n                pcVar30 = "dh";\n                DH_get0_key(uVar23,&temp,0);\nLAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);\n                pcVar31 = "pub_key";\nLAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (psig != (ASN1_BIT_STRING *)0x0) {\n              iVar28 = 0;\n              if (0 < psig->length) {\n                do {\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                } while (iVar28 < psig->length);\n              }\n              sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n              Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Signature",ptr_1,sVar20);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar13);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Cert",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a40 = local_a40 + 1;\n          } while (iVar38 != local_a40);\n        }\n        BIO_free(out);\n      }" { (expression_statement "pBVar11 = BIO_s_mem();" (assignment_expression "pBVar11 = BIO_s_mem()" identifier = (call_expression "BIO_s_mem()" identifier (argument_list "()" ( )))) ;) (expression_statement "out = BIO_new(pBVar11);" (assignment_expression "out = BIO_new(pBVar11)" identifier = (call_expression "BIO_new(pBVar11)" identifier (argument_list "(pBVar11)" ( identifier )))) ;) (if_statement "if (0 < iVar38) {\n          local_a40 = 0;\n          do {\n            pXVar13 = (X509 *)OPENSSL_sk_value(psVar27,local_a40);\n            psig = (ASN1_BIT_STRING *)0x0;\n            pXVar14 = X509_get_subject_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Subject",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar14 = X509_get_issuer_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Issuer",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar13);\n            BIO_printf(out,"%lx",uVar23);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Version",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar13);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,"-");\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar1 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,"%02x",(uint)*pbVar1);\n              } while (iVar28 < pAVar24->length);\n            }\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Serial Number",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            palg = (X509_ALGOR *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&psig,&palg,pXVar13);\n              X509_signature_print(out,(X509_ALGOR *)palg,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (palg != (X509_ALGOR *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);\n                sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar13);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a28 = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a28 < iVar28; local_a28 = local_a28 + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);\n                pBVar11 = BIO_s_mem();\n                out_00 = BIO_new(pBVar11);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(namebuf,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&temp);\n                uVar25 = 0;\n                uVar40 = *(uint *)temp;\n                puVar42 = (uint *)temp;\n                local_a1c = (uchar *)buffer;\n                if (uVar40 != 0) {\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }\n                Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);\n                BIO_free(out_00);\n              }\n            }\n            pAVar15 = (ASN1_TIME *)X509_get0_notBefore(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Start date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar15 = (ASN1_TIME *)X509_get0_notAfter(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Expire date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar13);\n            if (pkey == (EVP_PKEY *)0x0) {\n              Curl_infof(pCVar5,"   Unable to load public key\n");\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&p,&q,&palg);\n                pcVar30 = "dh";\n                DH_get0_key(uVar23,&temp,0);\nLAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);\n                pcVar31 = "pub_key";\nLAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (psig != (ASN1_BIT_STRING *)0x0) {\n              iVar28 = 0;\n              if (0 < psig->length) {\n                do {\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                } while (iVar28 < psig->length);\n              }\n              sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n              Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Signature",ptr_1,sVar20);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar13);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Cert",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a40 = local_a40 + 1;\n          } while (iVar38 != local_a40);\n        }" if (parenthesized_expression "(0 < iVar38)" ( (binary_expression "0 < iVar38" number_literal < identifier) )) (compound_statement "{\n          local_a40 = 0;\n          do {\n            pXVar13 = (X509 *)OPENSSL_sk_value(psVar27,local_a40);\n            psig = (ASN1_BIT_STRING *)0x0;\n            pXVar14 = X509_get_subject_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Subject",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar14 = X509_get_issuer_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Issuer",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar13);\n            BIO_printf(out,"%lx",uVar23);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Version",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar13);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,"-");\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar1 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,"%02x",(uint)*pbVar1);\n              } while (iVar28 < pAVar24->length);\n            }\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Serial Number",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            palg = (X509_ALGOR *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&psig,&palg,pXVar13);\n              X509_signature_print(out,(X509_ALGOR *)palg,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (palg != (X509_ALGOR *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);\n                sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar13);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a28 = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a28 < iVar28; local_a28 = local_a28 + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);\n                pBVar11 = BIO_s_mem();\n                out_00 = BIO_new(pBVar11);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(namebuf,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&temp);\n                uVar25 = 0;\n                uVar40 = *(uint *)temp;\n                puVar42 = (uint *)temp;\n                local_a1c = (uchar *)buffer;\n                if (uVar40 != 0) {\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }\n                Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);\n                BIO_free(out_00);\n              }\n            }\n            pAVar15 = (ASN1_TIME *)X509_get0_notBefore(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Start date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar15 = (ASN1_TIME *)X509_get0_notAfter(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Expire date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar13);\n            if (pkey == (EVP_PKEY *)0x0) {\n              Curl_infof(pCVar5,"   Unable to load public key\n");\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&p,&q,&palg);\n                pcVar30 = "dh";\n                DH_get0_key(uVar23,&temp,0);\nLAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);\n                pcVar31 = "pub_key";\nLAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (psig != (ASN1_BIT_STRING *)0x0) {\n              iVar28 = 0;\n              if (0 < psig->length) {\n                do {\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                } while (iVar28 < psig->length);\n              }\n              sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n              Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Signature",ptr_1,sVar20);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar13);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Cert",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a40 = local_a40 + 1;\n          } while (iVar38 != local_a40);\n        }" { (expression_statement "local_a40 = 0;" (assignment_expression "local_a40 = 0" identifier = number_literal) ;) (do_statement "do {\n            pXVar13 = (X509 *)OPENSSL_sk_value(psVar27,local_a40);\n            psig = (ASN1_BIT_STRING *)0x0;\n            pXVar14 = X509_get_subject_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Subject",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar14 = X509_get_issuer_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Issuer",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar13);\n            BIO_printf(out,"%lx",uVar23);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Version",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar13);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,"-");\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar1 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,"%02x",(uint)*pbVar1);\n              } while (iVar28 < pAVar24->length);\n            }\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Serial Number",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            palg = (X509_ALGOR *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&psig,&palg,pXVar13);\n              X509_signature_print(out,(X509_ALGOR *)palg,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (palg != (X509_ALGOR *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);\n                sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar13);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a28 = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a28 < iVar28; local_a28 = local_a28 + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);\n                pBVar11 = BIO_s_mem();\n                out_00 = BIO_new(pBVar11);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(namebuf,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&temp);\n                uVar25 = 0;\n                uVar40 = *(uint *)temp;\n                puVar42 = (uint *)temp;\n                local_a1c = (uchar *)buffer;\n                if (uVar40 != 0) {\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }\n                Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);\n                BIO_free(out_00);\n              }\n            }\n            pAVar15 = (ASN1_TIME *)X509_get0_notBefore(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Start date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar15 = (ASN1_TIME *)X509_get0_notAfter(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Expire date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar13);\n            if (pkey == (EVP_PKEY *)0x0) {\n              Curl_infof(pCVar5,"   Unable to load public key\n");\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&p,&q,&palg);\n                pcVar30 = "dh";\n                DH_get0_key(uVar23,&temp,0);\nLAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);\n                pcVar31 = "pub_key";\nLAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (psig != (ASN1_BIT_STRING *)0x0) {\n              iVar28 = 0;\n              if (0 < psig->length) {\n                do {\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                } while (iVar28 < psig->length);\n              }\n              sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n              Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Signature",ptr_1,sVar20);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar13);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Cert",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a40 = local_a40 + 1;\n          } while (iVar38 != local_a40);" do (compound_statement "{\n            pXVar13 = (X509 *)OPENSSL_sk_value(psVar27,local_a40);\n            psig = (ASN1_BIT_STRING *)0x0;\n            pXVar14 = X509_get_subject_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Subject",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar14 = X509_get_issuer_name(pXVar13);\n            X509_NAME_print_ex(out,pXVar14,0,0x82031f);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Issuer",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar13);\n            BIO_printf(out,"%lx",uVar23);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Version",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar13);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,"-");\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar1 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,"%02x",(uint)*pbVar1);\n              } while (iVar28 < pAVar24->length);\n            }\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Serial Number",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            palg = (X509_ALGOR *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&psig,&palg,pXVar13);\n              X509_signature_print(out,(X509_ALGOR *)palg,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (palg != (X509_ALGOR *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);\n                sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar13);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a28 = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a28 < iVar28; local_a28 = local_a28 + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);\n                pBVar11 = BIO_s_mem();\n                out_00 = BIO_new(pBVar11);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(namebuf,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&temp);\n                uVar25 = 0;\n                uVar40 = *(uint *)temp;\n                puVar42 = (uint *)temp;\n                local_a1c = (uchar *)buffer;\n                if (uVar40 != 0) {\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }\n                Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);\n                BIO_free(out_00);\n              }\n            }\n            pAVar15 = (ASN1_TIME *)X509_get0_notBefore(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Start date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar15 = (ASN1_TIME *)X509_get0_notAfter(pXVar13);\n            ASN1_TIME_print(out,pAVar15);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Expire date",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar13);\n            if (pkey == (EVP_PKEY *)0x0) {\n              Curl_infof(pCVar5,"   Unable to load public key\n");\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&p,&q,&palg);\n                pcVar30 = "dh";\n                DH_get0_key(uVar23,&temp,0);\nLAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);\n                pcVar31 = "pub_key";\nLAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (psig != (ASN1_BIT_STRING *)0x0) {\n              iVar28 = 0;\n              if (0 < psig->length) {\n                do {\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                } while (iVar28 < psig->length);\n              }\n              sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n              Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Signature",ptr_1,sVar20);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar13);\n            sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n            Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Cert",ptr_1,sVar20);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a40 = local_a40 + 1;\n          }" { (expression_statement "pXVar13 = (X509 *)OPENSSL_sk_value(psVar27,local_a40);" (assignment_expression "pXVar13 = (X509 *)OPENSSL_sk_value(psVar27,local_a40)" identifier = (cast_expression "(X509 *)OPENSSL_sk_value(psVar27,local_a40)" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_value(psVar27,local_a40)" identifier (argument_list "(psVar27,local_a40)" ( identifier , identifier ))))) ;) (expression_statement "psig = (ASN1_BIT_STRING *)0x0;" (assignment_expression "psig = (ASN1_BIT_STRING *)0x0" identifier = (cast_expression "(ASN1_BIT_STRING *)0x0" ( (type_descriptor "ASN1_BIT_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pXVar14 = X509_get_subject_name(pXVar13);" (assignment_expression "pXVar14 = X509_get_subject_name(pXVar13)" identifier = (call_expression "X509_get_subject_name(pXVar13)" identifier (argument_list "(pXVar13)" ( identifier )))) ;) (expression_statement "X509_NAME_print_ex(out,pXVar14,0,0x82031f);" (call_expression "X509_NAME_print_ex(out,pXVar14,0,0x82031f)" identifier (argument_list "(out,pXVar14,0,0x82031f)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "sVar20 = BIO_ctrl(out,3,0,&ptr_1);" (assignment_expression "sVar20 = BIO_ctrl(out,3,0,&ptr_1)" identifier = (call_expression "BIO_ctrl(out,3,0,&ptr_1)" identifier (argument_list "(out,3,0,&ptr_1)" ( identifier , number_literal , number_literal , (pointer_expression "&ptr_1" & identifier) )))) ;) (expression_statement "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Subject",ptr_1,sVar20);" (call_expression "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Subject",ptr_1,sVar20)" identifier (argument_list "(pCVar5,local_a40,"Subject",ptr_1,sVar20)" ( identifier , identifier , (string_literal ""Subject"" " string_content ") , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "pXVar14 = X509_get_issuer_name(pXVar13);" (assignment_expression "pXVar14 = X509_get_issuer_name(pXVar13)" identifier = (call_expression "X509_get_issuer_name(pXVar13)" identifier (argument_list "(pXVar13)" ( identifier )))) ;) (expression_statement "X509_NAME_print_ex(out,pXVar14,0,0x82031f);" (call_expression "X509_NAME_print_ex(out,pXVar14,0,0x82031f)" identifier (argument_list "(out,pXVar14,0,0x82031f)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "sVar20 = BIO_ctrl(out,3,0,&ptr_1);" (assignment_expression "sVar20 = BIO_ctrl(out,3,0,&ptr_1)" identifier = (call_expression "BIO_ctrl(out,3,0,&ptr_1)" identifier (argument_list "(out,3,0,&ptr_1)" ( identifier , number_literal , number_literal , (pointer_expression "&ptr_1" & identifier) )))) ;) (expression_statement "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Issuer",ptr_1,sVar20);" (call_expression "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Issuer",ptr_1,sVar20)" identifier (argument_list "(pCVar5,local_a40,"Issuer",ptr_1,sVar20)" ( identifier , identifier , (string_literal ""Issuer"" " string_content ") , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "uVar23 = X509_get_version(pXVar13);" (assignment_expression "uVar23 = X509_get_version(pXVar13)" identifier = (call_expression "X509_get_version(pXVar13)" identifier (argument_list "(pXVar13)" ( identifier )))) ;) (expression_statement "BIO_printf(out,"%lx",uVar23);" (call_expression "BIO_printf(out,"%lx",uVar23)" identifier (argument_list "(out,"%lx",uVar23)" ( identifier , (string_literal ""%lx"" " string_content ") , identifier ))) ;) (expression_statement "sVar20 = BIO_ctrl(out,3,0,&ptr_1);" (assignment_expression "sVar20 = BIO_ctrl(out,3,0,&ptr_1)" identifier = (call_expression "BIO_ctrl(out,3,0,&ptr_1)" identifier (argument_list "(out,3,0,&ptr_1)" ( identifier , number_literal , number_literal , (pointer_expression "&ptr_1" & identifier) )))) ;) (expression_statement "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Version",ptr_1,sVar20);" (call_expression "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Version",ptr_1,sVar20)" identifier (argument_list "(pCVar5,local_a40,"Version",ptr_1,sVar20)" ( identifier , identifier , (string_literal ""Version"" " string_content ") , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "pAVar24 = X509_get_serialNumber(pXVar13);" (assignment_expression "pAVar24 = X509_get_serialNumber(pXVar13)" identifier = (call_expression "X509_get_serialNumber(pXVar13)" identifier (argument_list "(pXVar13)" ( identifier )))) ;) (if_statement "if (pAVar24->type == 0x102) {\n              BIO_puts(out,"-");\n            }" if (parenthesized_expression "(pAVar24->type == 0x102)" ( (binary_expression "pAVar24->type == 0x102" (field_expression "pAVar24->type" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n              BIO_puts(out,"-");\n            }" { (expression_statement "BIO_puts(out,"-");" (call_expression "BIO_puts(out,"-")" identifier (argument_list "(out,"-")" ( identifier , (string_literal ""-"" " string_content ") ))) ;) })) (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (if_statement "if (0 < pAVar24->length) {\n              do {\n                pbVar1 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,"%02x",(uint)*pbVar1);\n              } while (iVar28 < pAVar24->length);\n            }" if (parenthesized_expression "(0 < pAVar24->length)" ( (binary_expression "0 < pAVar24->length" number_literal < (field_expression "pAVar24->length" identifier -> field_identifier)) )) (compound_statement "{\n              do {\n                pbVar1 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,"%02x",(uint)*pbVar1);\n              } while (iVar28 < pAVar24->length);\n            }" { (do_statement "do {\n                pbVar1 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,"%02x",(uint)*pbVar1);\n              } while (iVar28 < pAVar24->length);" do (compound_statement "{\n                pbVar1 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,"%02x",(uint)*pbVar1);\n              }" { (expression_statement "pbVar1 = pAVar24->data + iVar28;" (assignment_expression "pbVar1 = pAVar24->data + iVar28" identifier = (binary_expression "pAVar24->data + iVar28" (field_expression "pAVar24->data" identifier -> field_identifier) + identifier)) ;) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "BIO_printf(out,"%02x",(uint)*pbVar1);" (call_expression "BIO_printf(out,"%02x",(uint)*pbVar1)" identifier (argument_list "(out,"%02x",(uint)*pbVar1)" ( identifier , (string_literal ""%02x"" " string_content ") , (binary_expression "(uint)*pbVar1" (parenthesized_expression "(uint)" ( identifier )) * identifier) ))) ;) }) while (parenthesized_expression "(iVar28 < pAVar24->length)" ( (binary_expression "iVar28 < pAVar24->length" identifier < (field_expression "pAVar24->length" identifier -> field_identifier)) )) ;) })) (expression_statement "sVar20 = BIO_ctrl(out,3,0,&ptr_1);" (assignment_expression "sVar20 = BIO_ctrl(out,3,0,&ptr_1)" identifier = (call_expression "BIO_ctrl(out,3,0,&ptr_1)" identifier (argument_list "(out,3,0,&ptr_1)" ( identifier , number_literal , number_literal , (pointer_expression "&ptr_1" & identifier) )))) ;) (expression_statement "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Serial Number",ptr_1,sVar20);" (call_expression "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Serial Number",ptr_1,sVar20)" identifier (argument_list "(pCVar5,local_a40,"Serial Number",ptr_1,sVar20)" ( identifier , identifier , (string_literal ""Serial Number"" " string_content ") , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "palg = (X509_ALGOR *)0x0;" (assignment_expression "palg = (X509_ALGOR *)0x0" identifier = (cast_expression "(X509_ALGOR *)0x0" ( (type_descriptor "X509_ALGOR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pAVar34 = ASN1_STRING_new();" (assignment_expression "pAVar34 = ASN1_STRING_new()" identifier = (call_expression "ASN1_STRING_new()" identifier (argument_list "()" ( )))) ;) (if_statement "if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&psig,&palg,pXVar13);\n              X509_signature_print(out,(X509_ALGOR *)palg,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (palg != (X509_ALGOR *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);\n                sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }" if (parenthesized_expression "(pAVar34 != (ASN1_STRING *)0x0)" ( (binary_expression "pAVar34 != (ASN1_STRING *)0x0" identifier != (cast_expression "(ASN1_STRING *)0x0" ( (type_descriptor "ASN1_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              X509_get0_signature(&psig,&palg,pXVar13);\n              X509_signature_print(out,(X509_ALGOR *)palg,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (palg != (X509_ALGOR *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);\n                sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }" { (expression_statement "X509_get0_signature(&psig,&palg,pXVar13);" (call_expression "X509_get0_signature(&psig,&palg,pXVar13)" identifier (argument_list "(&psig,&palg,pXVar13)" ( (pointer_expression "&psig" & identifier) , (pointer_expression "&palg" & identifier) , identifier ))) ;) (expression_statement "X509_signature_print(out,(X509_ALGOR *)palg,pAVar34);" (call_expression "X509_signature_print(out,(X509_ALGOR *)palg,pAVar34)" identifier (argument_list "(out,(X509_ALGOR *)palg,pAVar34)" ( identifier , (cast_expression "(X509_ALGOR *)palg" ( (type_descriptor "X509_ALGOR *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "ASN1_STRING_free(pAVar34);" (call_expression "ASN1_STRING_free(pAVar34)" identifier (argument_list "(pAVar34)" ( identifier ))) ;) (if_statement "if (palg != (X509_ALGOR *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);\n                sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }" if (parenthesized_expression "(palg != (X509_ALGOR *)0x0)" ( (binary_expression "palg != (X509_ALGOR *)0x0" identifier != (cast_expression "(X509_ALGOR *)0x0" ( (type_descriptor "X509_ALGOR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);\n                sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }" { (expression_statement "i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm);" (call_expression "i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)palg->algorithm)" identifier (argument_list "(out,(ASN1_OBJECT *)palg->algorithm)" ( identifier , (cast_expression "(ASN1_OBJECT *)palg->algorithm" ( (type_descriptor "ASN1_OBJECT *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "palg->algorithm" identifier -> field_identifier)) ))) ;) (expression_statement "sVar20 = BIO_ctrl(out,3,0,&ptr_1);" (assignment_expression "sVar20 = BIO_ctrl(out,3,0,&ptr_1)" identifier = (call_expression "BIO_ctrl(out,3,0,&ptr_1)" identifier (argument_list "(out,3,0,&ptr_1)" ( identifier , number_literal , number_literal , (pointer_expression "&ptr_1" & identifier) )))) ;) (expression_statement "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20);" (call_expression "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20)" identifier (argument_list "(pCVar5,local_a40,"Public Key Algorithm",ptr_1,sVar20)" ( identifier , identifier , (string_literal ""Public Key Algorithm"" " string_content ") , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) })) (expression_statement "uVar23 = X509_get0_extensions(pXVar13);" (assignment_expression "uVar23 = X509_get0_extensions(pXVar13)" identifier = (call_expression "X509_get0_extensions(pXVar13)" identifier (argument_list "(pXVar13)" ( identifier )))) ;) (expression_statement "iVar28 = OPENSSL_sk_num(uVar23);" (assignment_expression "iVar28 = OPENSSL_sk_num(uVar23)" identifier = (call_expression "OPENSSL_sk_num(uVar23)" identifier (argument_list "(uVar23)" ( identifier )))) ;) (expression_statement "local_a28 = 0;" (assignment_expression "local_a28 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a28 < iVar28; local_a28 = local_a28 + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);\n                pBVar11 = BIO_s_mem();\n                out_00 = BIO_new(pBVar11);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(namebuf,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&temp);\n                uVar25 = 0;\n                uVar40 = *(uint *)temp;\n                puVar42 = (uint *)temp;\n                local_a1c = (uchar *)buffer;\n                if (uVar40 != 0) {\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }\n                Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);\n                BIO_free(out_00);\n              }\n            }" if (parenthesized_expression "(0 < iVar28)" ( (binary_expression "0 < iVar28" number_literal < identifier) )) (compound_statement "{\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a28 < iVar28; local_a28 = local_a28 + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);\n                pBVar11 = BIO_s_mem();\n                out_00 = BIO_new(pBVar11);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(namebuf,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&temp);\n                uVar25 = 0;\n                uVar40 = *(uint *)temp;\n                puVar42 = (uint *)temp;\n                local_a1c = (uchar *)buffer;\n                if (uVar40 != 0) {\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }\n                Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);\n                BIO_free(out_00);\n              }\n            }" { (for_statement "for (; iVar28 = OPENSSL_sk_num(uVar23), local_a28 < iVar28; local_a28 = local_a28 + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);\n                pBVar11 = BIO_s_mem();\n                out_00 = BIO_new(pBVar11);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(namebuf,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&temp);\n                uVar25 = 0;\n                uVar40 = *(uint *)temp;\n                puVar42 = (uint *)temp;\n                local_a1c = (uchar *)buffer;\n                if (uVar40 != 0) {\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }\n                Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);\n                BIO_free(out_00);\n              }" for ( ; (comma_expression "iVar28 = OPENSSL_sk_num(uVar23), local_a28 < iVar28" (assignment_expression "iVar28 = OPENSSL_sk_num(uVar23)" identifier = (call_expression "OPENSSL_sk_num(uVar23)" identifier (argument_list "(uVar23)" ( identifier )))) , (binary_expression "local_a28 < iVar28" identifier < identifier)) ; (assignment_expression "local_a28 = local_a28 + 1" identifier = (binary_expression "local_a28 + 1" identifier + number_literal)) ) (compound_statement "{\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);\n                pBVar11 = BIO_s_mem();\n                out_00 = BIO_new(pBVar11);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(namebuf,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&temp);\n                uVar25 = 0;\n                uVar40 = *(uint *)temp;\n                puVar42 = (uint *)temp;\n                local_a1c = (uchar *)buffer;\n                if (uVar40 != 0) {\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }\n                Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);\n                BIO_free(out_00);\n              }" { (expression_statement "ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28);" (assignment_expression "ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28)" identifier = (cast_expression "(X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a28)" ( (type_descriptor "X509_EXTENSION *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_value(uVar23,local_a28)" identifier (argument_list "(uVar23,local_a28)" ( identifier , identifier ))))) ;) (expression_statement "pBVar11 = BIO_s_mem();" (assignment_expression "pBVar11 = BIO_s_mem()" identifier = (call_expression "BIO_s_mem()" identifier (argument_list "()" ( )))) ;) (expression_statement "out_00 = BIO_new(pBVar11);" (assignment_expression "out_00 = BIO_new(pBVar11)" identifier = (call_expression "BIO_new(pBVar11)" identifier (argument_list "(pBVar11)" ( identifier )))) ;) (if_statement "if (out_00 == (BIO *)0x0) break;" if (parenthesized_expression "(out_00 == (BIO *)0x0)" ( (binary_expression "out_00 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "a_00 = X509_EXTENSION_get_object(ex);" (assignment_expression "a_00 = X509_EXTENSION_get_object(ex)" identifier = (call_expression "X509_EXTENSION_get_object(ex)" identifier (argument_list "(ex)" ( identifier )))) ;) (expression_statement "i2t_ASN1_OBJECT(namebuf,0x80,a_00);" (call_expression "i2t_ASN1_OBJECT(namebuf,0x80,a_00)" identifier (argument_list "(namebuf,0x80,a_00)" ( identifier , number_literal , identifier ))) ;) (expression_statement "iVar28 = X509V3_EXT_print(out_00,ex,0,0);" (assignment_expression "iVar28 = X509V3_EXT_print(out_00,ex,0,0)" identifier = (call_expression "X509V3_EXT_print(out_00,ex,0,0)" identifier (argument_list "(out_00,ex,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }" { (expression_statement "v = X509_EXTENSION_get_data(ex);" (assignment_expression "v = X509_EXTENSION_get_data(ex)" identifier = (call_expression "X509_EXTENSION_get_data(ex)" identifier (argument_list "(ex)" ( identifier )))) ;) (expression_statement "ASN1_STRING_print(out_00,v);" (call_expression "ASN1_STRING_print(out_00,v)" identifier (argument_list "(out_00,v)" ( identifier , identifier ))) ;) })) (expression_statement "BIO_ctrl(out_00,0x73,0,&temp);" (call_expression "BIO_ctrl(out_00,0x73,0,&temp)" identifier (argument_list "(out_00,0x73,0,&temp)" ( identifier , number_literal , number_literal , (pointer_expression "&temp" & identifier) ))) ;) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) (expression_statement "uVar40 = *(uint *)temp;" (assignment_expression "uVar40 = *(uint *)temp" identifier = (pointer_expression "*(uint *)temp" * (cast_expression "(uint *)temp" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar42 = (uint *)temp;" (assignment_expression "puVar42 = (uint *)temp" identifier = (cast_expression "(uint *)temp" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_a1c = (uchar *)buffer;" (assignment_expression "local_a1c = (uchar *)buffer" identifier = (cast_expression "(uchar *)buffer" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (uVar40 != 0) {\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }" if (parenthesized_expression "(uVar40 != 0)" ( (binary_expression "uVar40 != 0" identifier != number_literal) )) (compound_statement "{\n                  do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);\n                }" { (do_statement "do {\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  } while (uVar25 < uVar40);" do (compound_statement "{\n                    uVar4 = puVar42[1];\n                    local_a20 = &DAT_00087d70;\n                    uVar26 = uVar25;\n                    uVar10 = uVar25 + 1;\n                    if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }\n                    uVar25 = uVar10;\n                    if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }\nLAB_000789f7:\n                    uVar40 = *puVar42;\n                  }" { (expression_statement "uVar4 = puVar42[1];" (assignment_expression "uVar4 = puVar42[1]" identifier = (subscript_expression "puVar42[1]" identifier [ number_literal ])) ;) (expression_statement "local_a20 = &DAT_00087d70;" (assignment_expression "local_a20 = &DAT_00087d70" identifier = (pointer_expression "&DAT_00087d70" & identifier)) ;) (expression_statement "uVar26 = uVar25;" (assignment_expression "uVar26 = uVar25" identifier = identifier) ;) (expression_statement "uVar10 = uVar25 + 1;" (assignment_expression "uVar10 = uVar25 + 1" identifier = (binary_expression "uVar25 + 1" identifier + number_literal)) ;) (if_statement "if (*(char *)(uVar4 + uVar25) == '\n') {\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }" if (parenthesized_expression "(*(char *)(uVar4 + uVar25) == '\n')" ( (binary_expression "*(char *)(uVar4 + uVar25) == '\n'" (pointer_expression "*(char *)(uVar4 + uVar25)" * (cast_expression "(char *)(uVar4 + uVar25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 + uVar25)" ( (binary_expression "uVar4 + uVar25" identifier + identifier) )))) == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n                      local_a20 = &DAT_0007df6a;\n                      uVar26 = uVar25 + 1;\n                      uVar10 = uVar25 + 2;\n                    }" { (expression_statement "local_a20 = &DAT_0007df6a;" (assignment_expression "local_a20 = &DAT_0007df6a" identifier = (pointer_expression "&DAT_0007df6a" & identifier)) ;) (expression_statement "uVar26 = uVar25 + 1;" (assignment_expression "uVar26 = uVar25 + 1" identifier = (binary_expression "uVar25 + 1" identifier + number_literal)) ;) (expression_statement "uVar10 = uVar25 + 2;" (assignment_expression "uVar10 = uVar25 + 2" identifier = (binary_expression "uVar25 + 2" identifier + number_literal)) ;) })) (expression_statement "uVar25 = uVar10;" (assignment_expression "uVar25 = uVar10" identifier = identifier) ;) (if_statement "if (uVar26 < uVar40) {\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }" if (parenthesized_expression "(uVar26 < uVar40)" ( (binary_expression "uVar26 < uVar40" identifier < identifier) )) (compound_statement "{\n                      cVar2 = *(char *)(uVar4 + uVar26);\n                      if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }\n                      iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);\n                      local_a1c = local_a1c + iVar28;\n                      puVar42 = (uint *)temp;\n                    }" { (expression_statement "cVar2 = *(char *)(uVar4 + uVar26);" (assignment_expression "cVar2 = *(char *)(uVar4 + uVar26)" identifier = (pointer_expression "*(char *)(uVar4 + uVar26)" * (cast_expression "(char *)(uVar4 + uVar26)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar4 + uVar26)" ( (binary_expression "uVar4 + uVar26" identifier + identifier) ))))) ;) (if_statement "if (cVar2 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }" if (parenthesized_expression "(cVar2 == ' ')" ( (binary_expression "cVar2 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');\n                      }" { (expression_statement "uVar26 = uVar26 + 2;" (assignment_expression "uVar26 = uVar26 + 2" identifier = (binary_expression "uVar26 + 2" identifier + number_literal)) ;) (do_statement "do {\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar2 == ' ');" do (compound_statement "{\n                          uVar25 = uVar26;\n                          if (uVar40 + 1 == uVar25) goto LAB_000789f7;\n                          cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        }" { (expression_statement "uVar25 = uVar26;" (assignment_expression "uVar25 = uVar26" identifier = identifier) ;) (if_statement "if (uVar40 + 1 == uVar25) goto LAB_000789f7;" if (parenthesized_expression "(uVar40 + 1 == uVar25)" ( (binary_expression "uVar40 + 1 == uVar25" (binary_expression "uVar40 + 1" identifier + number_literal) == identifier) )) (goto_statement "goto LAB_000789f7;" goto statement_identifier ;)) (expression_statement "cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1);" (assignment_expression "cVar2 = *(char *)((uVar4 - 2) + uVar25 + 1)" identifier = (pointer_expression "*(char *)((uVar4 - 2) + uVar25 + 1)" * (cast_expression "(char *)((uVar4 - 2) + uVar25 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar4 - 2) + uVar25 + 1)" ( (binary_expression "(uVar4 - 2) + uVar25 + 1" (binary_expression "(uVar4 - 2) + uVar25" (parenthesized_expression "(uVar4 - 2)" ( (binary_expression "uVar4 - 2" identifier - number_literal) )) + identifier) + number_literal) ))))) ;) (expression_statement "uVar26 = uVar25 + 1;" (assignment_expression "uVar26 = uVar25 + 1" identifier = (binary_expression "uVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(cVar2 == ' ')" ( (binary_expression "cVar2 == ' '" identifier == (char_literal "' '" ' character ')) )) ;) })) (expression_statement "iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2);" (assignment_expression "iVar28 = curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2)" identifier = (call_expression "curl_msnprintf((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2)" identifier (argument_list "((char *)local_a1c,\n                                              (size_t)(buffer + (0x200 - (int)local_a1c)),"%s%c",\n                                              local_a20,(int)cVar2)" ( (cast_expression "(char *)local_a1c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(size_t)(buffer + (0x200 - (int)local_a1c))" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "(buffer + (0x200 - (int)local_a1c))" ( (binary_expression "buffer + (0x200 - (int)local_a1c)" identifier + (parenthesized_expression "(0x200 - (int)local_a1c)" ( (binary_expression "0x200 - (int)local_a1c" number_literal - (cast_expression "(int)local_a1c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ))) , (string_literal ""%s%c"" " string_content ") , identifier , (cast_expression "(int)cVar2" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "local_a1c = local_a1c + iVar28;" (assignment_expression "local_a1c = local_a1c + iVar28" identifier = (binary_expression "local_a1c + iVar28" identifier + identifier)) ;) (expression_statement "puVar42 = (uint *)temp;" (assignment_expression "puVar42 = (uint *)temp" identifier = (cast_expression "(uint *)temp" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (labeled_statement "LAB_000789f7:\n                    uVar40 = *puVar42;" statement_identifier : (expression_statement "uVar40 = *puVar42;" (assignment_expression "uVar40 = *puVar42" identifier = (pointer_expression "*puVar42" * identifier)) ;)) }) while (parenthesized_expression "(uVar25 < uVar40)" ( (binary_expression "uVar25 < uVar40" identifier < identifier) )) ;) })) (expression_statement "Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer);" (call_expression "Curl_ssl_push_certinfo(pCVar5,local_a40,namebuf,buffer)" identifier (argument_list "(pCVar5,local_a40,namebuf,buffer)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "BIO_free(out_00);" (call_expression "BIO_free(out_00)" identifier (argument_list "(out_00)" ( identifier ))) ;) })) })) (expression_statement "pAVar15 = (ASN1_TIME *)X509_get0_notBefore(pXVar13);" (assignment_expression "pAVar15 = (ASN1_TIME *)X509_get0_notBefore(pXVar13)" identifier = (cast_expression "(ASN1_TIME *)X509_get0_notBefore(pXVar13)" ( (type_descriptor "ASN1_TIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get0_notBefore(pXVar13)" identifier (argument_list "(pXVar13)" ( identifier ))))) ;) (expression_statement "ASN1_TIME_print(out,pAVar15);" (call_expression "ASN1_TIME_print(out,pAVar15)" identifier (argument_list "(out,pAVar15)" ( identifier , identifier ))) ;) (expression_statement "sVar20 = BIO_ctrl(out,3,0,&ptr_1);" (assignment_expression "sVar20 = BIO_ctrl(out,3,0,&ptr_1)" identifier = (call_expression "BIO_ctrl(out,3,0,&ptr_1)" identifier (argument_list "(out,3,0,&ptr_1)" ( identifier , number_literal , number_literal , (pointer_expression "&ptr_1" & identifier) )))) ;) (expression_statement "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Start date",ptr_1,sVar20);" (call_expression "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Start date",ptr_1,sVar20)" identifier (argument_list "(pCVar5,local_a40,"Start date",ptr_1,sVar20)" ( identifier , identifier , (string_literal ""Start date"" " string_content ") , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "pAVar15 = (ASN1_TIME *)X509_get0_notAfter(pXVar13);" (assignment_expression "pAVar15 = (ASN1_TIME *)X509_get0_notAfter(pXVar13)" identifier = (cast_expression "(ASN1_TIME *)X509_get0_notAfter(pXVar13)" ( (type_descriptor "ASN1_TIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get0_notAfter(pXVar13)" identifier (argument_list "(pXVar13)" ( identifier ))))) ;) (expression_statement "ASN1_TIME_print(out,pAVar15);" (call_expression "ASN1_TIME_print(out,pAVar15)" identifier (argument_list "(out,pAVar15)" ( identifier , identifier ))) ;) (expression_statement "sVar20 = BIO_ctrl(out,3,0,&ptr_1);" (assignment_expression "sVar20 = BIO_ctrl(out,3,0,&ptr_1)" identifier = (call_expression "BIO_ctrl(out,3,0,&ptr_1)" identifier (argument_list "(out,3,0,&ptr_1)" ( identifier , number_literal , number_literal , (pointer_expression "&ptr_1" & identifier) )))) ;) (expression_statement "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Expire date",ptr_1,sVar20);" (call_expression "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Expire date",ptr_1,sVar20)" identifier (argument_list "(pCVar5,local_a40,"Expire date",ptr_1,sVar20)" ( identifier , identifier , (string_literal ""Expire date"" " string_content ") , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "pkey = X509_get_pubkey(pXVar13);" (assignment_expression "pkey = X509_get_pubkey(pXVar13)" identifier = (call_expression "X509_get_pubkey(pXVar13)" identifier (argument_list "(pXVar13)" ( identifier )))) ;) (if_statement "if (pkey == (EVP_PKEY *)0x0) {\n              Curl_infof(pCVar5,"   Unable to load public key\n");\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&p,&q,&palg);\n                pcVar30 = "dh";\n                DH_get0_key(uVar23,&temp,0);\nLAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);\n                pcVar31 = "pub_key";\nLAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }" if (parenthesized_expression "(pkey == (EVP_PKEY *)0x0)" ( (binary_expression "pkey == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              Curl_infof(pCVar5,"   Unable to load public key\n");\n            }" { (expression_statement "Curl_infof(pCVar5,"   Unable to load public key\n");" (call_expression "Curl_infof(pCVar5,"   Unable to load public key\n")" identifier (argument_list "(pCVar5,"   Unable to load public key\n")" ( identifier , (string_literal ""   Unable to load public key\n"" " string_content escape_sequence ") ))) ;) }) (else_clause "else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&p,&q,&palg);\n                pcVar30 = "dh";\n                DH_get0_key(uVar23,&temp,0);\nLAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);\n                pcVar31 = "pub_key";\nLAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }" else (compound_statement "{\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&p,&q,&palg);\n                pcVar30 = "dh";\n                DH_get0_key(uVar23,&temp,0);\nLAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);\n                pcVar31 = "pub_key";\nLAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }" { (expression_statement "iVar28 = EVP_PKEY_id(pkey);" (assignment_expression "iVar28 = EVP_PKEY_id(pkey)" identifier = (call_expression "EVP_PKEY_id(pkey)" identifier (argument_list "(pkey)" ( identifier )))) ;) (if_statement "if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&p,&q,&palg);\n                pcVar30 = "dh";\n                DH_get0_key(uVar23,&temp,0);\nLAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);\n                pcVar31 = "pub_key";\nLAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }" if (parenthesized_expression "(iVar28 == 0x1c)" ( (binary_expression "iVar28 == 0x1c" identifier == number_literal) )) (compound_statement "{\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&p,&q,&palg);\n                pcVar30 = "dh";\n                DH_get0_key(uVar23,&temp,0);\nLAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);\n                pcVar31 = "pub_key";\nLAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);\n              }" { (expression_statement "uVar23 = EVP_PKEY_get0_DH(pkey);" (assignment_expression "uVar23 = EVP_PKEY_get0_DH(pkey)" identifier = (call_expression "EVP_PKEY_get0_DH(pkey)" identifier (argument_list "(pkey)" ( identifier )))) ;) (expression_statement "DH_get0_pqg(uVar23,&p,&q,&palg);" (call_expression "DH_get0_pqg(uVar23,&p,&q,&palg)" identifier (argument_list "(uVar23,&p,&q,&palg)" ( identifier , (pointer_expression "&p" & identifier) , (pointer_expression "&q" & identifier) , (pointer_expression "&palg" & identifier) ))) ;) (expression_statement "pcVar30 = "dh";" (assignment_expression "pcVar30 = "dh"" identifier = (string_literal ""dh"" " string_content ")) ;) (expression_statement "DH_get0_key(uVar23,&temp,0);" (call_expression "DH_get0_key(uVar23,&temp,0)" identifier (argument_list "(uVar23,&temp,0)" ( identifier , (pointer_expression "&temp" & identifier) , number_literal ))) ;) (labeled_statement "LAB_0007922b:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);" statement_identifier : (expression_statement "pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p);" (call_expression "pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p)" identifier (argument_list "(pCVar5,(BIO *)out,local_a40,pcVar30,"p",p)" ( identifier , (cast_expression "(BIO *)out" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , (string_literal ""p"" " string_content ") , identifier ))) ;)) (expression_statement "pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q);" (call_expression "pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q)" identifier (argument_list "(pCVar5,(BIO *)out,local_a40,pcVar30,"q",q)" ( identifier , (cast_expression "(BIO *)out" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , (string_literal ""q"" " string_content ") , identifier ))) ;) (expression_statement "pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg);" (call_expression "pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg)" identifier (argument_list "(pCVar5,(BIO *)out,local_a40,pcVar30,"g",(BIGNUM *)palg)" ( identifier , (cast_expression "(BIO *)out" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , (string_literal ""g"" " string_content ") , (cast_expression "(BIGNUM *)palg" ( (type_descriptor "BIGNUM *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "pcVar31 = "pub_key";" (assignment_expression "pcVar31 = "pub_key"" identifier = (string_literal ""pub_key"" " string_content ")) ;) (labeled_statement "LAB_000791bc:\n                pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);" statement_identifier : (expression_statement "pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp);" (call_expression "pubkey_show(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp)" identifier (argument_list "(pCVar5,(BIO *)out,local_a40,pcVar30,pcVar31,(BIGNUM *)temp)" ( identifier , (cast_expression "(BIO *)out" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier , (cast_expression "(BIGNUM *)temp" ( (type_descriptor "BIGNUM *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) }) (else_clause "else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }" else (compound_statement "{\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }\n              }" { (if_statement "if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }" if (parenthesized_expression "(iVar28 == 0x74)" ( (binary_expression "iVar28 == 0x74" identifier == number_literal) )) (compound_statement "{\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&p,&q,&palg);\n                  pcVar30 = "dsa";\n                  DSA_get0_key(uVar23,&temp,0);\n                  goto LAB_0007922b;\n                }" { (expression_statement "uVar23 = EVP_PKEY_get0_DSA(pkey);" (assignment_expression "uVar23 = EVP_PKEY_get0_DSA(pkey)" identifier = (call_expression "EVP_PKEY_get0_DSA(pkey)" identifier (argument_list "(pkey)" ( identifier )))) ;) (expression_statement "DSA_get0_pqg(uVar23,&p,&q,&palg);" (call_expression "DSA_get0_pqg(uVar23,&p,&q,&palg)" identifier (argument_list "(uVar23,&p,&q,&palg)" ( identifier , (pointer_expression "&p" & identifier) , (pointer_expression "&q" & identifier) , (pointer_expression "&palg" & identifier) ))) ;) (expression_statement "pcVar30 = "dsa";" (assignment_expression "pcVar30 = "dsa"" identifier = (string_literal ""dsa"" " string_content ")) ;) (expression_statement "DSA_get0_key(uVar23,&temp,0);" (call_expression "DSA_get0_key(uVar23,&temp,0)" identifier (argument_list "(uVar23,&temp,0)" ( identifier , (pointer_expression "&temp" & identifier) , number_literal ))) ;) (goto_statement "goto LAB_0007922b;" goto statement_identifier ;) })) (if_statement "if (iVar28 == 6) {\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }" if (parenthesized_expression "(iVar28 == 6)" ( (binary_expression "iVar28 == 6" identifier == number_literal) )) (compound_statement "{\n                  pcVar30 = "rsa";\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&palg,&temp,0);\n                  BN_print(out,(BIGNUM *)palg);\n                  sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n                  Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);\n                  pcVar31 = "e";\n                  goto LAB_000791bc;\n                }" { (expression_statement "pcVar30 = "rsa";" (assignment_expression "pcVar30 = "rsa"" identifier = (string_literal ""rsa"" " string_content ")) ;) (expression_statement "uVar23 = EVP_PKEY_get0_RSA(pkey);" (assignment_expression "uVar23 = EVP_PKEY_get0_RSA(pkey)" identifier = (call_expression "EVP_PKEY_get0_RSA(pkey)" identifier (argument_list "(pkey)" ( identifier )))) ;) (expression_statement "RSA_get0_key(uVar23,&palg,&temp,0);" (call_expression "RSA_get0_key(uVar23,&palg,&temp,0)" identifier (argument_list "(uVar23,&palg,&temp,0)" ( identifier , (pointer_expression "&palg" & identifier) , (pointer_expression "&temp" & identifier) , number_literal ))) ;) (expression_statement "BN_print(out,(BIGNUM *)palg);" (call_expression "BN_print(out,(BIGNUM *)palg)" identifier (argument_list "(out,(BIGNUM *)palg)" ( identifier , (cast_expression "(BIGNUM *)palg" ( (type_descriptor "BIGNUM *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "sVar20 = BIO_ctrl(out,3,0,&ptr_1);" (assignment_expression "sVar20 = BIO_ctrl(out,3,0,&ptr_1)" identifier = (call_expression "BIO_ctrl(out,3,0,&ptr_1)" identifier (argument_list "(out,3,0,&ptr_1)" ( identifier , number_literal , number_literal , (pointer_expression "&ptr_1" & identifier) )))) ;) (expression_statement "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20);" (call_expression "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20)" identifier (argument_list "(pCVar5,local_a40,"RSA Public Key",ptr_1,sVar20)" ( identifier , identifier , (string_literal ""RSA Public Key"" " string_content ") , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg);" (call_expression "pubkey_show(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg)" identifier (argument_list "(pCVar5,(BIO *)out,local_a40,"rsa","n",(BIGNUM *)palg)" ( identifier , (cast_expression "(BIO *)out" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (string_literal ""rsa"" " string_content ") , (string_literal ""n"" " string_content ") , (cast_expression "(BIGNUM *)palg" ( (type_descriptor "BIGNUM *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "pcVar31 = "e";" (assignment_expression "pcVar31 = "e"" identifier = (string_literal ""e"" " string_content ")) ;) (goto_statement "goto LAB_000791bc;" goto statement_identifier ;) })) }))) (expression_statement "EVP_PKEY_free(pkey);" (call_expression "EVP_PKEY_free(pkey)" identifier (argument_list "(pkey)" ( identifier ))) ;) }))) (if_statement "if (psig != (ASN1_BIT_STRING *)0x0) {\n              iVar28 = 0;\n              if (0 < psig->length) {\n                do {\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                } while (iVar28 < psig->length);\n              }\n              sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n              Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Signature",ptr_1,sVar20);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }" if (parenthesized_expression "(psig != (ASN1_BIT_STRING *)0x0)" ( (binary_expression "psig != (ASN1_BIT_STRING *)0x0" identifier != (cast_expression "(ASN1_BIT_STRING *)0x0" ( (type_descriptor "ASN1_BIT_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar28 = 0;\n              if (0 < psig->length) {\n                do {\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                } while (iVar28 < psig->length);\n              }\n              sVar20 = BIO_ctrl(out,3,0,&ptr_1);\n              Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Signature",ptr_1,sVar20);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }" { (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (if_statement "if (0 < psig->length) {\n                do {\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                } while (iVar28 < psig->length);\n              }" if (parenthesized_expression "(0 < psig->length)" ( (binary_expression "0 < psig->length" number_literal < (field_expression "psig->length" identifier -> field_identifier)) )) (compound_statement "{\n                do {\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                } while (iVar28 < psig->length);\n              }" { (do_statement "do {\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                } while (iVar28 < psig->length);" do (compound_statement "{\n                  pbVar1 = psig->data + iVar28;\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,"%02x:",(uint)*pbVar1);\n                }" { (expression_statement "pbVar1 = psig->data + iVar28;" (assignment_expression "pbVar1 = psig->data + iVar28" identifier = (binary_expression "psig->data + iVar28" (field_expression "psig->data" identifier -> field_identifier) + identifier)) ;) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "BIO_printf(out,"%02x:",(uint)*pbVar1);" (call_expression "BIO_printf(out,"%02x:",(uint)*pbVar1)" identifier (argument_list "(out,"%02x:",(uint)*pbVar1)" ( identifier , (string_literal ""%02x:"" " string_content ") , (binary_expression "(uint)*pbVar1" (parenthesized_expression "(uint)" ( identifier )) * identifier) ))) ;) }) while (parenthesized_expression "(iVar28 < psig->length)" ( (binary_expression "iVar28 < psig->length" identifier < (field_expression "psig->length" identifier -> field_identifier)) )) ;) })) (expression_statement "sVar20 = BIO_ctrl(out,3,0,&ptr_1);" (assignment_expression "sVar20 = BIO_ctrl(out,3,0,&ptr_1)" identifier = (call_expression "BIO_ctrl(out,3,0,&ptr_1)" identifier (argument_list "(out,3,0,&ptr_1)" ( identifier , number_literal , number_literal , (pointer_expression "&ptr_1" & identifier) )))) ;) (expression_statement "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Signature",ptr_1,sVar20);" (call_expression "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Signature",ptr_1,sVar20)" identifier (argument_list "(pCVar5,local_a40,"Signature",ptr_1,sVar20)" ( identifier , identifier , (string_literal ""Signature"" " string_content ") , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (expression_statement "PEM_write_bio_X509(out,pXVar13);" (call_expression "PEM_write_bio_X509(out,pXVar13)" identifier (argument_list "(out,pXVar13)" ( identifier , identifier ))) ;) (expression_statement "sVar20 = BIO_ctrl(out,3,0,&ptr_1);" (assignment_expression "sVar20 = BIO_ctrl(out,3,0,&ptr_1)" identifier = (call_expression "BIO_ctrl(out,3,0,&ptr_1)" identifier (argument_list "(out,3,0,&ptr_1)" ( identifier , number_literal , number_literal , (pointer_expression "&ptr_1" & identifier) )))) ;) (expression_statement "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Cert",ptr_1,sVar20);" (call_expression "Curl_ssl_push_certinfo_len(pCVar5,local_a40,"Cert",ptr_1,sVar20)" identifier (argument_list "(pCVar5,local_a40,"Cert",ptr_1,sVar20)" ( identifier , identifier , (string_literal ""Cert"" " string_content ") , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "local_a40 = local_a40 + 1;" (assignment_expression "local_a40 = local_a40 + 1" identifier = (binary_expression "local_a40 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar38 != local_a40)" ( (binary_expression "iVar38 != local_a40" identifier != identifier) )) ;) })) (expression_statement "BIO_free(out);" (call_expression "BIO_free(out)" identifier (argument_list "(out)" ( identifier ))) ;) })) })) })) (expression_statement "psVar18 = connssl->backend;" (assignment_expression "psVar18 = connssl->backend" identifier = (field_expression "connssl->backend" identifier -> field_identifier)) ;) (expression_statement "pXVar13 = SSL_get_peer_certificate((SSL *)psVar18->handle);" (assignment_expression "pXVar13 = SSL_get_peer_certificate((SSL *)psVar18->handle)" identifier = (call_expression "SSL_get_peer_certificate((SSL *)psVar18->handle)" identifier (argument_list "((SSL *)psVar18->handle)" ( (cast_expression "(SSL *)psVar18->handle" ( (type_descriptor "SSL *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "psVar18->handle" identifier -> field_identifier)) )))) ;) (expression_statement "psVar18->server_cert = (X509 *)pXVar13;" (assignment_expression "psVar18->server_cert = (X509 *)pXVar13" (field_expression "psVar18->server_cert" identifier -> field_identifier) = (cast_expression "(X509 *)pXVar13" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (connssl->backend->server_cert == (X509 *)0x0) {\n    CVar41 = CURLE_OK;\n    BIO_free(pBVar12);\n    if (strict) {\n      CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n      Curl_failf(data,"SSL: couldn\'t get peer certificate!");\n    }\n    goto LAB_00078251;\n  }" if (parenthesized_expression "(connssl->backend->server_cert == (X509 *)0x0)" ( (binary_expression "connssl->backend->server_cert == (X509 *)0x0" (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier) == (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    CVar41 = CURLE_OK;\n    BIO_free(pBVar12);\n    if (strict) {\n      CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n      Curl_failf(data,"SSL: couldn\'t get peer certificate!");\n    }\n    goto LAB_00078251;\n  }" { (expression_statement "CVar41 = CURLE_OK;" (assignment_expression "CVar41 = CURLE_OK" identifier = identifier) ;) (expression_statement "BIO_free(pBVar12);" (call_expression "BIO_free(pBVar12)" identifier (argument_list "(pBVar12)" ( identifier ))) ;) (if_statement "if (strict) {\n      CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n      Curl_failf(data,"SSL: couldn\'t get peer certificate!");\n    }" if (parenthesized_expression "(strict)" ( identifier )) (compound_statement "{\n      CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n      Curl_failf(data,"SSL: couldn\'t get peer certificate!");\n    }" { (expression_statement "CVar41 = CURLE_PEER_FAILED_VERIFICATION;" (assignment_expression "CVar41 = CURLE_PEER_FAILED_VERIFICATION" identifier = identifier) ;) (expression_statement "Curl_failf(data,"SSL: couldn\'t get peer certificate!");" (call_expression "Curl_failf(data,"SSL: couldn\'t get peer certificate!")" identifier (argument_list "(data,"SSL: couldn\'t get peer certificate!")" ( identifier , (string_literal ""SSL: couldn\'t get peer certificate!"" " string_content escape_sequence string_content ") ))) ;) })) (goto_statement "goto LAB_00078251;" goto statement_identifier ;) })) (expression_statement "pcVar30 = "Server";" (assignment_expression "pcVar30 = "Server"" identifier = (string_literal ""Server"" " string_content ")) ;) (if_statement "if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n    pcVar30 = "Proxy";\n  }" if (parenthesized_expression "(((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete))" ( (binary_expression "((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" (parenthesized_expression "((conn->http_proxy).proxytype == CURLPROXY_HTTPS)" ( (binary_expression "(conn->http_proxy).proxytype == CURLPROXY_HTTPS" (field_expression "(conn->http_proxy).proxytype" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier) == identifier) )) && (parenthesized_expression "(conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" ( (binary_expression "conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete" (field_expression "conn->proxy_ssl[conn->sock[1] != -1].state" (subscript_expression "conn->proxy_ssl[conn->sock[1] != -1]" (field_expression "conn->proxy_ssl" identifier -> field_identifier) [ (binary_expression "conn->sock[1] != -1" (subscript_expression "conn->sock[1]" (field_expression "conn->sock" identifier -> field_identifier) [ number_literal ]) != number_literal) ]) . field_identifier) != identifier) ))) )) (compound_statement "{\n    pcVar30 = "Proxy";\n  }" { (expression_statement "pcVar30 = "Proxy";" (assignment_expression "pcVar30 = "Proxy"" identifier = (string_literal ""Proxy"" " string_content ")) ;) })) (expression_statement "Curl_infof(data,"%s certificate:\n",pcVar30);" (call_expression "Curl_infof(data,"%s certificate:\n",pcVar30)" identifier (argument_list "(data,"%s certificate:\n",pcVar30)" ( identifier , (string_literal ""%s certificate:\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "pXVar14 = X509_get_subject_name((X509 *)connssl->backend->server_cert);" (assignment_expression "pXVar14 = X509_get_subject_name((X509 *)connssl->backend->server_cert)" identifier = (call_expression "X509_get_subject_name((X509 *)connssl->backend->server_cert)" identifier (argument_list "((X509 *)connssl->backend->server_cert)" ( (cast_expression "(X509 *)connssl->backend->server_cert" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier)) )))) ;) (expression_statement "pcVar30 = buffer;" (assignment_expression "pcVar30 = buffer" identifier = identifier) ;) (expression_statement "iVar38 = x509_name_oneline((X509_NAME *)pXVar14,pcVar30,size);" (assignment_expression "iVar38 = x509_name_oneline((X509_NAME *)pXVar14,pcVar30,size)" identifier = (call_expression "x509_name_oneline((X509_NAME *)pXVar14,pcVar30,size)" identifier (argument_list "((X509_NAME *)pXVar14,pcVar30,size)" ( (cast_expression "(X509_NAME *)pXVar14" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (expression_statement "pcVar31 = "[NONE]";" (assignment_expression "pcVar31 = "[NONE]"" identifier = (string_literal ""[NONE]"" " string_content ")) ;) (if_statement "if (iVar38 == 0) {\n    pcVar31 = pcVar30;\n  }" if (parenthesized_expression "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar31 = pcVar30;\n  }" { (expression_statement "pcVar31 = pcVar30;" (assignment_expression "pcVar31 = pcVar30" identifier = identifier) ;) })) (expression_statement "Curl_infof(data," subject: %s\n",pcVar31);" (call_expression "Curl_infof(data," subject: %s\n",pcVar31)" identifier (argument_list "(data," subject: %s\n",pcVar31)" ( identifier , (string_literal "" subject: %s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "pAVar15 = (ASN1_TIME *)X509_get0_notBefore(connssl->backend->server_cert);" (assignment_expression "pAVar15 = (ASN1_TIME *)X509_get0_notBefore(connssl->backend->server_cert)" identifier = (cast_expression "(ASN1_TIME *)X509_get0_notBefore(connssl->backend->server_cert)" ( (type_descriptor "ASN1_TIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get0_notBefore(connssl->backend->server_cert)" identifier (argument_list "(connssl->backend->server_cert)" ( (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier) ))))) ;) (expression_statement "ASN1_TIME_print(pBVar12,pAVar15);" (call_expression "ASN1_TIME_print(pBVar12,pAVar15)" identifier (argument_list "(pBVar12,pAVar15)" ( identifier , identifier ))) ;) (expression_statement "lVar16 = BIO_ctrl(pBVar12,3,0,&ptr);" (assignment_expression "lVar16 = BIO_ctrl(pBVar12,3,0,&ptr)" identifier = (call_expression "BIO_ctrl(pBVar12,3,0,&ptr)" identifier (argument_list "(pBVar12,3,0,&ptr)" ( identifier , number_literal , number_literal , (pointer_expression "&ptr" & identifier) )))) ;) (expression_statement "Curl_infof(data," start date: %.*s\n",lVar16,ptr);" (call_expression "Curl_infof(data," start date: %.*s\n",lVar16,ptr)" identifier (argument_list "(data," start date: %.*s\n",lVar16,ptr)" ( identifier , (string_literal "" start date: %.*s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(pBVar12,1,0,(void *)0x0);" (call_expression "BIO_ctrl(pBVar12,1,0,(void *)0x0)" identifier (argument_list "(pBVar12,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "pAVar15 = (ASN1_TIME *)X509_get0_notAfter(connssl->backend->server_cert);" (assignment_expression "pAVar15 = (ASN1_TIME *)X509_get0_notAfter(connssl->backend->server_cert)" identifier = (cast_expression "(ASN1_TIME *)X509_get0_notAfter(connssl->backend->server_cert)" ( (type_descriptor "ASN1_TIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get0_notAfter(connssl->backend->server_cert)" identifier (argument_list "(connssl->backend->server_cert)" ( (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier) ))))) ;) (expression_statement "ASN1_TIME_print(pBVar12,pAVar15);" (call_expression "ASN1_TIME_print(pBVar12,pAVar15)" identifier (argument_list "(pBVar12,pAVar15)" ( identifier , identifier ))) ;) (expression_statement "puVar17 = (uchar *)BIO_ctrl(pBVar12,3,0,&ptr);" (assignment_expression "puVar17 = (uchar *)BIO_ctrl(pBVar12,3,0,&ptr)" identifier = (cast_expression "(uchar *)BIO_ctrl(pBVar12,3,0,&ptr)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "BIO_ctrl(pBVar12,3,0,&ptr)" identifier (argument_list "(pBVar12,3,0,&ptr)" ( identifier , number_literal , number_literal , (pointer_expression "&ptr" & identifier) ))))) ;) (expression_statement "local_a0c = (uchar *)ptr;" (assignment_expression "local_a0c = (uchar *)ptr" identifier = (cast_expression "(uchar *)ptr" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "Curl_infof(data," expire date: %.*s\n",puVar17,ptr);" (call_expression "Curl_infof(data," expire date: %.*s\n",puVar17,ptr)" identifier (argument_list "(data," expire date: %.*s\n",puVar17,ptr)" ( identifier , (string_literal "" expire date: %.*s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(pBVar12,1,0,(void *)0x0);" (call_expression "BIO_ctrl(pBVar12,1,0,(void *)0x0)" identifier (argument_list "(pBVar12,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "BIO_free(pBVar12);" (call_expression "BIO_free(pBVar12)" identifier (argument_list "(pBVar12)" ( identifier ))) ;) (expression_statement "local_a44 = (X509 *)connssl->backend->server_cert;" (assignment_expression "local_a44 = (X509 *)connssl->backend->server_cert" identifier = (cast_expression "(X509 *)connssl->backend->server_cert" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier))) ;) (if_statement "if ((conn->http_proxy).proxytype != CURLPROXY_HTTPS) {\n    if ((conn->ssl_config).verifyhost == false) goto LAB_000780f3;\n    local_a18 = conn->data;\nLAB_00078282:\n    local_a2c = (conn->host).name;\n    local_a10 = (uchar *)(conn->host).dispname;\nLAB_0007829a:\n    if (((conn->bits).ipv6_ip == false) || (iVar38 = inet_pton(10,local_a2c,&addr), iVar38 == 0)) {\n      local_a24 = &addr;\n      iVar38 = inet_pton(2,local_a2c,local_a24);\n      local_a1c = (uchar *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a1c = (uchar *)0x10;\n      iVar38 = 7;\n    }\n    local_a24 = &addr;\n    puVar43 = (uchar *)0x0;\n    puVar17 = (uchar *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a44,0x55,(int *)0x0,(int *)0x0);\n    local_a0c = puVar43;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      temp = "";\n      pXVar14 = X509_get_subject_name(local_a44);\n      puVar43 = (uchar *)0xffffffff;\n      if (pXVar14 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (temp == "") {\n          temp = (uchar *)0x0;\nLAB_0007950b:\n          pcVar30 = "SSL: unable to obtain common name from peer certificate";\n          local_a10 = local_a0c;\n        }\n        else {\n          if (temp == (uchar *)0x0) goto LAB_0007950b;\n          iVar38 = Curl_cert_hostcheck((char *)temp,local_a2c);\n          puVar17 = temp;\n          if (iVar38 != 0) {\n            Curl_infof(local_a18," common name: %s (matched)\n",temp);\n            if (temp == (uchar *)0x0) goto LAB_000783a8;\n            puVar17 = (uchar *)0x693;\n            local_a0c = extraout_EDX;\n            CRYPTO_free(temp);\n            local_a44 = (X509 *)connssl->backend->server_cert;\n            goto LAB_000780f3;\n          }\n          pcVar30 = "SSL: certificate subject name \'%s\' does not match target host name \'%s\'";\n        }\n        Curl_failf(local_a18,pcVar30,puVar17,local_a10);\nLAB_000790e4:\n        if (temp != (uchar *)0x0) {\n          CRYPTO_free(temp);\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          puVar36 = puVar43;\n          puVar17 = puVar36;\n          puVar43 = (uchar *)X509_NAME_get_index_by_NID(pXVar14,0xd,(int)puVar36);\n        } while (-1 < (int)puVar43);\n        if (puVar36 == (uchar *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar14,(int)puVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          puVar43 = (uchar *)ASN1_STRING_length(pAVar34);\n          if ((int)puVar43 < 0) goto LAB_0007969a;\n          puVar17 = (uchar *)0x662;\n          temp = (uchar *)CRYPTO_malloc((int)(puVar43 + 1),"vtls/openssl.c",0x662);\n          if (temp != (uchar *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            puVar17 = puVar43;\n            memcpy(temp,pvVar37,(size_t)puVar43);\n            temp[(int)puVar43] = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        puVar43 = (uchar *)ASN1_STRING_to_UTF8(&temp,pAVar34);\nLAB_0007969a:\n        if (temp == (uchar *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)temp);\n        puVar36 = (uchar *)curlx_uztosi(sVar35);\n        if (puVar36 == puVar43) goto LAB_0007908e;\n        Curl_failf(local_a18,"SSL: illegal cert name field");\n        if (temp != "") goto LAB_000790e4;\n      }\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }\n    else {\n      iVar28 = OPENSSL_sk_num(a);\n      if (iVar28 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a0c = puVar43;\n        goto LAB_00079040;\n      }\n      bVar6 = false;\n      iVar29 = 0;\n      bVar7 = false;\n      bVar8 = false;\n      do {\n        while( true ) {\n          piVar22 = (int *)OPENSSL_sk_value(a,iVar29);\n          iVar33 = *piVar22;\n          if (iVar33 == 2) break;\n          if (iVar33 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1]);\n              puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n              if (local_a1c == puVar36) {\n                puVar17 = local_a1c;\n                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);\n                bVar7 = true;\n                if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar7 = true;\n          }\n          else if (iVar33 == iVar38) {\n            local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          iVar29 = iVar29 + 1;\n          local_a0c = puVar43;\n          if (iVar28 == iVar29) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n          bVar8 = true;\nLAB_00079422:\n          sVar32 = strlen((char *)local_a0c);\n          if ((sVar32 != sVar35) ||\n             (iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c), iVar33 == 0))\n          goto LAB_00078351;\n          Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s \"%s\"\n",local_a10,\n                     local_a0c);\n          GENERAL_NAMES_free(a);\n          puVar17 = local_a10;\n          goto LAB_000783a8;\n        }\n        bVar8 = true;\n        iVar29 = iVar29 + 1;\n        local_a0c = puVar43;\n      } while (iVar28 != iVar29);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar6) {\nLAB_000783a8:\n        local_a44 = (X509 *)connssl->backend->server_cert;\n        goto LAB_000780f3;\n      }\n      if ((!bVar7) && (!bVar8)) goto LAB_00079040;\n      Curl_infof(local_a18," subjectAltName does not match %s\n",local_a10);\n      Curl_failf(local_a18,\n                 "SSL: no alternative certificate subject name matches target host name \'%s\'",\n                 local_a10);\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }\nLAB_000794d2:\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    X509_free(pXVar13);\n    connssl->backend->server_cert = (X509 *)0x0;\n    goto LAB_00078251;\n  }" if (parenthesized_expression "((conn->http_proxy).proxytype != CURLPROXY_HTTPS)" ( (binary_expression "(conn->http_proxy).proxytype != CURLPROXY_HTTPS" (field_expression "(conn->http_proxy).proxytype" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier) != identifier) )) (compound_statement "{\n    if ((conn->ssl_config).verifyhost == false) goto LAB_000780f3;\n    local_a18 = conn->data;\nLAB_00078282:\n    local_a2c = (conn->host).name;\n    local_a10 = (uchar *)(conn->host).dispname;\nLAB_0007829a:\n    if (((conn->bits).ipv6_ip == false) || (iVar38 = inet_pton(10,local_a2c,&addr), iVar38 == 0)) {\n      local_a24 = &addr;\n      iVar38 = inet_pton(2,local_a2c,local_a24);\n      local_a1c = (uchar *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a1c = (uchar *)0x10;\n      iVar38 = 7;\n    }\n    local_a24 = &addr;\n    puVar43 = (uchar *)0x0;\n    puVar17 = (uchar *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a44,0x55,(int *)0x0,(int *)0x0);\n    local_a0c = puVar43;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      temp = "";\n      pXVar14 = X509_get_subject_name(local_a44);\n      puVar43 = (uchar *)0xffffffff;\n      if (pXVar14 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (temp == "") {\n          temp = (uchar *)0x0;\nLAB_0007950b:\n          pcVar30 = "SSL: unable to obtain common name from peer certificate";\n          local_a10 = local_a0c;\n        }\n        else {\n          if (temp == (uchar *)0x0) goto LAB_0007950b;\n          iVar38 = Curl_cert_hostcheck((char *)temp,local_a2c);\n          puVar17 = temp;\n          if (iVar38 != 0) {\n            Curl_infof(local_a18," common name: %s (matched)\n",temp);\n            if (temp == (uchar *)0x0) goto LAB_000783a8;\n            puVar17 = (uchar *)0x693;\n            local_a0c = extraout_EDX;\n            CRYPTO_free(temp);\n            local_a44 = (X509 *)connssl->backend->server_cert;\n            goto LAB_000780f3;\n          }\n          pcVar30 = "SSL: certificate subject name \'%s\' does not match target host name \'%s\'";\n        }\n        Curl_failf(local_a18,pcVar30,puVar17,local_a10);\nLAB_000790e4:\n        if (temp != (uchar *)0x0) {\n          CRYPTO_free(temp);\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          puVar36 = puVar43;\n          puVar17 = puVar36;\n          puVar43 = (uchar *)X509_NAME_get_index_by_NID(pXVar14,0xd,(int)puVar36);\n        } while (-1 < (int)puVar43);\n        if (puVar36 == (uchar *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar14,(int)puVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          puVar43 = (uchar *)ASN1_STRING_length(pAVar34);\n          if ((int)puVar43 < 0) goto LAB_0007969a;\n          puVar17 = (uchar *)0x662;\n          temp = (uchar *)CRYPTO_malloc((int)(puVar43 + 1),"vtls/openssl.c",0x662);\n          if (temp != (uchar *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            puVar17 = puVar43;\n            memcpy(temp,pvVar37,(size_t)puVar43);\n            temp[(int)puVar43] = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        puVar43 = (uchar *)ASN1_STRING_to_UTF8(&temp,pAVar34);\nLAB_0007969a:\n        if (temp == (uchar *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)temp);\n        puVar36 = (uchar *)curlx_uztosi(sVar35);\n        if (puVar36 == puVar43) goto LAB_0007908e;\n        Curl_failf(local_a18,"SSL: illegal cert name field");\n        if (temp != "") goto LAB_000790e4;\n      }\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }\n    else {\n      iVar28 = OPENSSL_sk_num(a);\n      if (iVar28 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a0c = puVar43;\n        goto LAB_00079040;\n      }\n      bVar6 = false;\n      iVar29 = 0;\n      bVar7 = false;\n      bVar8 = false;\n      do {\n        while( true ) {\n          piVar22 = (int *)OPENSSL_sk_value(a,iVar29);\n          iVar33 = *piVar22;\n          if (iVar33 == 2) break;\n          if (iVar33 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1]);\n              puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n              if (local_a1c == puVar36) {\n                puVar17 = local_a1c;\n                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);\n                bVar7 = true;\n                if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar7 = true;\n          }\n          else if (iVar33 == iVar38) {\n            local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          iVar29 = iVar29 + 1;\n          local_a0c = puVar43;\n          if (iVar28 == iVar29) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n          bVar8 = true;\nLAB_00079422:\n          sVar32 = strlen((char *)local_a0c);\n          if ((sVar32 != sVar35) ||\n             (iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c), iVar33 == 0))\n          goto LAB_00078351;\n          Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s \"%s\"\n",local_a10,\n                     local_a0c);\n          GENERAL_NAMES_free(a);\n          puVar17 = local_a10;\n          goto LAB_000783a8;\n        }\n        bVar8 = true;\n        iVar29 = iVar29 + 1;\n        local_a0c = puVar43;\n      } while (iVar28 != iVar29);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar6) {\nLAB_000783a8:\n        local_a44 = (X509 *)connssl->backend->server_cert;\n        goto LAB_000780f3;\n      }\n      if ((!bVar7) && (!bVar8)) goto LAB_00079040;\n      Curl_infof(local_a18," subjectAltName does not match %s\n",local_a10);\n      Curl_failf(local_a18,\n                 "SSL: no alternative certificate subject name matches target host name \'%s\'",\n                 local_a10);\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }\nLAB_000794d2:\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    X509_free(pXVar13);\n    connssl->backend->server_cert = (X509 *)0x0;\n    goto LAB_00078251;\n  }" { (if_statement "if ((conn->ssl_config).verifyhost == false) goto LAB_000780f3;" if (parenthesized_expression "((conn->ssl_config).verifyhost == false)" ( (binary_expression "(conn->ssl_config).verifyhost == false" (field_expression "(conn->ssl_config).verifyhost" (parenthesized_expression "(conn->ssl_config)" ( (field_expression "conn->ssl_config" identifier -> field_identifier) )) . field_identifier) == false) )) (goto_statement "goto LAB_000780f3;" goto statement_identifier ;)) (expression_statement "local_a18 = conn->data;" (assignment_expression "local_a18 = conn->data" identifier = (field_expression "conn->data" identifier -> field_identifier)) ;) (labeled_statement "LAB_00078282:\n    local_a2c = (conn->host).name;" statement_identifier : (expression_statement "local_a2c = (conn->host).name;" (assignment_expression "local_a2c = (conn->host).name" identifier = (field_expression "(conn->host).name" (parenthesized_expression "(conn->host)" ( (field_expression "conn->host" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "local_a10 = (uchar *)(conn->host).dispname;" (assignment_expression "local_a10 = (uchar *)(conn->host).dispname" identifier = (cast_expression "(uchar *)(conn->host).dispname" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(conn->host).dispname" (parenthesized_expression "(conn->host)" ( (field_expression "conn->host" identifier -> field_identifier) )) . field_identifier))) ;) (labeled_statement "LAB_0007829a:\n    if (((conn->bits).ipv6_ip == false) || (iVar38 = inet_pton(10,local_a2c,&addr), iVar38 == 0)) {\n      local_a24 = &addr;\n      iVar38 = inet_pton(2,local_a2c,local_a24);\n      local_a1c = (uchar *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a1c = (uchar *)0x10;\n      iVar38 = 7;\n    }" statement_identifier : (if_statement "if (((conn->bits).ipv6_ip == false) || (iVar38 = inet_pton(10,local_a2c,&addr), iVar38 == 0)) {\n      local_a24 = &addr;\n      iVar38 = inet_pton(2,local_a2c,local_a24);\n      local_a1c = (uchar *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a1c = (uchar *)0x10;\n      iVar38 = 7;\n    }" if (parenthesized_expression "(((conn->bits).ipv6_ip == false) || (iVar38 = inet_pton(10,local_a2c,&addr), iVar38 == 0))" ( (binary_expression "((conn->bits).ipv6_ip == false) || (iVar38 = inet_pton(10,local_a2c,&addr), iVar38 == 0)" (parenthesized_expression "((conn->bits).ipv6_ip == false)" ( (binary_expression "(conn->bits).ipv6_ip == false" (field_expression "(conn->bits).ipv6_ip" (parenthesized_expression "(conn->bits)" ( (field_expression "conn->bits" identifier -> field_identifier) )) . field_identifier) == false) )) || (parenthesized_expression "(iVar38 = inet_pton(10,local_a2c,&addr), iVar38 == 0)" ( (comma_expression "iVar38 = inet_pton(10,local_a2c,&addr), iVar38 == 0" (assignment_expression "iVar38 = inet_pton(10,local_a2c,&addr)" identifier = (call_expression "inet_pton(10,local_a2c,&addr)" identifier (argument_list "(10,local_a2c,&addr)" ( number_literal , identifier , (pointer_expression "&addr" & identifier) )))) , (binary_expression "iVar38 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      local_a24 = &addr;\n      iVar38 = inet_pton(2,local_a2c,local_a24);\n      local_a1c = (uchar *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }" { (expression_statement "local_a24 = &addr;" (assignment_expression "local_a24 = &addr" identifier = (pointer_expression "&addr" & identifier)) ;) (expression_statement "iVar38 = inet_pton(2,local_a2c,local_a24);" (assignment_expression "iVar38 = inet_pton(2,local_a2c,local_a24)" identifier = (call_expression "inet_pton(2,local_a2c,local_a24)" identifier (argument_list "(2,local_a2c,local_a24)" ( number_literal , identifier , identifier )))) ;) (expression_statement "local_a1c = (uchar *)(~-(uint)(iVar38 == 0) & 4);" (assignment_expression "local_a1c = (uchar *)(~-(uint)(iVar38 == 0) & 4)" identifier = (cast_expression "(uchar *)(~-(uint)(iVar38 == 0) & 4)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~-(uint)(iVar38 == 0) & 4)" ( (binary_expression "~-(uint)(iVar38 == 0) & 4" (unary_expression "~-(uint)(iVar38 == 0)" ~ (unary_expression "-(uint)(iVar38 == 0)" - (call_expression "(uint)(iVar38 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) ))))) & number_literal) )))) ;) (expression_statement "iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;" (assignment_expression "iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7" identifier = (binary_expression "(-(uint)(iVar38 == 0) & 0xfffffffb) + 7" (parenthesized_expression "(-(uint)(iVar38 == 0) & 0xfffffffb)" ( (binary_expression "-(uint)(iVar38 == 0) & 0xfffffffb" (unary_expression "-(uint)(iVar38 == 0)" - (call_expression "(uint)(iVar38 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) }) (else_clause "else {\n      local_a1c = (uchar *)0x10;\n      iVar38 = 7;\n    }" else (compound_statement "{\n      local_a1c = (uchar *)0x10;\n      iVar38 = 7;\n    }" { (expression_statement "local_a1c = (uchar *)0x10;" (assignment_expression "local_a1c = (uchar *)0x10" identifier = (cast_expression "(uchar *)0x10" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar38 = 7;" (assignment_expression "iVar38 = 7" identifier = number_literal) ;) })))) (expression_statement "local_a24 = &addr;" (assignment_expression "local_a24 = &addr" identifier = (pointer_expression "&addr" & identifier)) ;) (expression_statement "puVar43 = (uchar *)0x0;" (assignment_expression "puVar43 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar17 = (uchar *)0x0;" (assignment_expression "puVar17 = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a44,0x55,(int *)0x0,(int *)0x0);" (assignment_expression "a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a44,0x55,(int *)0x0,(int *)0x0)" identifier = (cast_expression "(GENERAL_NAMES *)X509_get_ext_d2i(local_a44,0x55,(int *)0x0,(int *)0x0)" ( (type_descriptor "GENERAL_NAMES *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get_ext_d2i(local_a44,0x55,(int *)0x0,(int *)0x0)" identifier (argument_list "(local_a44,0x55,(int *)0x0,(int *)0x0)" ( identifier , number_literal , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "local_a0c = puVar43;" (assignment_expression "local_a0c = puVar43" identifier = identifier) ;) (if_statement "if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      temp = "";\n      pXVar14 = X509_get_subject_name(local_a44);\n      puVar43 = (uchar *)0xffffffff;\n      if (pXVar14 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (temp == "") {\n          temp = (uchar *)0x0;\nLAB_0007950b:\n          pcVar30 = "SSL: unable to obtain common name from peer certificate";\n          local_a10 = local_a0c;\n        }\n        else {\n          if (temp == (uchar *)0x0) goto LAB_0007950b;\n          iVar38 = Curl_cert_hostcheck((char *)temp,local_a2c);\n          puVar17 = temp;\n          if (iVar38 != 0) {\n            Curl_infof(local_a18," common name: %s (matched)\n",temp);\n            if (temp == (uchar *)0x0) goto LAB_000783a8;\n            puVar17 = (uchar *)0x693;\n            local_a0c = extraout_EDX;\n            CRYPTO_free(temp);\n            local_a44 = (X509 *)connssl->backend->server_cert;\n            goto LAB_000780f3;\n          }\n          pcVar30 = "SSL: certificate subject name \'%s\' does not match target host name \'%s\'";\n        }\n        Curl_failf(local_a18,pcVar30,puVar17,local_a10);\nLAB_000790e4:\n        if (temp != (uchar *)0x0) {\n          CRYPTO_free(temp);\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          puVar36 = puVar43;\n          puVar17 = puVar36;\n          puVar43 = (uchar *)X509_NAME_get_index_by_NID(pXVar14,0xd,(int)puVar36);\n        } while (-1 < (int)puVar43);\n        if (puVar36 == (uchar *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar14,(int)puVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          puVar43 = (uchar *)ASN1_STRING_length(pAVar34);\n          if ((int)puVar43 < 0) goto LAB_0007969a;\n          puVar17 = (uchar *)0x662;\n          temp = (uchar *)CRYPTO_malloc((int)(puVar43 + 1),"vtls/openssl.c",0x662);\n          if (temp != (uchar *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            puVar17 = puVar43;\n            memcpy(temp,pvVar37,(size_t)puVar43);\n            temp[(int)puVar43] = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        puVar43 = (uchar *)ASN1_STRING_to_UTF8(&temp,pAVar34);\nLAB_0007969a:\n        if (temp == (uchar *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)temp);\n        puVar36 = (uchar *)curlx_uztosi(sVar35);\n        if (puVar36 == puVar43) goto LAB_0007908e;\n        Curl_failf(local_a18,"SSL: illegal cert name field");\n        if (temp != "") goto LAB_000790e4;\n      }\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }\n    else {\n      iVar28 = OPENSSL_sk_num(a);\n      if (iVar28 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a0c = puVar43;\n        goto LAB_00079040;\n      }\n      bVar6 = false;\n      iVar29 = 0;\n      bVar7 = false;\n      bVar8 = false;\n      do {\n        while( true ) {\n          piVar22 = (int *)OPENSSL_sk_value(a,iVar29);\n          iVar33 = *piVar22;\n          if (iVar33 == 2) break;\n          if (iVar33 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1]);\n              puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n              if (local_a1c == puVar36) {\n                puVar17 = local_a1c;\n                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);\n                bVar7 = true;\n                if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar7 = true;\n          }\n          else if (iVar33 == iVar38) {\n            local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          iVar29 = iVar29 + 1;\n          local_a0c = puVar43;\n          if (iVar28 == iVar29) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n          bVar8 = true;\nLAB_00079422:\n          sVar32 = strlen((char *)local_a0c);\n          if ((sVar32 != sVar35) ||\n             (iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c), iVar33 == 0))\n          goto LAB_00078351;\n          Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s \"%s\"\n",local_a10,\n                     local_a0c);\n          GENERAL_NAMES_free(a);\n          puVar17 = local_a10;\n          goto LAB_000783a8;\n        }\n        bVar8 = true;\n        iVar29 = iVar29 + 1;\n        local_a0c = puVar43;\n      } while (iVar28 != iVar29);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar6) {\nLAB_000783a8:\n        local_a44 = (X509 *)connssl->backend->server_cert;\n        goto LAB_000780f3;\n      }\n      if ((!bVar7) && (!bVar8)) goto LAB_00079040;\n      Curl_infof(local_a18," subjectAltName does not match %s\n",local_a10);\n      Curl_failf(local_a18,\n                 "SSL: no alternative certificate subject name matches target host name \'%s\'",\n                 local_a10);\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }" if (parenthesized_expression "(a == (GENERAL_NAMES *)0x0)" ( (binary_expression "a == (GENERAL_NAMES *)0x0" identifier == (cast_expression "(GENERAL_NAMES *)0x0" ( (type_descriptor "GENERAL_NAMES *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00079040:\n      temp = "";\n      pXVar14 = X509_get_subject_name(local_a44);\n      puVar43 = (uchar *)0xffffffff;\n      if (pXVar14 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (temp == "") {\n          temp = (uchar *)0x0;\nLAB_0007950b:\n          pcVar30 = "SSL: unable to obtain common name from peer certificate";\n          local_a10 = local_a0c;\n        }\n        else {\n          if (temp == (uchar *)0x0) goto LAB_0007950b;\n          iVar38 = Curl_cert_hostcheck((char *)temp,local_a2c);\n          puVar17 = temp;\n          if (iVar38 != 0) {\n            Curl_infof(local_a18," common name: %s (matched)\n",temp);\n            if (temp == (uchar *)0x0) goto LAB_000783a8;\n            puVar17 = (uchar *)0x693;\n            local_a0c = extraout_EDX;\n            CRYPTO_free(temp);\n            local_a44 = (X509 *)connssl->backend->server_cert;\n            goto LAB_000780f3;\n          }\n          pcVar30 = "SSL: certificate subject name \'%s\' does not match target host name \'%s\'";\n        }\n        Curl_failf(local_a18,pcVar30,puVar17,local_a10);\nLAB_000790e4:\n        if (temp != (uchar *)0x0) {\n          CRYPTO_free(temp);\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          puVar36 = puVar43;\n          puVar17 = puVar36;\n          puVar43 = (uchar *)X509_NAME_get_index_by_NID(pXVar14,0xd,(int)puVar36);\n        } while (-1 < (int)puVar43);\n        if (puVar36 == (uchar *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar14,(int)puVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          puVar43 = (uchar *)ASN1_STRING_length(pAVar34);\n          if ((int)puVar43 < 0) goto LAB_0007969a;\n          puVar17 = (uchar *)0x662;\n          temp = (uchar *)CRYPTO_malloc((int)(puVar43 + 1),"vtls/openssl.c",0x662);\n          if (temp != (uchar *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            puVar17 = puVar43;\n            memcpy(temp,pvVar37,(size_t)puVar43);\n            temp[(int)puVar43] = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        puVar43 = (uchar *)ASN1_STRING_to_UTF8(&temp,pAVar34);\nLAB_0007969a:\n        if (temp == (uchar *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)temp);\n        puVar36 = (uchar *)curlx_uztosi(sVar35);\n        if (puVar36 == puVar43) goto LAB_0007908e;\n        Curl_failf(local_a18,"SSL: illegal cert name field");\n        if (temp != "") goto LAB_000790e4;\n      }\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }" { (labeled_statement "LAB_00079040:\n      temp = "";" statement_identifier : (expression_statement "temp = "";" (assignment_expression "temp = """ identifier = (string_literal """" " ")) ;)) (expression_statement "pXVar14 = X509_get_subject_name(local_a44);" (assignment_expression "pXVar14 = X509_get_subject_name(local_a44)" identifier = (call_expression "X509_get_subject_name(local_a44)" identifier (argument_list "(local_a44)" ( identifier )))) ;) (expression_statement "puVar43 = (uchar *)0xffffffff;" (assignment_expression "puVar43 = (uchar *)0xffffffff" identifier = (cast_expression "(uchar *)0xffffffff" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pXVar14 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (temp == "") {\n          temp = (uchar *)0x0;\nLAB_0007950b:\n          pcVar30 = "SSL: unable to obtain common name from peer certificate";\n          local_a10 = local_a0c;\n        }\n        else {\n          if (temp == (uchar *)0x0) goto LAB_0007950b;\n          iVar38 = Curl_cert_hostcheck((char *)temp,local_a2c);\n          puVar17 = temp;\n          if (iVar38 != 0) {\n            Curl_infof(local_a18," common name: %s (matched)\n",temp);\n            if (temp == (uchar *)0x0) goto LAB_000783a8;\n            puVar17 = (uchar *)0x693;\n            local_a0c = extraout_EDX;\n            CRYPTO_free(temp);\n            local_a44 = (X509 *)connssl->backend->server_cert;\n            goto LAB_000780f3;\n          }\n          pcVar30 = "SSL: certificate subject name \'%s\' does not match target host name \'%s\'";\n        }\n        Curl_failf(local_a18,pcVar30,puVar17,local_a10);\nLAB_000790e4:\n        if (temp != (uchar *)0x0) {\n          CRYPTO_free(temp);\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          puVar36 = puVar43;\n          puVar17 = puVar36;\n          puVar43 = (uchar *)X509_NAME_get_index_by_NID(pXVar14,0xd,(int)puVar36);\n        } while (-1 < (int)puVar43);\n        if (puVar36 == (uchar *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar14,(int)puVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          puVar43 = (uchar *)ASN1_STRING_length(pAVar34);\n          if ((int)puVar43 < 0) goto LAB_0007969a;\n          puVar17 = (uchar *)0x662;\n          temp = (uchar *)CRYPTO_malloc((int)(puVar43 + 1),"vtls/openssl.c",0x662);\n          if (temp != (uchar *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            puVar17 = puVar43;\n            memcpy(temp,pvVar37,(size_t)puVar43);\n            temp[(int)puVar43] = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        puVar43 = (uchar *)ASN1_STRING_to_UTF8(&temp,pAVar34);\nLAB_0007969a:\n        if (temp == (uchar *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)temp);\n        puVar36 = (uchar *)curlx_uztosi(sVar35);\n        if (puVar36 == puVar43) goto LAB_0007908e;\n        Curl_failf(local_a18,"SSL: illegal cert name field");\n        if (temp != "") goto LAB_000790e4;\n      }" if (parenthesized_expression "(pXVar14 == (X509_NAME *)0x0)" ( (binary_expression "pXVar14 == (X509_NAME *)0x0" identifier == (cast_expression "(X509_NAME *)0x0" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0007908e:\n        if (temp == "") {\n          temp = (uchar *)0x0;\nLAB_0007950b:\n          pcVar30 = "SSL: unable to obtain common name from peer certificate";\n          local_a10 = local_a0c;\n        }\n        else {\n          if (temp == (uchar *)0x0) goto LAB_0007950b;\n          iVar38 = Curl_cert_hostcheck((char *)temp,local_a2c);\n          puVar17 = temp;\n          if (iVar38 != 0) {\n            Curl_infof(local_a18," common name: %s (matched)\n",temp);\n            if (temp == (uchar *)0x0) goto LAB_000783a8;\n            puVar17 = (uchar *)0x693;\n            local_a0c = extraout_EDX;\n            CRYPTO_free(temp);\n            local_a44 = (X509 *)connssl->backend->server_cert;\n            goto LAB_000780f3;\n          }\n          pcVar30 = "SSL: certificate subject name \'%s\' does not match target host name \'%s\'";\n        }\n        Curl_failf(local_a18,pcVar30,puVar17,local_a10);\nLAB_000790e4:\n        if (temp != (uchar *)0x0) {\n          CRYPTO_free(temp);\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_000794d2;\n        }\n      }" { (labeled_statement "LAB_0007908e:\n        if (temp == "") {\n          temp = (uchar *)0x0;\nLAB_0007950b:\n          pcVar30 = "SSL: unable to obtain common name from peer certificate";\n          local_a10 = local_a0c;\n        }\n        else {\n          if (temp == (uchar *)0x0) goto LAB_0007950b;\n          iVar38 = Curl_cert_hostcheck((char *)temp,local_a2c);\n          puVar17 = temp;\n          if (iVar38 != 0) {\n            Curl_infof(local_a18," common name: %s (matched)\n",temp);\n            if (temp == (uchar *)0x0) goto LAB_000783a8;\n            puVar17 = (uchar *)0x693;\n            local_a0c = extraout_EDX;\n            CRYPTO_free(temp);\n            local_a44 = (X509 *)connssl->backend->server_cert;\n            goto LAB_000780f3;\n          }\n          pcVar30 = "SSL: certificate subject name \'%s\' does not match target host name \'%s\'";\n        }" statement_identifier : (if_statement "if (temp == "") {\n          temp = (uchar *)0x0;\nLAB_0007950b:\n          pcVar30 = "SSL: unable to obtain common name from peer certificate";\n          local_a10 = local_a0c;\n        }\n        else {\n          if (temp == (uchar *)0x0) goto LAB_0007950b;\n          iVar38 = Curl_cert_hostcheck((char *)temp,local_a2c);\n          puVar17 = temp;\n          if (iVar38 != 0) {\n            Curl_infof(local_a18," common name: %s (matched)\n",temp);\n            if (temp == (uchar *)0x0) goto LAB_000783a8;\n            puVar17 = (uchar *)0x693;\n            local_a0c = extraout_EDX;\n            CRYPTO_free(temp);\n            local_a44 = (X509 *)connssl->backend->server_cert;\n            goto LAB_000780f3;\n          }\n          pcVar30 = "SSL: certificate subject name \'%s\' does not match target host name \'%s\'";\n        }" if (parenthesized_expression "(temp == "")" ( (binary_expression "temp == """ identifier == (string_literal """" " ")) )) (compound_statement "{\n          temp = (uchar *)0x0;\nLAB_0007950b:\n          pcVar30 = "SSL: unable to obtain common name from peer certificate";\n          local_a10 = local_a0c;\n        }" { (expression_statement "temp = (uchar *)0x0;" (assignment_expression "temp = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0007950b:\n          pcVar30 = "SSL: unable to obtain common name from peer certificate";" statement_identifier : (expression_statement "pcVar30 = "SSL: unable to obtain common name from peer certificate";" (assignment_expression "pcVar30 = "SSL: unable to obtain common name from peer certificate"" identifier = (string_literal ""SSL: unable to obtain common name from peer certificate"" " string_content ")) ;)) (expression_statement "local_a10 = local_a0c;" (assignment_expression "local_a10 = local_a0c" identifier = identifier) ;) }) (else_clause "else {\n          if (temp == (uchar *)0x0) goto LAB_0007950b;\n          iVar38 = Curl_cert_hostcheck((char *)temp,local_a2c);\n          puVar17 = temp;\n          if (iVar38 != 0) {\n            Curl_infof(local_a18," common name: %s (matched)\n",temp);\n            if (temp == (uchar *)0x0) goto LAB_000783a8;\n            puVar17 = (uchar *)0x693;\n            local_a0c = extraout_EDX;\n            CRYPTO_free(temp);\n            local_a44 = (X509 *)connssl->backend->server_cert;\n            goto LAB_000780f3;\n          }\n          pcVar30 = "SSL: certificate subject name \'%s\' does not match target host name \'%s\'";\n        }" else (compound_statement "{\n          if (temp == (uchar *)0x0) goto LAB_0007950b;\n          iVar38 = Curl_cert_hostcheck((char *)temp,local_a2c);\n          puVar17 = temp;\n          if (iVar38 != 0) {\n            Curl_infof(local_a18," common name: %s (matched)\n",temp);\n            if (temp == (uchar *)0x0) goto LAB_000783a8;\n            puVar17 = (uchar *)0x693;\n            local_a0c = extraout_EDX;\n            CRYPTO_free(temp);\n            local_a44 = (X509 *)connssl->backend->server_cert;\n            goto LAB_000780f3;\n          }\n          pcVar30 = "SSL: certificate subject name \'%s\' does not match target host name \'%s\'";\n        }" { (if_statement "if (temp == (uchar *)0x0) goto LAB_0007950b;" if (parenthesized_expression "(temp == (uchar *)0x0)" ( (binary_expression "temp == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007950b;" goto statement_identifier ;)) (expression_statement "iVar38 = Curl_cert_hostcheck((char *)temp,local_a2c);" (assignment_expression "iVar38 = Curl_cert_hostcheck((char *)temp,local_a2c)" identifier = (call_expression "Curl_cert_hostcheck((char *)temp,local_a2c)" identifier (argument_list "((char *)temp,local_a2c)" ( (cast_expression "(char *)temp" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "puVar17 = temp;" (assignment_expression "puVar17 = temp" identifier = identifier) ;) (if_statement "if (iVar38 != 0) {\n            Curl_infof(local_a18," common name: %s (matched)\n",temp);\n            if (temp == (uchar *)0x0) goto LAB_000783a8;\n            puVar17 = (uchar *)0x693;\n            local_a0c = extraout_EDX;\n            CRYPTO_free(temp);\n            local_a44 = (X509 *)connssl->backend->server_cert;\n            goto LAB_000780f3;\n          }" if (parenthesized_expression "(iVar38 != 0)" ( (binary_expression "iVar38 != 0" identifier != number_literal) )) (compound_statement "{\n            Curl_infof(local_a18," common name: %s (matched)\n",temp);\n            if (temp == (uchar *)0x0) goto LAB_000783a8;\n            puVar17 = (uchar *)0x693;\n            local_a0c = extraout_EDX;\n            CRYPTO_free(temp);\n            local_a44 = (X509 *)connssl->backend->server_cert;\n            goto LAB_000780f3;\n          }" { (expression_statement "Curl_infof(local_a18," common name: %s (matched)\n",temp);" (call_expression "Curl_infof(local_a18," common name: %s (matched)\n",temp)" identifier (argument_list "(local_a18," common name: %s (matched)\n",temp)" ( identifier , (string_literal "" common name: %s (matched)\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if (temp == (uchar *)0x0) goto LAB_000783a8;" if (parenthesized_expression "(temp == (uchar *)0x0)" ( (binary_expression "temp == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000783a8;" goto statement_identifier ;)) (expression_statement "puVar17 = (uchar *)0x693;" (assignment_expression "puVar17 = (uchar *)0x693" identifier = (cast_expression "(uchar *)0x693" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a0c = extraout_EDX;" (assignment_expression "local_a0c = extraout_EDX" identifier = identifier) ;) (expression_statement "CRYPTO_free(temp);" (call_expression "CRYPTO_free(temp)" identifier (argument_list "(temp)" ( identifier ))) ;) (expression_statement "local_a44 = (X509 *)connssl->backend->server_cert;" (assignment_expression "local_a44 = (X509 *)connssl->backend->server_cert" identifier = (cast_expression "(X509 *)connssl->backend->server_cert" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier))) ;) (goto_statement "goto LAB_000780f3;" goto statement_identifier ;) })) (expression_statement "pcVar30 = "SSL: certificate subject name \'%s\' does not match target host name \'%s\'";" (assignment_expression "pcVar30 = "SSL: certificate subject name \'%s\' does not match target host name \'%s\'"" identifier = (string_literal ""SSL: certificate subject name \'%s\' does not match target host name \'%s\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ")) ;) })))) (expression_statement "Curl_failf(local_a18,pcVar30,puVar17,local_a10);" (call_expression "Curl_failf(local_a18,pcVar30,puVar17,local_a10)" identifier (argument_list "(local_a18,pcVar30,puVar17,local_a10)" ( identifier , identifier , identifier , identifier ))) ;) (labeled_statement "LAB_000790e4:\n        if (temp != (uchar *)0x0) {\n          CRYPTO_free(temp);\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_000794d2;\n        }" statement_identifier : (if_statement "if (temp != (uchar *)0x0) {\n          CRYPTO_free(temp);\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_000794d2;\n        }" if (parenthesized_expression "(temp != (uchar *)0x0)" ( (binary_expression "temp != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          CRYPTO_free(temp);\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_000794d2;\n        }" { (expression_statement "CRYPTO_free(temp);" (call_expression "CRYPTO_free(temp)" identifier (argument_list "(temp)" ( identifier ))) ;) (expression_statement "pXVar13 = (X509 *)connssl->backend->server_cert;" (assignment_expression "pXVar13 = (X509 *)connssl->backend->server_cert" identifier = (cast_expression "(X509 *)connssl->backend->server_cert" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier))) ;) (goto_statement "goto LAB_000794d2;" goto statement_identifier ;) }))) }) (else_clause "else {\n        do {\n          puVar36 = puVar43;\n          puVar17 = puVar36;\n          puVar43 = (uchar *)X509_NAME_get_index_by_NID(pXVar14,0xd,(int)puVar36);\n        } while (-1 < (int)puVar43);\n        if (puVar36 == (uchar *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar14,(int)puVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          puVar43 = (uchar *)ASN1_STRING_length(pAVar34);\n          if ((int)puVar43 < 0) goto LAB_0007969a;\n          puVar17 = (uchar *)0x662;\n          temp = (uchar *)CRYPTO_malloc((int)(puVar43 + 1),"vtls/openssl.c",0x662);\n          if (temp != (uchar *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            puVar17 = puVar43;\n            memcpy(temp,pvVar37,(size_t)puVar43);\n            temp[(int)puVar43] = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        puVar43 = (uchar *)ASN1_STRING_to_UTF8(&temp,pAVar34);\nLAB_0007969a:\n        if (temp == (uchar *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)temp);\n        puVar36 = (uchar *)curlx_uztosi(sVar35);\n        if (puVar36 == puVar43) goto LAB_0007908e;\n        Curl_failf(local_a18,"SSL: illegal cert name field");\n        if (temp != "") goto LAB_000790e4;\n      }" else (compound_statement "{\n        do {\n          puVar36 = puVar43;\n          puVar17 = puVar36;\n          puVar43 = (uchar *)X509_NAME_get_index_by_NID(pXVar14,0xd,(int)puVar36);\n        } while (-1 < (int)puVar43);\n        if (puVar36 == (uchar *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar14,(int)puVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          puVar43 = (uchar *)ASN1_STRING_length(pAVar34);\n          if ((int)puVar43 < 0) goto LAB_0007969a;\n          puVar17 = (uchar *)0x662;\n          temp = (uchar *)CRYPTO_malloc((int)(puVar43 + 1),"vtls/openssl.c",0x662);\n          if (temp != (uchar *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            puVar17 = puVar43;\n            memcpy(temp,pvVar37,(size_t)puVar43);\n            temp[(int)puVar43] = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        puVar43 = (uchar *)ASN1_STRING_to_UTF8(&temp,pAVar34);\nLAB_0007969a:\n        if (temp == (uchar *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)temp);\n        puVar36 = (uchar *)curlx_uztosi(sVar35);\n        if (puVar36 == puVar43) goto LAB_0007908e;\n        Curl_failf(local_a18,"SSL: illegal cert name field");\n        if (temp != "") goto LAB_000790e4;\n      }" { (do_statement "do {\n          puVar36 = puVar43;\n          puVar17 = puVar36;\n          puVar43 = (uchar *)X509_NAME_get_index_by_NID(pXVar14,0xd,(int)puVar36);\n        } while (-1 < (int)puVar43);" do (compound_statement "{\n          puVar36 = puVar43;\n          puVar17 = puVar36;\n          puVar43 = (uchar *)X509_NAME_get_index_by_NID(pXVar14,0xd,(int)puVar36);\n        }" { (expression_statement "puVar36 = puVar43;" (assignment_expression "puVar36 = puVar43" identifier = identifier) ;) (expression_statement "puVar17 = puVar36;" (assignment_expression "puVar17 = puVar36" identifier = identifier) ;) (expression_statement "puVar43 = (uchar *)X509_NAME_get_index_by_NID(pXVar14,0xd,(int)puVar36);" (assignment_expression "puVar43 = (uchar *)X509_NAME_get_index_by_NID(pXVar14,0xd,(int)puVar36)" identifier = (cast_expression "(uchar *)X509_NAME_get_index_by_NID(pXVar14,0xd,(int)puVar36)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_NAME_get_index_by_NID(pXVar14,0xd,(int)puVar36)" identifier (argument_list "(pXVar14,0xd,(int)puVar36)" ( identifier , number_literal , (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) }) while (parenthesized_expression "(-1 < (int)puVar43)" ( (binary_expression "-1 < (int)puVar43" number_literal < (cast_expression "(int)puVar43" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (if_statement "if (puVar36 == (uchar *)0xffffffff) goto LAB_0007908e;" if (parenthesized_expression "(puVar36 == (uchar *)0xffffffff)" ( (binary_expression "puVar36 == (uchar *)0xffffffff" identifier == (cast_expression "(uchar *)0xffffffff" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007908e;" goto statement_identifier ;)) (expression_statement "ne = X509_NAME_get_entry(pXVar14,(int)puVar36);" (assignment_expression "ne = X509_NAME_get_entry(pXVar14,(int)puVar36)" identifier = (call_expression "X509_NAME_get_entry(pXVar14,(int)puVar36)" identifier (argument_list "(pXVar14,(int)puVar36)" ( identifier , (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "pAVar34 = X509_NAME_ENTRY_get_data(ne);" (assignment_expression "pAVar34 = X509_NAME_ENTRY_get_data(ne)" identifier = (call_expression "X509_NAME_ENTRY_get_data(ne)" identifier (argument_list "(ne)" ( identifier )))) ;) (if_statement "if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;" if (parenthesized_expression "(pAVar34 == (ASN1_STRING *)0x0)" ( (binary_expression "pAVar34 == (ASN1_STRING *)0x0" identifier == (cast_expression "(ASN1_STRING *)0x0" ( (type_descriptor "ASN1_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007908e;" goto statement_identifier ;)) (expression_statement "iVar38 = ASN1_STRING_type(pAVar34);" (assignment_expression "iVar38 = ASN1_STRING_type(pAVar34)" identifier = (call_expression "ASN1_STRING_type(pAVar34)" identifier (argument_list "(pAVar34)" ( identifier )))) ;) (if_statement "if (iVar38 == 0xc) {\n          puVar43 = (uchar *)ASN1_STRING_length(pAVar34);\n          if ((int)puVar43 < 0) goto LAB_0007969a;\n          puVar17 = (uchar *)0x662;\n          temp = (uchar *)CRYPTO_malloc((int)(puVar43 + 1),"vtls/openssl.c",0x662);\n          if (temp != (uchar *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            puVar17 = puVar43;\n            memcpy(temp,pvVar37,(size_t)puVar43);\n            temp[(int)puVar43] = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }" if (parenthesized_expression "(iVar38 == 0xc)" ( (binary_expression "iVar38 == 0xc" identifier == number_literal) )) (compound_statement "{\n          puVar43 = (uchar *)ASN1_STRING_length(pAVar34);\n          if ((int)puVar43 < 0) goto LAB_0007969a;\n          puVar17 = (uchar *)0x662;\n          temp = (uchar *)CRYPTO_malloc((int)(puVar43 + 1),"vtls/openssl.c",0x662);\n          if (temp != (uchar *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            puVar17 = puVar43;\n            memcpy(temp,pvVar37,(size_t)puVar43);\n            temp[(int)puVar43] = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }" { (expression_statement "puVar43 = (uchar *)ASN1_STRING_length(pAVar34);" (assignment_expression "puVar43 = (uchar *)ASN1_STRING_length(pAVar34)" identifier = (cast_expression "(uchar *)ASN1_STRING_length(pAVar34)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_length(pAVar34)" identifier (argument_list "(pAVar34)" ( identifier ))))) ;) (if_statement "if ((int)puVar43 < 0) goto LAB_0007969a;" if (parenthesized_expression "((int)puVar43 < 0)" ( (binary_expression "(int)puVar43 < 0" (cast_expression "(int)puVar43" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0007969a;" goto statement_identifier ;)) (expression_statement "puVar17 = (uchar *)0x662;" (assignment_expression "puVar17 = (uchar *)0x662" identifier = (cast_expression "(uchar *)0x662" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "temp = (uchar *)CRYPTO_malloc((int)(puVar43 + 1),"vtls/openssl.c",0x662);" (assignment_expression "temp = (uchar *)CRYPTO_malloc((int)(puVar43 + 1),"vtls/openssl.c",0x662)" identifier = (cast_expression "(uchar *)CRYPTO_malloc((int)(puVar43 + 1),"vtls/openssl.c",0x662)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CRYPTO_malloc((int)(puVar43 + 1),"vtls/openssl.c",0x662)" identifier (argument_list "((int)(puVar43 + 1),"vtls/openssl.c",0x662)" ( (cast_expression "(int)(puVar43 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar43 + 1)" ( (binary_expression "puVar43 + 1" identifier + number_literal) ))) , (string_literal ""vtls/openssl.c"" " string_content ") , number_literal ))))) ;) (if_statement "if (temp != (uchar *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            puVar17 = puVar43;\n            memcpy(temp,pvVar37,(size_t)puVar43);\n            temp[(int)puVar43] = '\0';\n            goto LAB_0007969a;\n          }" if (parenthesized_expression "(temp != (uchar *)0x0)" ( (binary_expression "temp != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            puVar17 = puVar43;\n            memcpy(temp,pvVar37,(size_t)puVar43);\n            temp[(int)puVar43] = '\0';\n            goto LAB_0007969a;\n          }" { (expression_statement "pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);" (assignment_expression "pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34)" identifier = (cast_expression "(void *)ASN1_STRING_get0_data(pAVar34)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_get0_data(pAVar34)" identifier (argument_list "(pAVar34)" ( identifier ))))) ;) (expression_statement "puVar17 = puVar43;" (assignment_expression "puVar17 = puVar43" identifier = identifier) ;) (expression_statement "memcpy(temp,pvVar37,(size_t)puVar43);" (call_expression "memcpy(temp,pvVar37,(size_t)puVar43)" identifier (argument_list "(temp,pvVar37,(size_t)puVar43)" ( identifier , identifier , (cast_expression "(size_t)puVar43" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (expression_statement "temp[(int)puVar43] = '\0';" (assignment_expression "temp[(int)puVar43] = '\0'" (subscript_expression "temp[(int)puVar43]" identifier [ (cast_expression "(int)puVar43" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_0007969a;" goto statement_identifier ;) })) (goto_statement "goto LAB_0007950b;" goto statement_identifier ;) })) (expression_statement "puVar43 = (uchar *)ASN1_STRING_to_UTF8(&temp,pAVar34);" (assignment_expression "puVar43 = (uchar *)ASN1_STRING_to_UTF8(&temp,pAVar34)" identifier = (cast_expression "(uchar *)ASN1_STRING_to_UTF8(&temp,pAVar34)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_to_UTF8(&temp,pAVar34)" identifier (argument_list "(&temp,pAVar34)" ( (pointer_expression "&temp" & identifier) , identifier ))))) ;) (labeled_statement "LAB_0007969a:\n        if (temp == (uchar *)0x0) goto LAB_0007950b;" statement_identifier : (if_statement "if (temp == (uchar *)0x0) goto LAB_0007950b;" if (parenthesized_expression "(temp == (uchar *)0x0)" ( (binary_expression "temp == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007950b;" goto statement_identifier ;))) (expression_statement "sVar35 = strlen((char *)temp);" (assignment_expression "sVar35 = strlen((char *)temp)" identifier = (call_expression "strlen((char *)temp)" identifier (argument_list "((char *)temp)" ( (cast_expression "(char *)temp" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "puVar36 = (uchar *)curlx_uztosi(sVar35);" (assignment_expression "puVar36 = (uchar *)curlx_uztosi(sVar35)" identifier = (cast_expression "(uchar *)curlx_uztosi(sVar35)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "curlx_uztosi(sVar35)" identifier (argument_list "(sVar35)" ( identifier ))))) ;) (if_statement "if (puVar36 == puVar43) goto LAB_0007908e;" if (parenthesized_expression "(puVar36 == puVar43)" ( (binary_expression "puVar36 == puVar43" identifier == identifier) )) (goto_statement "goto LAB_0007908e;" goto statement_identifier ;)) (expression_statement "Curl_failf(local_a18,"SSL: illegal cert name field");" (call_expression "Curl_failf(local_a18,"SSL: illegal cert name field")" identifier (argument_list "(local_a18,"SSL: illegal cert name field")" ( identifier , (string_literal ""SSL: illegal cert name field"" " string_content ") ))) ;) (if_statement "if (temp != "") goto LAB_000790e4;" if (parenthesized_expression "(temp != "")" ( (binary_expression "temp != """ identifier != (string_literal """" " ")) )) (goto_statement "goto LAB_000790e4;" goto statement_identifier ;)) }))) (expression_statement "pXVar13 = (X509 *)connssl->backend->server_cert;" (assignment_expression "pXVar13 = (X509 *)connssl->backend->server_cert" identifier = (cast_expression "(X509 *)connssl->backend->server_cert" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier))) ;) }) (else_clause "else {\n      iVar28 = OPENSSL_sk_num(a);\n      if (iVar28 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a0c = puVar43;\n        goto LAB_00079040;\n      }\n      bVar6 = false;\n      iVar29 = 0;\n      bVar7 = false;\n      bVar8 = false;\n      do {\n        while( true ) {\n          piVar22 = (int *)OPENSSL_sk_value(a,iVar29);\n          iVar33 = *piVar22;\n          if (iVar33 == 2) break;\n          if (iVar33 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1]);\n              puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n              if (local_a1c == puVar36) {\n                puVar17 = local_a1c;\n                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);\n                bVar7 = true;\n                if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar7 = true;\n          }\n          else if (iVar33 == iVar38) {\n            local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          iVar29 = iVar29 + 1;\n          local_a0c = puVar43;\n          if (iVar28 == iVar29) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n          bVar8 = true;\nLAB_00079422:\n          sVar32 = strlen((char *)local_a0c);\n          if ((sVar32 != sVar35) ||\n             (iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c), iVar33 == 0))\n          goto LAB_00078351;\n          Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s \"%s\"\n",local_a10,\n                     local_a0c);\n          GENERAL_NAMES_free(a);\n          puVar17 = local_a10;\n          goto LAB_000783a8;\n        }\n        bVar8 = true;\n        iVar29 = iVar29 + 1;\n        local_a0c = puVar43;\n      } while (iVar28 != iVar29);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar6) {\nLAB_000783a8:\n        local_a44 = (X509 *)connssl->backend->server_cert;\n        goto LAB_000780f3;\n      }\n      if ((!bVar7) && (!bVar8)) goto LAB_00079040;\n      Curl_infof(local_a18," subjectAltName does not match %s\n",local_a10);\n      Curl_failf(local_a18,\n                 "SSL: no alternative certificate subject name matches target host name \'%s\'",\n                 local_a10);\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }" else (compound_statement "{\n      iVar28 = OPENSSL_sk_num(a);\n      if (iVar28 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a0c = puVar43;\n        goto LAB_00079040;\n      }\n      bVar6 = false;\n      iVar29 = 0;\n      bVar7 = false;\n      bVar8 = false;\n      do {\n        while( true ) {\n          piVar22 = (int *)OPENSSL_sk_value(a,iVar29);\n          iVar33 = *piVar22;\n          if (iVar33 == 2) break;\n          if (iVar33 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1]);\n              puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n              if (local_a1c == puVar36) {\n                puVar17 = local_a1c;\n                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);\n                bVar7 = true;\n                if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar7 = true;\n          }\n          else if (iVar33 == iVar38) {\n            local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          iVar29 = iVar29 + 1;\n          local_a0c = puVar43;\n          if (iVar28 == iVar29) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n          bVar8 = true;\nLAB_00079422:\n          sVar32 = strlen((char *)local_a0c);\n          if ((sVar32 != sVar35) ||\n             (iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c), iVar33 == 0))\n          goto LAB_00078351;\n          Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s \"%s\"\n",local_a10,\n                     local_a0c);\n          GENERAL_NAMES_free(a);\n          puVar17 = local_a10;\n          goto LAB_000783a8;\n        }\n        bVar8 = true;\n        iVar29 = iVar29 + 1;\n        local_a0c = puVar43;\n      } while (iVar28 != iVar29);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar6) {\nLAB_000783a8:\n        local_a44 = (X509 *)connssl->backend->server_cert;\n        goto LAB_000780f3;\n      }\n      if ((!bVar7) && (!bVar8)) goto LAB_00079040;\n      Curl_infof(local_a18," subjectAltName does not match %s\n",local_a10);\n      Curl_failf(local_a18,\n                 "SSL: no alternative certificate subject name matches target host name \'%s\'",\n                 local_a10);\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }" { (expression_statement "iVar28 = OPENSSL_sk_num(a);" (assignment_expression "iVar28 = OPENSSL_sk_num(a)" identifier = (call_expression "OPENSSL_sk_num(a)" identifier (argument_list "(a)" ( identifier )))) ;) (if_statement "if (iVar28 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a0c = puVar43;\n        goto LAB_00079040;\n      }" if (parenthesized_expression "(iVar28 < 1)" ( (binary_expression "iVar28 < 1" identifier < number_literal) )) (compound_statement "{\n        GENERAL_NAMES_free(a);\n        local_a0c = puVar43;\n        goto LAB_00079040;\n      }" { (expression_statement "GENERAL_NAMES_free(a);" (call_expression "GENERAL_NAMES_free(a)" identifier (argument_list "(a)" ( identifier ))) ;) (expression_statement "local_a0c = puVar43;" (assignment_expression "local_a0c = puVar43" identifier = identifier) ;) (goto_statement "goto LAB_00079040;" goto statement_identifier ;) })) (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (expression_statement "iVar29 = 0;" (assignment_expression "iVar29 = 0" identifier = number_literal) ;) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (expression_statement "bVar8 = false;" (assignment_expression "bVar8 = false" identifier = false) ;) (do_statement "do {\n        while( true ) {\n          piVar22 = (int *)OPENSSL_sk_value(a,iVar29);\n          iVar33 = *piVar22;\n          if (iVar33 == 2) break;\n          if (iVar33 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1]);\n              puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n              if (local_a1c == puVar36) {\n                puVar17 = local_a1c;\n                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);\n                bVar7 = true;\n                if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar7 = true;\n          }\n          else if (iVar33 == iVar38) {\n            local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          iVar29 = iVar29 + 1;\n          local_a0c = puVar43;\n          if (iVar28 == iVar29) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n          bVar8 = true;\nLAB_00079422:\n          sVar32 = strlen((char *)local_a0c);\n          if ((sVar32 != sVar35) ||\n             (iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c), iVar33 == 0))\n          goto LAB_00078351;\n          Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s \"%s\"\n",local_a10,\n                     local_a0c);\n          GENERAL_NAMES_free(a);\n          puVar17 = local_a10;\n          goto LAB_000783a8;\n        }\n        bVar8 = true;\n        iVar29 = iVar29 + 1;\n        local_a0c = puVar43;\n      } while (iVar28 != iVar29);" do (compound_statement "{\n        while( true ) {\n          piVar22 = (int *)OPENSSL_sk_value(a,iVar29);\n          iVar33 = *piVar22;\n          if (iVar33 == 2) break;\n          if (iVar33 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1]);\n              puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n              if (local_a1c == puVar36) {\n                puVar17 = local_a1c;\n                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);\n                bVar7 = true;\n                if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar7 = true;\n          }\n          else if (iVar33 == iVar38) {\n            local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          iVar29 = iVar29 + 1;\n          local_a0c = puVar43;\n          if (iVar28 == iVar29) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n          bVar8 = true;\nLAB_00079422:\n          sVar32 = strlen((char *)local_a0c);\n          if ((sVar32 != sVar35) ||\n             (iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c), iVar33 == 0))\n          goto LAB_00078351;\n          Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s \"%s\"\n",local_a10,\n                     local_a0c);\n          GENERAL_NAMES_free(a);\n          puVar17 = local_a10;\n          goto LAB_000783a8;\n        }\n        bVar8 = true;\n        iVar29 = iVar29 + 1;\n        local_a0c = puVar43;\n      }" { (while_statement "while( true ) {\n          piVar22 = (int *)OPENSSL_sk_value(a,iVar29);\n          iVar33 = *piVar22;\n          if (iVar33 == 2) break;\n          if (iVar33 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1]);\n              puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n              if (local_a1c == puVar36) {\n                puVar17 = local_a1c;\n                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);\n                bVar7 = true;\n                if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar7 = true;\n          }\n          else if (iVar33 == iVar38) {\n            local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          iVar29 = iVar29 + 1;\n          local_a0c = puVar43;\n          if (iVar28 == iVar29) goto LAB_0007838a;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          piVar22 = (int *)OPENSSL_sk_value(a,iVar29);\n          iVar33 = *piVar22;\n          if (iVar33 == 2) break;\n          if (iVar33 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1]);\n              puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n              if (local_a1c == puVar36) {\n                puVar17 = local_a1c;\n                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);\n                bVar7 = true;\n                if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar7 = true;\n          }\n          else if (iVar33 == iVar38) {\n            local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          iVar29 = iVar29 + 1;\n          local_a0c = puVar43;\n          if (iVar28 == iVar29) goto LAB_0007838a;\n        }" { (expression_statement "piVar22 = (int *)OPENSSL_sk_value(a,iVar29);" (assignment_expression "piVar22 = (int *)OPENSSL_sk_value(a,iVar29)" identifier = (cast_expression "(int *)OPENSSL_sk_value(a,iVar29)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_value(a,iVar29)" identifier (argument_list "(a,iVar29)" ( identifier , identifier ))))) ;) (expression_statement "iVar33 = *piVar22;" (assignment_expression "iVar33 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (if_statement "if (iVar33 == 2) break;" if (parenthesized_expression "(iVar33 == 2)" ( (binary_expression "iVar33 == 2" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (iVar33 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1]);\n              puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n              if (local_a1c == puVar36) {\n                puVar17 = local_a1c;\n                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);\n                bVar7 = true;\n                if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar7 = true;\n          }\n          else if (iVar33 == iVar38) {\n            local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }" if (parenthesized_expression "(iVar33 == 7)" ( (binary_expression "iVar33 == 7" identifier == number_literal) )) (compound_statement "{\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1]);\n              puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n              if (local_a1c == puVar36) {\n                puVar17 = local_a1c;\n                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);\n                bVar7 = true;\n                if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar7 = true;\n          }" { (if_statement "if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1]);\n              puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n              if (local_a1c == puVar36) {\n                puVar17 = local_a1c;\n                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);\n                bVar7 = true;\n                if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }\n                goto LAB_00078351;\n              }\n            }" if (parenthesized_expression "(iVar38 == 7)" ( (binary_expression "iVar38 == 7" identifier == number_literal) )) (compound_statement "{\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1]);\n              puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n              if (local_a1c == puVar36) {\n                puVar17 = local_a1c;\n                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);\n                bVar7 = true;\n                if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }\n                goto LAB_00078351;\n              }\n            }" { (expression_statement "pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1]);" (assignment_expression "pvVar37 = (void *)ASN1_STRING_get0_data(piVar22[1])" identifier = (cast_expression "(void *)ASN1_STRING_get0_data(piVar22[1])" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_get0_data(piVar22[1])" identifier (argument_list "(piVar22[1])" ( (subscript_expression "piVar22[1]" identifier [ number_literal ]) ))))) ;) (expression_statement "puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1]);" (assignment_expression "puVar36 = (uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1])" identifier = (cast_expression "(uchar *)ASN1_STRING_length((ASN1_STRING *)piVar22[1])" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_length((ASN1_STRING *)piVar22[1])" identifier (argument_list "((ASN1_STRING *)piVar22[1])" ( (cast_expression "(ASN1_STRING *)piVar22[1]" ( (type_descriptor "ASN1_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[1]" identifier [ number_literal ])) ))))) ;) (if_statement "if (local_a1c == puVar36) {\n                puVar17 = local_a1c;\n                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);\n                bVar7 = true;\n                if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }\n                goto LAB_00078351;\n              }" if (parenthesized_expression "(local_a1c == puVar36)" ( (binary_expression "local_a1c == puVar36" identifier == identifier) )) (compound_statement "{\n                puVar17 = local_a1c;\n                iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);\n                bVar7 = true;\n                if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }\n                goto LAB_00078351;\n              }" { (expression_statement "puVar17 = local_a1c;" (assignment_expression "puVar17 = local_a1c" identifier = identifier) ;) (expression_statement "iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c);" (assignment_expression "iVar33 = memcmp(pvVar37,local_a24,(size_t)local_a1c)" identifier = (call_expression "memcmp(pvVar37,local_a24,(size_t)local_a1c)" identifier (argument_list "(pvVar37,local_a24,(size_t)local_a1c)" ( identifier , identifier , (cast_expression "(size_t)local_a1c" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) (if_statement "if (iVar33 == 0) {\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }" if (parenthesized_expression "(iVar33 == 0)" ( (binary_expression "iVar33 == 0" identifier == number_literal) )) (compound_statement "{\n                  puVar17 = local_a10;\n                  Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);\n                  bVar6 = true;\n                }" { (expression_statement "puVar17 = local_a10;" (assignment_expression "puVar17 = local_a10" identifier = identifier) ;) (expression_statement "Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10);" (call_expression "Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10)" identifier (argument_list "(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",\n                             local_a10)" ( identifier , (string_literal "" subjectAltName: host \"%s\" matched cert\'s IP address!\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" identifier = true) ;) })) (goto_statement "goto LAB_00078351;" goto statement_identifier ;) })) })) (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) }) (else_clause "else if (iVar33 == iVar38) {\n            local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }" else (if_statement "if (iVar33 == iVar38) {\n            local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }" if (parenthesized_expression "(iVar33 == iVar38)" ( (binary_expression "iVar33 == iVar38" identifier == identifier) )) (compound_statement "{\n            local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }" { (expression_statement "local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);" (assignment_expression "local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1])" identifier = (cast_expression "(uchar *)ASN1_STRING_get0_data(piVar22[1])" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_get0_data(piVar22[1])" identifier (argument_list "(piVar22[1])" ( (subscript_expression "piVar22[1]" identifier [ number_literal ]) ))))) ;) (expression_statement "sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);" (assignment_expression "sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1])" identifier = (call_expression "ASN1_STRING_length((ASN1_STRING *)piVar22[1])" identifier (argument_list "((ASN1_STRING *)piVar22[1])" ( (cast_expression "(ASN1_STRING *)piVar22[1]" ( (type_descriptor "ASN1_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[1]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar38 == 2) goto LAB_00079422;" if (parenthesized_expression "(iVar38 == 2)" ( (binary_expression "iVar38 == 2" identifier == number_literal) )) (goto_statement "goto LAB_00079422;" goto statement_identifier ;)) })))) (labeled_statement "LAB_00078351:\n          iVar29 = iVar29 + 1;" statement_identifier : (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;)) (expression_statement "local_a0c = puVar43;" (assignment_expression "local_a0c = puVar43" identifier = identifier) ;) (if_statement "if (iVar28 == iVar29) goto LAB_0007838a;" if (parenthesized_expression "(iVar28 == iVar29)" ( (binary_expression "iVar28 == iVar29" identifier == identifier) )) (goto_statement "goto LAB_0007838a;" goto statement_identifier ;)) })) (if_statement "if (iVar38 == 2) {\n          local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n          bVar8 = true;\nLAB_00079422:\n          sVar32 = strlen((char *)local_a0c);\n          if ((sVar32 != sVar35) ||\n             (iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c), iVar33 == 0))\n          goto LAB_00078351;\n          Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s \"%s\"\n",local_a10,\n                     local_a0c);\n          GENERAL_NAMES_free(a);\n          puVar17 = local_a10;\n          goto LAB_000783a8;\n        }" if (parenthesized_expression "(iVar38 == 2)" ( (binary_expression "iVar38 == 2" identifier == number_literal) )) (compound_statement "{\n          local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);\n          bVar8 = true;\nLAB_00079422:\n          sVar32 = strlen((char *)local_a0c);\n          if ((sVar32 != sVar35) ||\n             (iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c), iVar33 == 0))\n          goto LAB_00078351;\n          Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s \"%s\"\n",local_a10,\n                     local_a0c);\n          GENERAL_NAMES_free(a);\n          puVar17 = local_a10;\n          goto LAB_000783a8;\n        }" { (expression_statement "local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1]);" (assignment_expression "local_a0c = (uchar *)ASN1_STRING_get0_data(piVar22[1])" identifier = (cast_expression "(uchar *)ASN1_STRING_get0_data(piVar22[1])" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_get0_data(piVar22[1])" identifier (argument_list "(piVar22[1])" ( (subscript_expression "piVar22[1]" identifier [ number_literal ]) ))))) ;) (expression_statement "sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1]);" (assignment_expression "sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar22[1])" identifier = (call_expression "ASN1_STRING_length((ASN1_STRING *)piVar22[1])" identifier (argument_list "((ASN1_STRING *)piVar22[1])" ( (cast_expression "(ASN1_STRING *)piVar22[1]" ( (type_descriptor "ASN1_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar22[1]" identifier [ number_literal ])) )))) ;) (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" identifier = true) ;) (labeled_statement "LAB_00079422:\n          sVar32 = strlen((char *)local_a0c);" statement_identifier : (expression_statement "sVar32 = strlen((char *)local_a0c);" (assignment_expression "sVar32 = strlen((char *)local_a0c)" identifier = (call_expression "strlen((char *)local_a0c)" identifier (argument_list "((char *)local_a0c)" ( (cast_expression "(char *)local_a0c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (if_statement "if ((sVar32 != sVar35) ||\n             (iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c), iVar33 == 0))\n          goto LAB_00078351;" if (parenthesized_expression "((sVar32 != sVar35) ||\n             (iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c), iVar33 == 0))" ( (binary_expression "(sVar32 != sVar35) ||\n             (iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c), iVar33 == 0)" (parenthesized_expression "(sVar32 != sVar35)" ( (binary_expression "sVar32 != sVar35" identifier != identifier) )) || (parenthesized_expression "(iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c), iVar33 == 0)" ( (comma_expression "iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c), iVar33 == 0" (assignment_expression "iVar33 = Curl_cert_hostcheck((char *)local_a0c,local_a2c)" identifier = (call_expression "Curl_cert_hostcheck((char *)local_a0c,local_a2c)" identifier (argument_list "((char *)local_a0c,local_a2c)" ( (cast_expression "(char *)local_a0c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "iVar33 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00078351;" goto statement_identifier ;)) (expression_statement "Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s \"%s\"\n",local_a10,\n                     local_a0c);" (call_expression "Curl_infof(local_a18," subjectAltName: host \"%s\" matched cert\'s \"%s\"\n",local_a10,\n                     local_a0c)" identifier (argument_list "(local_a18," subjectAltName: host \"%s\" matched cert\'s \"%s\"\n",local_a10,\n                     local_a0c)" ( identifier , (string_literal "" subjectAltName: host \"%s\" matched cert\'s \"%s\"\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , identifier , identifier ))) ;) (expression_statement "GENERAL_NAMES_free(a);" (call_expression "GENERAL_NAMES_free(a)" identifier (argument_list "(a)" ( identifier ))) ;) (expression_statement "puVar17 = local_a10;" (assignment_expression "puVar17 = local_a10" identifier = identifier) ;) (goto_statement "goto LAB_000783a8;" goto statement_identifier ;) })) (expression_statement "bVar8 = true;" (assignment_expression "bVar8 = true" identifier = true) ;) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;) (expression_statement "local_a0c = puVar43;" (assignment_expression "local_a0c = puVar43" identifier = identifier) ;) }) while (parenthesized_expression "(iVar28 != iVar29)" ( (binary_expression "iVar28 != iVar29" identifier != identifier) )) ;) (labeled_statement "LAB_0007838a:\n      GENERAL_NAMES_free(a);" statement_identifier : (expression_statement "GENERAL_NAMES_free(a);" (call_expression "GENERAL_NAMES_free(a)" identifier (argument_list "(a)" ( identifier ))) ;)) (if_statement "if (bVar6) {\nLAB_000783a8:\n        local_a44 = (X509 *)connssl->backend->server_cert;\n        goto LAB_000780f3;\n      }" if (parenthesized_expression "(bVar6)" ( identifier )) (compound_statement "{\nLAB_000783a8:\n        local_a44 = (X509 *)connssl->backend->server_cert;\n        goto LAB_000780f3;\n      }" { (labeled_statement "LAB_000783a8:\n        local_a44 = (X509 *)connssl->backend->server_cert;" statement_identifier : (expression_statement "local_a44 = (X509 *)connssl->backend->server_cert;" (assignment_expression "local_a44 = (X509 *)connssl->backend->server_cert" identifier = (cast_expression "(X509 *)connssl->backend->server_cert" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier))) ;)) (goto_statement "goto LAB_000780f3;" goto statement_identifier ;) })) (if_statement "if ((!bVar7) && (!bVar8)) goto LAB_00079040;" if (parenthesized_expression "((!bVar7) && (!bVar8))" ( (binary_expression "(!bVar7) && (!bVar8)" (parenthesized_expression "(!bVar7)" ( (unary_expression "!bVar7" ! identifier) )) && (parenthesized_expression "(!bVar8)" ( (unary_expression "!bVar8" ! identifier) ))) )) (goto_statement "goto LAB_00079040;" goto statement_identifier ;)) (expression_statement "Curl_infof(local_a18," subjectAltName does not match %s\n",local_a10);" (call_expression "Curl_infof(local_a18," subjectAltName does not match %s\n",local_a10)" identifier (argument_list "(local_a18," subjectAltName does not match %s\n",local_a10)" ( identifier , (string_literal "" subjectAltName does not match %s\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "Curl_failf(local_a18,\n                 "SSL: no alternative certificate subject name matches target host name \'%s\'",\n                 local_a10);" (call_expression "Curl_failf(local_a18,\n                 "SSL: no alternative certificate subject name matches target host name \'%s\'",\n                 local_a10)" identifier (argument_list "(local_a18,\n                 "SSL: no alternative certificate subject name matches target host name \'%s\'",\n                 local_a10)" ( identifier , (string_literal ""SSL: no alternative certificate subject name matches target host name \'%s\'"" " string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) (expression_statement "pXVar13 = (X509 *)connssl->backend->server_cert;" (assignment_expression "pXVar13 = (X509 *)connssl->backend->server_cert" identifier = (cast_expression "(X509 *)connssl->backend->server_cert" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier))) ;) }))) (labeled_statement "LAB_000794d2:\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;" statement_identifier : (expression_statement "CVar41 = CURLE_PEER_FAILED_VERIFICATION;" (assignment_expression "CVar41 = CURLE_PEER_FAILED_VERIFICATION" identifier = identifier) ;)) (expression_statement "X509_free(pXVar13);" (call_expression "X509_free(pXVar13)" identifier (argument_list "(pXVar13)" ( identifier ))) ;) (expression_statement "connssl->backend->server_cert = (X509 *)0x0;" (assignment_expression "connssl->backend->server_cert = (X509 *)0x0" (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier) = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00078251;" goto statement_identifier ;) })) (if_statement "if (conn->proxy_ssl[conn->sock[1] != -1].state == ssl_connection_complete) {\n    if ((conn->ssl_config).verifyhost != false) {\n      local_a18 = conn->data;\n      if (conn->proxy_ssl[conn->sock[1] != -1].state == ssl_connection_complete) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }\n  else if ((conn->proxy_ssl_config).verifyhost != false) {\n    local_a18 = conn->data;\nLAB_00078a68:\n    local_a2c = (conn->http_proxy).host.name;\n    local_a10 = (uchar *)(conn->http_proxy).host.dispname;\n    goto LAB_0007829a;\n  }" if (parenthesized_expression "(conn->proxy_ssl[conn->sock[1] != -1].state == ssl_connection_complete)" ( (binary_expression "conn->proxy_ssl[conn->sock[1] != -1].state == ssl_connection_complete" (field_expression "conn->proxy_ssl[conn->sock[1] != -1].state" (subscript_expression "conn->proxy_ssl[conn->sock[1] != -1]" (field_expression "conn->proxy_ssl" identifier -> field_identifier) [ (binary_expression "conn->sock[1] != -1" (subscript_expression "conn->sock[1]" (field_expression "conn->sock" identifier -> field_identifier) [ number_literal ]) != number_literal) ]) . field_identifier) == identifier) )) (compound_statement "{\n    if ((conn->ssl_config).verifyhost != false) {\n      local_a18 = conn->data;\n      if (conn->proxy_ssl[conn->sock[1] != -1].state == ssl_connection_complete) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }" { (if_statement "if ((conn->ssl_config).verifyhost != false) {\n      local_a18 = conn->data;\n      if (conn->proxy_ssl[conn->sock[1] != -1].state == ssl_connection_complete) goto LAB_00078282;\n      goto LAB_00078a68;\n    }" if (parenthesized_expression "((conn->ssl_config).verifyhost != false)" ( (binary_expression "(conn->ssl_config).verifyhost != false" (field_expression "(conn->ssl_config).verifyhost" (parenthesized_expression "(conn->ssl_config)" ( (field_expression "conn->ssl_config" identifier -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n      local_a18 = conn->data;\n      if (conn->proxy_ssl[conn->sock[1] != -1].state == ssl_connection_complete) goto LAB_00078282;\n      goto LAB_00078a68;\n    }" { (expression_statement "local_a18 = conn->data;" (assignment_expression "local_a18 = conn->data" identifier = (field_expression "conn->data" identifier -> field_identifier)) ;) (if_statement "if (conn->proxy_ssl[conn->sock[1] != -1].state == ssl_connection_complete) goto LAB_00078282;" if (parenthesized_expression "(conn->proxy_ssl[conn->sock[1] != -1].state == ssl_connection_complete)" ( (binary_expression "conn->proxy_ssl[conn->sock[1] != -1].state == ssl_connection_complete" (field_expression "conn->proxy_ssl[conn->sock[1] != -1].state" (subscript_expression "conn->proxy_ssl[conn->sock[1] != -1]" (field_expression "conn->proxy_ssl" identifier -> field_identifier) [ (binary_expression "conn->sock[1] != -1" (subscript_expression "conn->sock[1]" (field_expression "conn->sock" identifier -> field_identifier) [ number_literal ]) != number_literal) ]) . field_identifier) == identifier) )) (goto_statement "goto LAB_00078282;" goto statement_identifier ;)) (goto_statement "goto LAB_00078a68;" goto statement_identifier ;) })) }) (else_clause "else if ((conn->proxy_ssl_config).verifyhost != false) {\n    local_a18 = conn->data;\nLAB_00078a68:\n    local_a2c = (conn->http_proxy).host.name;\n    local_a10 = (uchar *)(conn->http_proxy).host.dispname;\n    goto LAB_0007829a;\n  }" else (if_statement "if ((conn->proxy_ssl_config).verifyhost != false) {\n    local_a18 = conn->data;\nLAB_00078a68:\n    local_a2c = (conn->http_proxy).host.name;\n    local_a10 = (uchar *)(conn->http_proxy).host.dispname;\n    goto LAB_0007829a;\n  }" if (parenthesized_expression "((conn->proxy_ssl_config).verifyhost != false)" ( (binary_expression "(conn->proxy_ssl_config).verifyhost != false" (field_expression "(conn->proxy_ssl_config).verifyhost" (parenthesized_expression "(conn->proxy_ssl_config)" ( (field_expression "conn->proxy_ssl_config" identifier -> field_identifier) )) . field_identifier) != false) )) (compound_statement "{\n    local_a18 = conn->data;\nLAB_00078a68:\n    local_a2c = (conn->http_proxy).host.name;\n    local_a10 = (uchar *)(conn->http_proxy).host.dispname;\n    goto LAB_0007829a;\n  }" { (expression_statement "local_a18 = conn->data;" (assignment_expression "local_a18 = conn->data" identifier = (field_expression "conn->data" identifier -> field_identifier)) ;) (labeled_statement "LAB_00078a68:\n    local_a2c = (conn->http_proxy).host.name;" statement_identifier : (expression_statement "local_a2c = (conn->http_proxy).host.name;" (assignment_expression "local_a2c = (conn->http_proxy).host.name" identifier = (field_expression "(conn->http_proxy).host.name" (field_expression "(conn->http_proxy).host" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;)) (expression_statement "local_a10 = (uchar *)(conn->http_proxy).host.dispname;" (assignment_expression "local_a10 = (uchar *)(conn->http_proxy).host.dispname" identifier = (cast_expression "(uchar *)(conn->http_proxy).host.dispname" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(conn->http_proxy).host.dispname" (field_expression "(conn->http_proxy).host" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (goto_statement "goto LAB_0007829a;" goto statement_identifier ;) })))) (labeled_statement "LAB_000780f3:\n  pXVar14 = X509_get_issuer_name(local_a44);" statement_identifier : (expression_statement "pXVar14 = X509_get_issuer_name(local_a44);" (assignment_expression "pXVar14 = X509_get_issuer_name(local_a44)" identifier = (call_expression "X509_get_issuer_name(local_a44)" identifier (argument_list "(local_a44)" ( identifier )))) ;)) (expression_statement "iVar38 = x509_name_oneline((X509_NAME *)pXVar14,pcVar30,size_00);" (assignment_expression "iVar38 = x509_name_oneline((X509_NAME *)pXVar14,pcVar30,size_00)" identifier = (call_expression "x509_name_oneline((X509_NAME *)pXVar14,pcVar30,size_00)" identifier (argument_list "((X509_NAME *)pXVar14,pcVar30,size_00)" ( (cast_expression "(X509_NAME *)pXVar14" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (iVar38 == 0) {\n    Curl_infof(data," issuer: %s\n",pcVar30,local_a0c);\n    if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n       (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n      pcVar31 = (data->set).proxy_ssl.issuercert;\n    }\n    else {\n      pcVar31 = (data->set).ssl.issuercert;\n    }\n    if (pcVar31 != (char *)0x0) {\n      pBVar11 = BIO_s_file();\n      pBVar12 = BIO_new(pBVar11);\n      if (pBVar12 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,error_buffer,0x100);\n        Curl_failf(data,"BIO_new return NULL, OpenSSL error %s",error_buffer);\n        X509_free((X509 *)connssl->backend->server_cert);\n        CVar41 = CURLE_OUT_OF_MEMORY;\n        connssl->backend->server_cert = (X509 *)0x0;\n        goto LAB_00078251;\n      }\n      if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n        pcVar30 = (data->set).proxy_ssl.issuercert;\n      }\n      else {\n        pcVar30 = (data->set).ssl.issuercert;\n      }\n      lVar16 = BIO_ctrl(pBVar12,0x6c,3,pcVar30);\n      if (lVar16 < 1) {\n        if (strict) {\n          if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n             (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n            pcVar30 = (data->set).proxy_ssl.issuercert;\n          }\n          else {\n            pcVar30 = (data->set).ssl.issuercert;\n          }\n          Curl_failf(data,"SSL: Unable to open issuer cert (%s)",pcVar30);\n        }\n        BIO_free(pBVar12);\n      }\n      else {\n        pXVar13 = PEM_read_bio_X509(pBVar12,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar13 == (X509 *)0x0) {\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Unable to read issuer cert (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n          pXVar13 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar13,(X509 *)connssl->backend->server_cert);\n          if (iVar38 == 0) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_infof(data," SSL certificate issuer check ok (%s)\n",pcVar30);\n            BIO_free(pBVar12);\n            X509_free(pXVar13);\n            goto LAB_000784c4;\n          }\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Certificate issuer check failed (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n        }\n        X509_free(pXVar13);\n      }\n      X509_free((X509 *)connssl->backend->server_cert);\n      CVar41 = CURLE_SSL_ISSUER_ERROR;\n      connssl->backend->server_cert = (X509 *)0x0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar16 = SSL_get_verify_result((SSL *)connssl->backend->handle);\n    *local_9f4 = lVar16;\n    if (lVar16 == 0) {\n      CVar41 = CURLE_OK;\n      Curl_infof(data," SSL certificate verify ok.\n",pcVar30);\n      cVar39 = (conn->http_proxy).proxytype;\n    }\n    else {\n      cVar39 = (conn->http_proxy).proxytype;\n      if ((cVar39 == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n        cVar2 = (conn->proxy_ssl_config).verifypeer;\n      }\n      else {\n        cVar2 = (conn->ssl_config).verifypeer;\n      }\n      if (cVar2 == '\0') {\n        CVar41 = CURLE_OK;\n        pcVar30 = X509_verify_cert_error_string(lVar16);\n        Curl_infof(data," SSL certificate verify result: %s (%ld), continuing anyway.\n",pcVar30,\n                   lVar16);\n        cVar39 = (conn->http_proxy).proxytype;\n      }\n      else {\n        CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n        if (strict) {\n          pcVar30 = X509_verify_cert_error_string(lVar16);\n          Curl_failf(data,"SSL certificate verify result: %s (%ld)",pcVar30,lVar16);\n          cVar39 = (conn->http_proxy).proxytype;\n        }\n      }\n    }\n  }\n  else if (strict) {\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    Curl_failf(data,"SSL: couldn\'t get X509-issuer name!",puVar17);\n    cVar39 = (conn->http_proxy).proxytype;\n  }\n  else {\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    cVar39 = (conn->http_proxy).proxytype;\n  }" if (parenthesized_expression "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )) (compound_statement "{\n    Curl_infof(data," issuer: %s\n",pcVar30,local_a0c);\n    if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n       (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n      pcVar31 = (data->set).proxy_ssl.issuercert;\n    }\n    else {\n      pcVar31 = (data->set).ssl.issuercert;\n    }\n    if (pcVar31 != (char *)0x0) {\n      pBVar11 = BIO_s_file();\n      pBVar12 = BIO_new(pBVar11);\n      if (pBVar12 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,error_buffer,0x100);\n        Curl_failf(data,"BIO_new return NULL, OpenSSL error %s",error_buffer);\n        X509_free((X509 *)connssl->backend->server_cert);\n        CVar41 = CURLE_OUT_OF_MEMORY;\n        connssl->backend->server_cert = (X509 *)0x0;\n        goto LAB_00078251;\n      }\n      if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n        pcVar30 = (data->set).proxy_ssl.issuercert;\n      }\n      else {\n        pcVar30 = (data->set).ssl.issuercert;\n      }\n      lVar16 = BIO_ctrl(pBVar12,0x6c,3,pcVar30);\n      if (lVar16 < 1) {\n        if (strict) {\n          if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n             (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n            pcVar30 = (data->set).proxy_ssl.issuercert;\n          }\n          else {\n            pcVar30 = (data->set).ssl.issuercert;\n          }\n          Curl_failf(data,"SSL: Unable to open issuer cert (%s)",pcVar30);\n        }\n        BIO_free(pBVar12);\n      }\n      else {\n        pXVar13 = PEM_read_bio_X509(pBVar12,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar13 == (X509 *)0x0) {\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Unable to read issuer cert (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n          pXVar13 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar13,(X509 *)connssl->backend->server_cert);\n          if (iVar38 == 0) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_infof(data," SSL certificate issuer check ok (%s)\n",pcVar30);\n            BIO_free(pBVar12);\n            X509_free(pXVar13);\n            goto LAB_000784c4;\n          }\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Certificate issuer check failed (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n        }\n        X509_free(pXVar13);\n      }\n      X509_free((X509 *)connssl->backend->server_cert);\n      CVar41 = CURLE_SSL_ISSUER_ERROR;\n      connssl->backend->server_cert = (X509 *)0x0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar16 = SSL_get_verify_result((SSL *)connssl->backend->handle);\n    *local_9f4 = lVar16;\n    if (lVar16 == 0) {\n      CVar41 = CURLE_OK;\n      Curl_infof(data," SSL certificate verify ok.\n",pcVar30);\n      cVar39 = (conn->http_proxy).proxytype;\n    }\n    else {\n      cVar39 = (conn->http_proxy).proxytype;\n      if ((cVar39 == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n        cVar2 = (conn->proxy_ssl_config).verifypeer;\n      }\n      else {\n        cVar2 = (conn->ssl_config).verifypeer;\n      }\n      if (cVar2 == '\0') {\n        CVar41 = CURLE_OK;\n        pcVar30 = X509_verify_cert_error_string(lVar16);\n        Curl_infof(data," SSL certificate verify result: %s (%ld), continuing anyway.\n",pcVar30,\n                   lVar16);\n        cVar39 = (conn->http_proxy).proxytype;\n      }\n      else {\n        CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n        if (strict) {\n          pcVar30 = X509_verify_cert_error_string(lVar16);\n          Curl_failf(data,"SSL certificate verify result: %s (%ld)",pcVar30,lVar16);\n          cVar39 = (conn->http_proxy).proxytype;\n        }\n      }\n    }\n  }" { (expression_statement "Curl_infof(data," issuer: %s\n",pcVar30,local_a0c);" (call_expression "Curl_infof(data," issuer: %s\n",pcVar30,local_a0c)" identifier (argument_list "(data," issuer: %s\n",pcVar30,local_a0c)" ( identifier , (string_literal "" issuer: %s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (if_statement "if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n       (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n      pcVar31 = (data->set).proxy_ssl.issuercert;\n    }\n    else {\n      pcVar31 = (data->set).ssl.issuercert;\n    }" if (parenthesized_expression "(((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n       (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete))" ( (binary_expression "((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n       (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" (parenthesized_expression "((conn->http_proxy).proxytype == CURLPROXY_HTTPS)" ( (binary_expression "(conn->http_proxy).proxytype == CURLPROXY_HTTPS" (field_expression "(conn->http_proxy).proxytype" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier) == identifier) )) && (parenthesized_expression "(conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" ( (binary_expression "conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete" (field_expression "conn->proxy_ssl[conn->sock[1] != -1].state" (subscript_expression "conn->proxy_ssl[conn->sock[1] != -1]" (field_expression "conn->proxy_ssl" identifier -> field_identifier) [ (binary_expression "conn->sock[1] != -1" (subscript_expression "conn->sock[1]" (field_expression "conn->sock" identifier -> field_identifier) [ number_literal ]) != number_literal) ]) . field_identifier) != identifier) ))) )) (compound_statement "{\n      pcVar31 = (data->set).proxy_ssl.issuercert;\n    }" { (expression_statement "pcVar31 = (data->set).proxy_ssl.issuercert;" (assignment_expression "pcVar31 = (data->set).proxy_ssl.issuercert" identifier = (field_expression "(data->set).proxy_ssl.issuercert" (field_expression "(data->set).proxy_ssl" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n      pcVar31 = (data->set).ssl.issuercert;\n    }" else (compound_statement "{\n      pcVar31 = (data->set).ssl.issuercert;\n    }" { (expression_statement "pcVar31 = (data->set).ssl.issuercert;" (assignment_expression "pcVar31 = (data->set).ssl.issuercert" identifier = (field_expression "(data->set).ssl.issuercert" (field_expression "(data->set).ssl" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }))) (if_statement "if (pcVar31 != (char *)0x0) {\n      pBVar11 = BIO_s_file();\n      pBVar12 = BIO_new(pBVar11);\n      if (pBVar12 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,error_buffer,0x100);\n        Curl_failf(data,"BIO_new return NULL, OpenSSL error %s",error_buffer);\n        X509_free((X509 *)connssl->backend->server_cert);\n        CVar41 = CURLE_OUT_OF_MEMORY;\n        connssl->backend->server_cert = (X509 *)0x0;\n        goto LAB_00078251;\n      }\n      if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n        pcVar30 = (data->set).proxy_ssl.issuercert;\n      }\n      else {\n        pcVar30 = (data->set).ssl.issuercert;\n      }\n      lVar16 = BIO_ctrl(pBVar12,0x6c,3,pcVar30);\n      if (lVar16 < 1) {\n        if (strict) {\n          if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n             (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n            pcVar30 = (data->set).proxy_ssl.issuercert;\n          }\n          else {\n            pcVar30 = (data->set).ssl.issuercert;\n          }\n          Curl_failf(data,"SSL: Unable to open issuer cert (%s)",pcVar30);\n        }\n        BIO_free(pBVar12);\n      }\n      else {\n        pXVar13 = PEM_read_bio_X509(pBVar12,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar13 == (X509 *)0x0) {\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Unable to read issuer cert (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n          pXVar13 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar13,(X509 *)connssl->backend->server_cert);\n          if (iVar38 == 0) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_infof(data," SSL certificate issuer check ok (%s)\n",pcVar30);\n            BIO_free(pBVar12);\n            X509_free(pXVar13);\n            goto LAB_000784c4;\n          }\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Certificate issuer check failed (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n        }\n        X509_free(pXVar13);\n      }\n      X509_free((X509 *)connssl->backend->server_cert);\n      CVar41 = CURLE_SSL_ISSUER_ERROR;\n      connssl->backend->server_cert = (X509 *)0x0;\n      goto LAB_00078251;\n    }" if (parenthesized_expression "(pcVar31 != (char *)0x0)" ( (binary_expression "pcVar31 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pBVar11 = BIO_s_file();\n      pBVar12 = BIO_new(pBVar11);\n      if (pBVar12 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,error_buffer,0x100);\n        Curl_failf(data,"BIO_new return NULL, OpenSSL error %s",error_buffer);\n        X509_free((X509 *)connssl->backend->server_cert);\n        CVar41 = CURLE_OUT_OF_MEMORY;\n        connssl->backend->server_cert = (X509 *)0x0;\n        goto LAB_00078251;\n      }\n      if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n        pcVar30 = (data->set).proxy_ssl.issuercert;\n      }\n      else {\n        pcVar30 = (data->set).ssl.issuercert;\n      }\n      lVar16 = BIO_ctrl(pBVar12,0x6c,3,pcVar30);\n      if (lVar16 < 1) {\n        if (strict) {\n          if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n             (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n            pcVar30 = (data->set).proxy_ssl.issuercert;\n          }\n          else {\n            pcVar30 = (data->set).ssl.issuercert;\n          }\n          Curl_failf(data,"SSL: Unable to open issuer cert (%s)",pcVar30);\n        }\n        BIO_free(pBVar12);\n      }\n      else {\n        pXVar13 = PEM_read_bio_X509(pBVar12,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar13 == (X509 *)0x0) {\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Unable to read issuer cert (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n          pXVar13 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar13,(X509 *)connssl->backend->server_cert);\n          if (iVar38 == 0) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_infof(data," SSL certificate issuer check ok (%s)\n",pcVar30);\n            BIO_free(pBVar12);\n            X509_free(pXVar13);\n            goto LAB_000784c4;\n          }\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Certificate issuer check failed (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n        }\n        X509_free(pXVar13);\n      }\n      X509_free((X509 *)connssl->backend->server_cert);\n      CVar41 = CURLE_SSL_ISSUER_ERROR;\n      connssl->backend->server_cert = (X509 *)0x0;\n      goto LAB_00078251;\n    }" { (expression_statement "pBVar11 = BIO_s_file();" (assignment_expression "pBVar11 = BIO_s_file()" identifier = (call_expression "BIO_s_file()" identifier (argument_list "()" ( )))) ;) (expression_statement "pBVar12 = BIO_new(pBVar11);" (assignment_expression "pBVar12 = BIO_new(pBVar11)" identifier = (call_expression "BIO_new(pBVar11)" identifier (argument_list "(pBVar11)" ( identifier )))) ;) (if_statement "if (pBVar12 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,error_buffer,0x100);\n        Curl_failf(data,"BIO_new return NULL, OpenSSL error %s",error_buffer);\n        X509_free((X509 *)connssl->backend->server_cert);\n        CVar41 = CURLE_OUT_OF_MEMORY;\n        connssl->backend->server_cert = (X509 *)0x0;\n        goto LAB_00078251;\n      }" if (parenthesized_expression "(pBVar12 == (BIO *)0x0)" ( (binary_expression "pBVar12 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        e = ERR_get_error();\n        ERR_error_string_n(e,error_buffer,0x100);\n        Curl_failf(data,"BIO_new return NULL, OpenSSL error %s",error_buffer);\n        X509_free((X509 *)connssl->backend->server_cert);\n        CVar41 = CURLE_OUT_OF_MEMORY;\n        connssl->backend->server_cert = (X509 *)0x0;\n        goto LAB_00078251;\n      }" { (expression_statement "e = ERR_get_error();" (assignment_expression "e = ERR_get_error()" identifier = (call_expression "ERR_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "ERR_error_string_n(e,error_buffer,0x100);" (call_expression "ERR_error_string_n(e,error_buffer,0x100)" identifier (argument_list "(e,error_buffer,0x100)" ( identifier , identifier , number_literal ))) ;) (expression_statement "Curl_failf(data,"BIO_new return NULL, OpenSSL error %s",error_buffer);" (call_expression "Curl_failf(data,"BIO_new return NULL, OpenSSL error %s",error_buffer)" identifier (argument_list "(data,"BIO_new return NULL, OpenSSL error %s",error_buffer)" ( identifier , (string_literal ""BIO_new return NULL, OpenSSL error %s"" " string_content ") , identifier ))) ;) (expression_statement "X509_free((X509 *)connssl->backend->server_cert);" (call_expression "X509_free((X509 *)connssl->backend->server_cert)" identifier (argument_list "((X509 *)connssl->backend->server_cert)" ( (cast_expression "(X509 *)connssl->backend->server_cert" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier)) ))) ;) (expression_statement "CVar41 = CURLE_OUT_OF_MEMORY;" (assignment_expression "CVar41 = CURLE_OUT_OF_MEMORY" identifier = identifier) ;) (expression_statement "connssl->backend->server_cert = (X509 *)0x0;" (assignment_expression "connssl->backend->server_cert = (X509 *)0x0" (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier) = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00078251;" goto statement_identifier ;) })) (if_statement "if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n        pcVar30 = (data->set).proxy_ssl.issuercert;\n      }\n      else {\n        pcVar30 = (data->set).ssl.issuercert;\n      }" if (parenthesized_expression "(((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete))" ( (binary_expression "((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" (parenthesized_expression "((conn->http_proxy).proxytype == CURLPROXY_HTTPS)" ( (binary_expression "(conn->http_proxy).proxytype == CURLPROXY_HTTPS" (field_expression "(conn->http_proxy).proxytype" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier) == identifier) )) && (parenthesized_expression "(conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" ( (binary_expression "conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete" (field_expression "conn->proxy_ssl[conn->sock[1] != -1].state" (subscript_expression "conn->proxy_ssl[conn->sock[1] != -1]" (field_expression "conn->proxy_ssl" identifier -> field_identifier) [ (binary_expression "conn->sock[1] != -1" (subscript_expression "conn->sock[1]" (field_expression "conn->sock" identifier -> field_identifier) [ number_literal ]) != number_literal) ]) . field_identifier) != identifier) ))) )) (compound_statement "{\n        pcVar30 = (data->set).proxy_ssl.issuercert;\n      }" { (expression_statement "pcVar30 = (data->set).proxy_ssl.issuercert;" (assignment_expression "pcVar30 = (data->set).proxy_ssl.issuercert" identifier = (field_expression "(data->set).proxy_ssl.issuercert" (field_expression "(data->set).proxy_ssl" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n        pcVar30 = (data->set).ssl.issuercert;\n      }" else (compound_statement "{\n        pcVar30 = (data->set).ssl.issuercert;\n      }" { (expression_statement "pcVar30 = (data->set).ssl.issuercert;" (assignment_expression "pcVar30 = (data->set).ssl.issuercert" identifier = (field_expression "(data->set).ssl.issuercert" (field_expression "(data->set).ssl" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }))) (expression_statement "lVar16 = BIO_ctrl(pBVar12,0x6c,3,pcVar30);" (assignment_expression "lVar16 = BIO_ctrl(pBVar12,0x6c,3,pcVar30)" identifier = (call_expression "BIO_ctrl(pBVar12,0x6c,3,pcVar30)" identifier (argument_list "(pBVar12,0x6c,3,pcVar30)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (lVar16 < 1) {\n        if (strict) {\n          if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n             (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n            pcVar30 = (data->set).proxy_ssl.issuercert;\n          }\n          else {\n            pcVar30 = (data->set).ssl.issuercert;\n          }\n          Curl_failf(data,"SSL: Unable to open issuer cert (%s)",pcVar30);\n        }\n        BIO_free(pBVar12);\n      }\n      else {\n        pXVar13 = PEM_read_bio_X509(pBVar12,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar13 == (X509 *)0x0) {\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Unable to read issuer cert (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n          pXVar13 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar13,(X509 *)connssl->backend->server_cert);\n          if (iVar38 == 0) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_infof(data," SSL certificate issuer check ok (%s)\n",pcVar30);\n            BIO_free(pBVar12);\n            X509_free(pXVar13);\n            goto LAB_000784c4;\n          }\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Certificate issuer check failed (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n        }\n        X509_free(pXVar13);\n      }" if (parenthesized_expression "(lVar16 < 1)" ( (binary_expression "lVar16 < 1" identifier < number_literal) )) (compound_statement "{\n        if (strict) {\n          if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n             (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n            pcVar30 = (data->set).proxy_ssl.issuercert;\n          }\n          else {\n            pcVar30 = (data->set).ssl.issuercert;\n          }\n          Curl_failf(data,"SSL: Unable to open issuer cert (%s)",pcVar30);\n        }\n        BIO_free(pBVar12);\n      }" { (if_statement "if (strict) {\n          if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n             (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n            pcVar30 = (data->set).proxy_ssl.issuercert;\n          }\n          else {\n            pcVar30 = (data->set).ssl.issuercert;\n          }\n          Curl_failf(data,"SSL: Unable to open issuer cert (%s)",pcVar30);\n        }" if (parenthesized_expression "(strict)" ( identifier )) (compound_statement "{\n          if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n             (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n            pcVar30 = (data->set).proxy_ssl.issuercert;\n          }\n          else {\n            pcVar30 = (data->set).ssl.issuercert;\n          }\n          Curl_failf(data,"SSL: Unable to open issuer cert (%s)",pcVar30);\n        }" { (if_statement "if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n             (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n            pcVar30 = (data->set).proxy_ssl.issuercert;\n          }\n          else {\n            pcVar30 = (data->set).ssl.issuercert;\n          }" if (parenthesized_expression "(((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n             (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete))" ( (binary_expression "((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n             (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" (parenthesized_expression "((conn->http_proxy).proxytype == CURLPROXY_HTTPS)" ( (binary_expression "(conn->http_proxy).proxytype == CURLPROXY_HTTPS" (field_expression "(conn->http_proxy).proxytype" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier) == identifier) )) && (parenthesized_expression "(conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" ( (binary_expression "conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete" (field_expression "conn->proxy_ssl[conn->sock[1] != -1].state" (subscript_expression "conn->proxy_ssl[conn->sock[1] != -1]" (field_expression "conn->proxy_ssl" identifier -> field_identifier) [ (binary_expression "conn->sock[1] != -1" (subscript_expression "conn->sock[1]" (field_expression "conn->sock" identifier -> field_identifier) [ number_literal ]) != number_literal) ]) . field_identifier) != identifier) ))) )) (compound_statement "{\n            pcVar30 = (data->set).proxy_ssl.issuercert;\n          }" { (expression_statement "pcVar30 = (data->set).proxy_ssl.issuercert;" (assignment_expression "pcVar30 = (data->set).proxy_ssl.issuercert" identifier = (field_expression "(data->set).proxy_ssl.issuercert" (field_expression "(data->set).proxy_ssl" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n            pcVar30 = (data->set).ssl.issuercert;\n          }" else (compound_statement "{\n            pcVar30 = (data->set).ssl.issuercert;\n          }" { (expression_statement "pcVar30 = (data->set).ssl.issuercert;" (assignment_expression "pcVar30 = (data->set).ssl.issuercert" identifier = (field_expression "(data->set).ssl.issuercert" (field_expression "(data->set).ssl" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }))) (expression_statement "Curl_failf(data,"SSL: Unable to open issuer cert (%s)",pcVar30);" (call_expression "Curl_failf(data,"SSL: Unable to open issuer cert (%s)",pcVar30)" identifier (argument_list "(data,"SSL: Unable to open issuer cert (%s)",pcVar30)" ( identifier , (string_literal ""SSL: Unable to open issuer cert (%s)"" " string_content ") , identifier ))) ;) })) (expression_statement "BIO_free(pBVar12);" (call_expression "BIO_free(pBVar12)" identifier (argument_list "(pBVar12)" ( identifier ))) ;) }) (else_clause "else {\n        pXVar13 = PEM_read_bio_X509(pBVar12,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar13 == (X509 *)0x0) {\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Unable to read issuer cert (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n          pXVar13 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar13,(X509 *)connssl->backend->server_cert);\n          if (iVar38 == 0) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_infof(data," SSL certificate issuer check ok (%s)\n",pcVar30);\n            BIO_free(pBVar12);\n            X509_free(pXVar13);\n            goto LAB_000784c4;\n          }\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Certificate issuer check failed (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n        }\n        X509_free(pXVar13);\n      }" else (compound_statement "{\n        pXVar13 = PEM_read_bio_X509(pBVar12,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar13 == (X509 *)0x0) {\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Unable to read issuer cert (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n          pXVar13 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar13,(X509 *)connssl->backend->server_cert);\n          if (iVar38 == 0) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_infof(data," SSL certificate issuer check ok (%s)\n",pcVar30);\n            BIO_free(pBVar12);\n            X509_free(pXVar13);\n            goto LAB_000784c4;\n          }\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Certificate issuer check failed (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n        }\n        X509_free(pXVar13);\n      }" { (expression_statement "pXVar13 = PEM_read_bio_X509(pBVar12,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);" (assignment_expression "pXVar13 = PEM_read_bio_X509(pBVar12,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0)" identifier = (call_expression "PEM_read_bio_X509(pBVar12,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0)" identifier (argument_list "(pBVar12,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0)" ( identifier , (cast_expression "(X509 **)0x0" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (pXVar13 == (X509 *)0x0) {\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Unable to read issuer cert (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n          pXVar13 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar13,(X509 *)connssl->backend->server_cert);\n          if (iVar38 == 0) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_infof(data," SSL certificate issuer check ok (%s)\n",pcVar30);\n            BIO_free(pBVar12);\n            X509_free(pXVar13);\n            goto LAB_000784c4;\n          }\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Certificate issuer check failed (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n        }" if (parenthesized_expression "(pXVar13 == (X509 *)0x0)" ( (binary_expression "pXVar13 == (X509 *)0x0" identifier == (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Unable to read issuer cert (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n          pXVar13 = (X509 *)0x0;\n        }" { (if_statement "if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Unable to read issuer cert (%s)",pcVar30);\n          }" if (parenthesized_expression "(strict)" ( identifier )) (compound_statement "{\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Unable to read issuer cert (%s)",pcVar30);\n          }" { (if_statement "if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }" if (parenthesized_expression "(((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete))" ( (binary_expression "((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" (parenthesized_expression "((conn->http_proxy).proxytype == CURLPROXY_HTTPS)" ( (binary_expression "(conn->http_proxy).proxytype == CURLPROXY_HTTPS" (field_expression "(conn->http_proxy).proxytype" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier) == identifier) )) && (parenthesized_expression "(conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" ( (binary_expression "conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete" (field_expression "conn->proxy_ssl[conn->sock[1] != -1].state" (subscript_expression "conn->proxy_ssl[conn->sock[1] != -1]" (field_expression "conn->proxy_ssl" identifier -> field_identifier) [ (binary_expression "conn->sock[1] != -1" (subscript_expression "conn->sock[1]" (field_expression "conn->sock" identifier -> field_identifier) [ number_literal ]) != number_literal) ]) . field_identifier) != identifier) ))) )) (compound_statement "{\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }" { (expression_statement "pcVar30 = (data->set).proxy_ssl.issuercert;" (assignment_expression "pcVar30 = (data->set).proxy_ssl.issuercert" identifier = (field_expression "(data->set).proxy_ssl.issuercert" (field_expression "(data->set).proxy_ssl" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }" else (compound_statement "{\n              pcVar30 = (data->set).ssl.issuercert;\n            }" { (expression_statement "pcVar30 = (data->set).ssl.issuercert;" (assignment_expression "pcVar30 = (data->set).ssl.issuercert" identifier = (field_expression "(data->set).ssl.issuercert" (field_expression "(data->set).ssl" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }))) (expression_statement "Curl_failf(data,"SSL: Unable to read issuer cert (%s)",pcVar30);" (call_expression "Curl_failf(data,"SSL: Unable to read issuer cert (%s)",pcVar30)" identifier (argument_list "(data,"SSL: Unable to read issuer cert (%s)",pcVar30)" ( identifier , (string_literal ""SSL: Unable to read issuer cert (%s)"" " string_content ") , identifier ))) ;) })) (expression_statement "BIO_free(pBVar12);" (call_expression "BIO_free(pBVar12)" identifier (argument_list "(pBVar12)" ( identifier ))) ;) (expression_statement "pXVar13 = (X509 *)0x0;" (assignment_expression "pXVar13 = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          iVar38 = X509_check_issued(pXVar13,(X509 *)connssl->backend->server_cert);\n          if (iVar38 == 0) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_infof(data," SSL certificate issuer check ok (%s)\n",pcVar30);\n            BIO_free(pBVar12);\n            X509_free(pXVar13);\n            goto LAB_000784c4;\n          }\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Certificate issuer check failed (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n        }" else (compound_statement "{\n          iVar38 = X509_check_issued(pXVar13,(X509 *)connssl->backend->server_cert);\n          if (iVar38 == 0) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_infof(data," SSL certificate issuer check ok (%s)\n",pcVar30);\n            BIO_free(pBVar12);\n            X509_free(pXVar13);\n            goto LAB_000784c4;\n          }\n          if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Certificate issuer check failed (%s)",pcVar30);\n          }\n          BIO_free(pBVar12);\n        }" { (expression_statement "iVar38 = X509_check_issued(pXVar13,(X509 *)connssl->backend->server_cert);" (assignment_expression "iVar38 = X509_check_issued(pXVar13,(X509 *)connssl->backend->server_cert)" identifier = (call_expression "X509_check_issued(pXVar13,(X509 *)connssl->backend->server_cert)" identifier (argument_list "(pXVar13,(X509 *)connssl->backend->server_cert)" ( identifier , (cast_expression "(X509 *)connssl->backend->server_cert" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier)) )))) ;) (if_statement "if (iVar38 == 0) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_infof(data," SSL certificate issuer check ok (%s)\n",pcVar30);\n            BIO_free(pBVar12);\n            X509_free(pXVar13);\n            goto LAB_000784c4;\n          }" if (parenthesized_expression "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )) (compound_statement "{\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_infof(data," SSL certificate issuer check ok (%s)\n",pcVar30);\n            BIO_free(pBVar12);\n            X509_free(pXVar13);\n            goto LAB_000784c4;\n          }" { (if_statement "if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }" if (parenthesized_expression "(((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete))" ( (binary_expression "((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" (parenthesized_expression "((conn->http_proxy).proxytype == CURLPROXY_HTTPS)" ( (binary_expression "(conn->http_proxy).proxytype == CURLPROXY_HTTPS" (field_expression "(conn->http_proxy).proxytype" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier) == identifier) )) && (parenthesized_expression "(conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" ( (binary_expression "conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete" (field_expression "conn->proxy_ssl[conn->sock[1] != -1].state" (subscript_expression "conn->proxy_ssl[conn->sock[1] != -1]" (field_expression "conn->proxy_ssl" identifier -> field_identifier) [ (binary_expression "conn->sock[1] != -1" (subscript_expression "conn->sock[1]" (field_expression "conn->sock" identifier -> field_identifier) [ number_literal ]) != number_literal) ]) . field_identifier) != identifier) ))) )) (compound_statement "{\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }" { (expression_statement "pcVar30 = (data->set).proxy_ssl.issuercert;" (assignment_expression "pcVar30 = (data->set).proxy_ssl.issuercert" identifier = (field_expression "(data->set).proxy_ssl.issuercert" (field_expression "(data->set).proxy_ssl" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }" else (compound_statement "{\n              pcVar30 = (data->set).ssl.issuercert;\n            }" { (expression_statement "pcVar30 = (data->set).ssl.issuercert;" (assignment_expression "pcVar30 = (data->set).ssl.issuercert" identifier = (field_expression "(data->set).ssl.issuercert" (field_expression "(data->set).ssl" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }))) (expression_statement "Curl_infof(data," SSL certificate issuer check ok (%s)\n",pcVar30);" (call_expression "Curl_infof(data," SSL certificate issuer check ok (%s)\n",pcVar30)" identifier (argument_list "(data," SSL certificate issuer check ok (%s)\n",pcVar30)" ( identifier , (string_literal "" SSL certificate issuer check ok (%s)\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "BIO_free(pBVar12);" (call_expression "BIO_free(pBVar12)" identifier (argument_list "(pBVar12)" ( identifier ))) ;) (expression_statement "X509_free(pXVar13);" (call_expression "X509_free(pXVar13)" identifier (argument_list "(pXVar13)" ( identifier ))) ;) (goto_statement "goto LAB_000784c4;" goto statement_identifier ;) })) (if_statement "if (strict) {\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Certificate issuer check failed (%s)",pcVar30);\n          }" if (parenthesized_expression "(strict)" ( identifier )) (compound_statement "{\n            if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }\n            Curl_failf(data,"SSL: Certificate issuer check failed (%s)",pcVar30);\n          }" { (if_statement "if (((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }\n            else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }" if (parenthesized_expression "(((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete))" ( (binary_expression "((conn->http_proxy).proxytype == CURLPROXY_HTTPS) &&\n               (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" (parenthesized_expression "((conn->http_proxy).proxytype == CURLPROXY_HTTPS)" ( (binary_expression "(conn->http_proxy).proxytype == CURLPROXY_HTTPS" (field_expression "(conn->http_proxy).proxytype" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier) == identifier) )) && (parenthesized_expression "(conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" ( (binary_expression "conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete" (field_expression "conn->proxy_ssl[conn->sock[1] != -1].state" (subscript_expression "conn->proxy_ssl[conn->sock[1] != -1]" (field_expression "conn->proxy_ssl" identifier -> field_identifier) [ (binary_expression "conn->sock[1] != -1" (subscript_expression "conn->sock[1]" (field_expression "conn->sock" identifier -> field_identifier) [ number_literal ]) != number_literal) ]) . field_identifier) != identifier) ))) )) (compound_statement "{\n              pcVar30 = (data->set).proxy_ssl.issuercert;\n            }" { (expression_statement "pcVar30 = (data->set).proxy_ssl.issuercert;" (assignment_expression "pcVar30 = (data->set).proxy_ssl.issuercert" identifier = (field_expression "(data->set).proxy_ssl.issuercert" (field_expression "(data->set).proxy_ssl" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n              pcVar30 = (data->set).ssl.issuercert;\n            }" else (compound_statement "{\n              pcVar30 = (data->set).ssl.issuercert;\n            }" { (expression_statement "pcVar30 = (data->set).ssl.issuercert;" (assignment_expression "pcVar30 = (data->set).ssl.issuercert" identifier = (field_expression "(data->set).ssl.issuercert" (field_expression "(data->set).ssl" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }))) (expression_statement "Curl_failf(data,"SSL: Certificate issuer check failed (%s)",pcVar30);" (call_expression "Curl_failf(data,"SSL: Certificate issuer check failed (%s)",pcVar30)" identifier (argument_list "(data,"SSL: Certificate issuer check failed (%s)",pcVar30)" ( identifier , (string_literal ""SSL: Certificate issuer check failed (%s)"" " string_content ") , identifier ))) ;) })) (expression_statement "BIO_free(pBVar12);" (call_expression "BIO_free(pBVar12)" identifier (argument_list "(pBVar12)" ( identifier ))) ;) }))) (expression_statement "X509_free(pXVar13);" (call_expression "X509_free(pXVar13)" identifier (argument_list "(pXVar13)" ( identifier ))) ;) }))) (expression_statement "X509_free((X509 *)connssl->backend->server_cert);" (call_expression "X509_free((X509 *)connssl->backend->server_cert)" identifier (argument_list "((X509 *)connssl->backend->server_cert)" ( (cast_expression "(X509 *)connssl->backend->server_cert" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier)) ))) ;) (expression_statement "CVar41 = CURLE_SSL_ISSUER_ERROR;" (assignment_expression "CVar41 = CURLE_SSL_ISSUER_ERROR" identifier = identifier) ;) (expression_statement "connssl->backend->server_cert = (X509 *)0x0;" (assignment_expression "connssl->backend->server_cert = (X509 *)0x0" (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier) = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00078251;" goto statement_identifier ;) })) (labeled_statement "LAB_000784c4:\n    lVar16 = SSL_get_verify_result((SSL *)connssl->backend->handle);" statement_identifier : (expression_statement "lVar16 = SSL_get_verify_result((SSL *)connssl->backend->handle);" (assignment_expression "lVar16 = SSL_get_verify_result((SSL *)connssl->backend->handle)" identifier = (call_expression "SSL_get_verify_result((SSL *)connssl->backend->handle)" identifier (argument_list "((SSL *)connssl->backend->handle)" ( (cast_expression "(SSL *)connssl->backend->handle" ( (type_descriptor "SSL *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connssl->backend->handle" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier)) )))) ;)) (expression_statement "*local_9f4 = lVar16;" (assignment_expression "*local_9f4 = lVar16" (pointer_expression "*local_9f4" * identifier) = identifier) ;) (if_statement "if (lVar16 == 0) {\n      CVar41 = CURLE_OK;\n      Curl_infof(data," SSL certificate verify ok.\n",pcVar30);\n      cVar39 = (conn->http_proxy).proxytype;\n    }\n    else {\n      cVar39 = (conn->http_proxy).proxytype;\n      if ((cVar39 == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n        cVar2 = (conn->proxy_ssl_config).verifypeer;\n      }\n      else {\n        cVar2 = (conn->ssl_config).verifypeer;\n      }\n      if (cVar2 == '\0') {\n        CVar41 = CURLE_OK;\n        pcVar30 = X509_verify_cert_error_string(lVar16);\n        Curl_infof(data," SSL certificate verify result: %s (%ld), continuing anyway.\n",pcVar30,\n                   lVar16);\n        cVar39 = (conn->http_proxy).proxytype;\n      }\n      else {\n        CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n        if (strict) {\n          pcVar30 = X509_verify_cert_error_string(lVar16);\n          Curl_failf(data,"SSL certificate verify result: %s (%ld)",pcVar30,lVar16);\n          cVar39 = (conn->http_proxy).proxytype;\n        }\n      }\n    }" if (parenthesized_expression "(lVar16 == 0)" ( (binary_expression "lVar16 == 0" identifier == number_literal) )) (compound_statement "{\n      CVar41 = CURLE_OK;\n      Curl_infof(data," SSL certificate verify ok.\n",pcVar30);\n      cVar39 = (conn->http_proxy).proxytype;\n    }" { (expression_statement "CVar41 = CURLE_OK;" (assignment_expression "CVar41 = CURLE_OK" identifier = identifier) ;) (expression_statement "Curl_infof(data," SSL certificate verify ok.\n",pcVar30);" (call_expression "Curl_infof(data," SSL certificate verify ok.\n",pcVar30)" identifier (argument_list "(data," SSL certificate verify ok.\n",pcVar30)" ( identifier , (string_literal "" SSL certificate verify ok.\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "cVar39 = (conn->http_proxy).proxytype;" (assignment_expression "cVar39 = (conn->http_proxy).proxytype" identifier = (field_expression "(conn->http_proxy).proxytype" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier)) ;) }) (else_clause "else {\n      cVar39 = (conn->http_proxy).proxytype;\n      if ((cVar39 == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n        cVar2 = (conn->proxy_ssl_config).verifypeer;\n      }\n      else {\n        cVar2 = (conn->ssl_config).verifypeer;\n      }\n      if (cVar2 == '\0') {\n        CVar41 = CURLE_OK;\n        pcVar30 = X509_verify_cert_error_string(lVar16);\n        Curl_infof(data," SSL certificate verify result: %s (%ld), continuing anyway.\n",pcVar30,\n                   lVar16);\n        cVar39 = (conn->http_proxy).proxytype;\n      }\n      else {\n        CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n        if (strict) {\n          pcVar30 = X509_verify_cert_error_string(lVar16);\n          Curl_failf(data,"SSL certificate verify result: %s (%ld)",pcVar30,lVar16);\n          cVar39 = (conn->http_proxy).proxytype;\n        }\n      }\n    }" else (compound_statement "{\n      cVar39 = (conn->http_proxy).proxytype;\n      if ((cVar39 == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n        cVar2 = (conn->proxy_ssl_config).verifypeer;\n      }\n      else {\n        cVar2 = (conn->ssl_config).verifypeer;\n      }\n      if (cVar2 == '\0') {\n        CVar41 = CURLE_OK;\n        pcVar30 = X509_verify_cert_error_string(lVar16);\n        Curl_infof(data," SSL certificate verify result: %s (%ld), continuing anyway.\n",pcVar30,\n                   lVar16);\n        cVar39 = (conn->http_proxy).proxytype;\n      }\n      else {\n        CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n        if (strict) {\n          pcVar30 = X509_verify_cert_error_string(lVar16);\n          Curl_failf(data,"SSL certificate verify result: %s (%ld)",pcVar30,lVar16);\n          cVar39 = (conn->http_proxy).proxytype;\n        }\n      }\n    }" { (expression_statement "cVar39 = (conn->http_proxy).proxytype;" (assignment_expression "cVar39 = (conn->http_proxy).proxytype" identifier = (field_expression "(conn->http_proxy).proxytype" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((cVar39 == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n        cVar2 = (conn->proxy_ssl_config).verifypeer;\n      }\n      else {\n        cVar2 = (conn->ssl_config).verifypeer;\n      }" if (parenthesized_expression "((cVar39 == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete))" ( (binary_expression "(cVar39 == CURLPROXY_HTTPS) &&\n         (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" (parenthesized_expression "(cVar39 == CURLPROXY_HTTPS)" ( (binary_expression "cVar39 == CURLPROXY_HTTPS" identifier == identifier) )) && (parenthesized_expression "(conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" ( (binary_expression "conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete" (field_expression "conn->proxy_ssl[conn->sock[1] != -1].state" (subscript_expression "conn->proxy_ssl[conn->sock[1] != -1]" (field_expression "conn->proxy_ssl" identifier -> field_identifier) [ (binary_expression "conn->sock[1] != -1" (subscript_expression "conn->sock[1]" (field_expression "conn->sock" identifier -> field_identifier) [ number_literal ]) != number_literal) ]) . field_identifier) != identifier) ))) )) (compound_statement "{\n        cVar2 = (conn->proxy_ssl_config).verifypeer;\n      }" { (expression_statement "cVar2 = (conn->proxy_ssl_config).verifypeer;" (assignment_expression "cVar2 = (conn->proxy_ssl_config).verifypeer" identifier = (field_expression "(conn->proxy_ssl_config).verifypeer" (parenthesized_expression "(conn->proxy_ssl_config)" ( (field_expression "conn->proxy_ssl_config" identifier -> field_identifier) )) . field_identifier)) ;) }) (else_clause "else {\n        cVar2 = (conn->ssl_config).verifypeer;\n      }" else (compound_statement "{\n        cVar2 = (conn->ssl_config).verifypeer;\n      }" { (expression_statement "cVar2 = (conn->ssl_config).verifypeer;" (assignment_expression "cVar2 = (conn->ssl_config).verifypeer" identifier = (field_expression "(conn->ssl_config).verifypeer" (parenthesized_expression "(conn->ssl_config)" ( (field_expression "conn->ssl_config" identifier -> field_identifier) )) . field_identifier)) ;) }))) (if_statement "if (cVar2 == '\0') {\n        CVar41 = CURLE_OK;\n        pcVar30 = X509_verify_cert_error_string(lVar16);\n        Curl_infof(data," SSL certificate verify result: %s (%ld), continuing anyway.\n",pcVar30,\n                   lVar16);\n        cVar39 = (conn->http_proxy).proxytype;\n      }\n      else {\n        CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n        if (strict) {\n          pcVar30 = X509_verify_cert_error_string(lVar16);\n          Curl_failf(data,"SSL certificate verify result: %s (%ld)",pcVar30,lVar16);\n          cVar39 = (conn->http_proxy).proxytype;\n        }\n      }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        CVar41 = CURLE_OK;\n        pcVar30 = X509_verify_cert_error_string(lVar16);\n        Curl_infof(data," SSL certificate verify result: %s (%ld), continuing anyway.\n",pcVar30,\n                   lVar16);\n        cVar39 = (conn->http_proxy).proxytype;\n      }" { (expression_statement "CVar41 = CURLE_OK;" (assignment_expression "CVar41 = CURLE_OK" identifier = identifier) ;) (expression_statement "pcVar30 = X509_verify_cert_error_string(lVar16);" (assignment_expression "pcVar30 = X509_verify_cert_error_string(lVar16)" identifier = (call_expression "X509_verify_cert_error_string(lVar16)" identifier (argument_list "(lVar16)" ( identifier )))) ;) (expression_statement "Curl_infof(data," SSL certificate verify result: %s (%ld), continuing anyway.\n",pcVar30,\n                   lVar16);" (call_expression "Curl_infof(data," SSL certificate verify result: %s (%ld), continuing anyway.\n",pcVar30,\n                   lVar16)" identifier (argument_list "(data," SSL certificate verify result: %s (%ld), continuing anyway.\n",pcVar30,\n                   lVar16)" ( identifier , (string_literal "" SSL certificate verify result: %s (%ld), continuing anyway.\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "cVar39 = (conn->http_proxy).proxytype;" (assignment_expression "cVar39 = (conn->http_proxy).proxytype" identifier = (field_expression "(conn->http_proxy).proxytype" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier)) ;) }) (else_clause "else {\n        CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n        if (strict) {\n          pcVar30 = X509_verify_cert_error_string(lVar16);\n          Curl_failf(data,"SSL certificate verify result: %s (%ld)",pcVar30,lVar16);\n          cVar39 = (conn->http_proxy).proxytype;\n        }\n      }" else (compound_statement "{\n        CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n        if (strict) {\n          pcVar30 = X509_verify_cert_error_string(lVar16);\n          Curl_failf(data,"SSL certificate verify result: %s (%ld)",pcVar30,lVar16);\n          cVar39 = (conn->http_proxy).proxytype;\n        }\n      }" { (expression_statement "CVar41 = CURLE_PEER_FAILED_VERIFICATION;" (assignment_expression "CVar41 = CURLE_PEER_FAILED_VERIFICATION" identifier = identifier) ;) (if_statement "if (strict) {\n          pcVar30 = X509_verify_cert_error_string(lVar16);\n          Curl_failf(data,"SSL certificate verify result: %s (%ld)",pcVar30,lVar16);\n          cVar39 = (conn->http_proxy).proxytype;\n        }" if (parenthesized_expression "(strict)" ( identifier )) (compound_statement "{\n          pcVar30 = X509_verify_cert_error_string(lVar16);\n          Curl_failf(data,"SSL certificate verify result: %s (%ld)",pcVar30,lVar16);\n          cVar39 = (conn->http_proxy).proxytype;\n        }" { (expression_statement "pcVar30 = X509_verify_cert_error_string(lVar16);" (assignment_expression "pcVar30 = X509_verify_cert_error_string(lVar16)" identifier = (call_expression "X509_verify_cert_error_string(lVar16)" identifier (argument_list "(lVar16)" ( identifier )))) ;) (expression_statement "Curl_failf(data,"SSL certificate verify result: %s (%ld)",pcVar30,lVar16);" (call_expression "Curl_failf(data,"SSL certificate verify result: %s (%ld)",pcVar30,lVar16)" identifier (argument_list "(data,"SSL certificate verify result: %s (%ld)",pcVar30,lVar16)" ( identifier , (string_literal ""SSL certificate verify result: %s (%ld)"" " string_content ") , identifier , identifier ))) ;) (expression_statement "cVar39 = (conn->http_proxy).proxytype;" (assignment_expression "cVar39 = (conn->http_proxy).proxytype" identifier = (field_expression "(conn->http_proxy).proxytype" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier)) ;) })) }))) }))) }) (else_clause "else if (strict) {\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    Curl_failf(data,"SSL: couldn\'t get X509-issuer name!",puVar17);\n    cVar39 = (conn->http_proxy).proxytype;\n  }\n  else {\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    cVar39 = (conn->http_proxy).proxytype;\n  }" else (if_statement "if (strict) {\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    Curl_failf(data,"SSL: couldn\'t get X509-issuer name!",puVar17);\n    cVar39 = (conn->http_proxy).proxytype;\n  }\n  else {\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    cVar39 = (conn->http_proxy).proxytype;\n  }" if (parenthesized_expression "(strict)" ( identifier )) (compound_statement "{\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    Curl_failf(data,"SSL: couldn\'t get X509-issuer name!",puVar17);\n    cVar39 = (conn->http_proxy).proxytype;\n  }" { (expression_statement "CVar41 = CURLE_PEER_FAILED_VERIFICATION;" (assignment_expression "CVar41 = CURLE_PEER_FAILED_VERIFICATION" identifier = identifier) ;) (expression_statement "Curl_failf(data,"SSL: couldn\'t get X509-issuer name!",puVar17);" (call_expression "Curl_failf(data,"SSL: couldn\'t get X509-issuer name!",puVar17)" identifier (argument_list "(data,"SSL: couldn\'t get X509-issuer name!",puVar17)" ( identifier , (string_literal ""SSL: couldn\'t get X509-issuer name!"" " string_content escape_sequence string_content ") , identifier ))) ;) (expression_statement "cVar39 = (conn->http_proxy).proxytype;" (assignment_expression "cVar39 = (conn->http_proxy).proxytype" identifier = (field_expression "(conn->http_proxy).proxytype" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier)) ;) }) (else_clause "else {\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    cVar39 = (conn->http_proxy).proxytype;\n  }" else (compound_statement "{\n    CVar41 = CURLE_PEER_FAILED_VERIFICATION;\n    cVar39 = (conn->http_proxy).proxytype;\n  }" { (expression_statement "CVar41 = CURLE_PEER_FAILED_VERIFICATION;" (assignment_expression "CVar41 = CURLE_PEER_FAILED_VERIFICATION" identifier = identifier) ;) (expression_statement "cVar39 = (conn->http_proxy).proxytype;" (assignment_expression "cVar39 = (conn->http_proxy).proxytype" identifier = (field_expression "(conn->http_proxy).proxytype" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier)) ;) }))))) (if_statement "if ((cVar39 == CURLPROXY_HTTPS) &&\n     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n    cVar2 = (conn->proxy_ssl_config).verifystatus;\n    psVar18 = connssl->backend;\n  }\n  else {\n    cVar2 = (conn->ssl_config).verifystatus;\n    psVar18 = connssl->backend;\n  }" if (parenthesized_expression "((cVar39 == CURLPROXY_HTTPS) &&\n     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete))" ( (binary_expression "(cVar39 == CURLPROXY_HTTPS) &&\n     (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" (parenthesized_expression "(cVar39 == CURLPROXY_HTTPS)" ( (binary_expression "cVar39 == CURLPROXY_HTTPS" identifier == identifier) )) && (parenthesized_expression "(conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" ( (binary_expression "conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete" (field_expression "conn->proxy_ssl[conn->sock[1] != -1].state" (subscript_expression "conn->proxy_ssl[conn->sock[1] != -1]" (field_expression "conn->proxy_ssl" identifier -> field_identifier) [ (binary_expression "conn->sock[1] != -1" (subscript_expression "conn->sock[1]" (field_expression "conn->sock" identifier -> field_identifier) [ number_literal ]) != number_literal) ]) . field_identifier) != identifier) ))) )) (compound_statement "{\n    cVar2 = (conn->proxy_ssl_config).verifystatus;\n    psVar18 = connssl->backend;\n  }" { (expression_statement "cVar2 = (conn->proxy_ssl_config).verifystatus;" (assignment_expression "cVar2 = (conn->proxy_ssl_config).verifystatus" identifier = (field_expression "(conn->proxy_ssl_config).verifystatus" (parenthesized_expression "(conn->proxy_ssl_config)" ( (field_expression "conn->proxy_ssl_config" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "psVar18 = connssl->backend;" (assignment_expression "psVar18 = connssl->backend" identifier = (field_expression "connssl->backend" identifier -> field_identifier)) ;) }) (else_clause "else {\n    cVar2 = (conn->ssl_config).verifystatus;\n    psVar18 = connssl->backend;\n  }" else (compound_statement "{\n    cVar2 = (conn->ssl_config).verifystatus;\n    psVar18 = connssl->backend;\n  }" { (expression_statement "cVar2 = (conn->ssl_config).verifystatus;" (assignment_expression "cVar2 = (conn->ssl_config).verifystatus" identifier = (field_expression "(conn->ssl_config).verifystatus" (parenthesized_expression "(conn->ssl_config)" ( (field_expression "conn->ssl_config" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "psVar18 = connssl->backend;" (assignment_expression "psVar18 = connssl->backend" identifier = (field_expression "connssl->backend" identifier -> field_identifier)) ;) }))) (if_statement "if (cVar2 == '\0') {\nLAB_0007814e:\n    if (!strict) {\n      CVar41 = CURLE_OK;\n    }\n    if ((cVar39 == CURLPROXY_HTTPS) &&\n       (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n      pcVar30 = (data->set).str[0x1f];\n    }\n    else {\n      pcVar30 = (data->set).str[0x1e];\n    }\n    pXVar13 = (X509 *)psVar18->server_cert;\n    ptr = pcVar30;\n    if ((CVar41 == CURLE_OK) && (pcVar30 != (char *)0x0)) {\n      temp = (uchar *)0x0;\n      if (pXVar13 == (X509 *)0x0) {\nLAB_00078208:\n        CVar41 = CURLE_SSL_PINNEDPUBKEYNOTMATCH;\n      }\n      else {\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar20 = i2d_X509_PUBKEY(pXVar19,(uchar **)0x0);\n        if (((int)sVar20 < 1) ||\n           (puVar17 = (uchar *)(*Curl_cmalloc)(sVar20), temp = puVar17, puVar17 == (uchar *)0x0))\n        goto LAB_00078208;\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar21 = i2d_X509_PUBKEY(pXVar19,&temp);\n        if ((sVar20 != sVar21) || ((temp == (uchar *)0x0 || (sVar20 != (int)temp - (int)puVar17))))\n        {\n          (*Curl_cfree)(puVar17);\n          goto LAB_00078208;\n        }\n        CVar41 = Curl_pin_peer_pubkey(data,pcVar30,puVar17,sVar20);\n        (*Curl_cfree)(puVar17);\n        if (CVar41 == CURLE_OK) {\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_00078230;\n        }\n      }\n      Curl_failf(data,"SSL: public key does not match pinned public key!");\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }\nLAB_00078230:\n    X509_free(pXVar13);\n    connssl->backend->server_cert = (X509 *)0x0;\n    connssl->connecting_state = ssl_connect_done;\n    goto LAB_00078251;\n  }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0007814e:\n    if (!strict) {\n      CVar41 = CURLE_OK;\n    }\n    if ((cVar39 == CURLPROXY_HTTPS) &&\n       (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n      pcVar30 = (data->set).str[0x1f];\n    }\n    else {\n      pcVar30 = (data->set).str[0x1e];\n    }\n    pXVar13 = (X509 *)psVar18->server_cert;\n    ptr = pcVar30;\n    if ((CVar41 == CURLE_OK) && (pcVar30 != (char *)0x0)) {\n      temp = (uchar *)0x0;\n      if (pXVar13 == (X509 *)0x0) {\nLAB_00078208:\n        CVar41 = CURLE_SSL_PINNEDPUBKEYNOTMATCH;\n      }\n      else {\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar20 = i2d_X509_PUBKEY(pXVar19,(uchar **)0x0);\n        if (((int)sVar20 < 1) ||\n           (puVar17 = (uchar *)(*Curl_cmalloc)(sVar20), temp = puVar17, puVar17 == (uchar *)0x0))\n        goto LAB_00078208;\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar21 = i2d_X509_PUBKEY(pXVar19,&temp);\n        if ((sVar20 != sVar21) || ((temp == (uchar *)0x0 || (sVar20 != (int)temp - (int)puVar17))))\n        {\n          (*Curl_cfree)(puVar17);\n          goto LAB_00078208;\n        }\n        CVar41 = Curl_pin_peer_pubkey(data,pcVar30,puVar17,sVar20);\n        (*Curl_cfree)(puVar17);\n        if (CVar41 == CURLE_OK) {\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_00078230;\n        }\n      }\n      Curl_failf(data,"SSL: public key does not match pinned public key!");\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }\nLAB_00078230:\n    X509_free(pXVar13);\n    connssl->backend->server_cert = (X509 *)0x0;\n    connssl->connecting_state = ssl_connect_done;\n    goto LAB_00078251;\n  }" { (labeled_statement "LAB_0007814e:\n    if (!strict) {\n      CVar41 = CURLE_OK;\n    }" statement_identifier : (if_statement "if (!strict) {\n      CVar41 = CURLE_OK;\n    }" if (parenthesized_expression "(!strict)" ( (unary_expression "!strict" ! identifier) )) (compound_statement "{\n      CVar41 = CURLE_OK;\n    }" { (expression_statement "CVar41 = CURLE_OK;" (assignment_expression "CVar41 = CURLE_OK" identifier = identifier) ;) }))) (if_statement "if ((cVar39 == CURLPROXY_HTTPS) &&\n       (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)) {\n      pcVar30 = (data->set).str[0x1f];\n    }\n    else {\n      pcVar30 = (data->set).str[0x1e];\n    }" if (parenthesized_expression "((cVar39 == CURLPROXY_HTTPS) &&\n       (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete))" ( (binary_expression "(cVar39 == CURLPROXY_HTTPS) &&\n       (conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" (parenthesized_expression "(cVar39 == CURLPROXY_HTTPS)" ( (binary_expression "cVar39 == CURLPROXY_HTTPS" identifier == identifier) )) && (parenthesized_expression "(conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete)" ( (binary_expression "conn->proxy_ssl[conn->sock[1] != -1].state != ssl_connection_complete" (field_expression "conn->proxy_ssl[conn->sock[1] != -1].state" (subscript_expression "conn->proxy_ssl[conn->sock[1] != -1]" (field_expression "conn->proxy_ssl" identifier -> field_identifier) [ (binary_expression "conn->sock[1] != -1" (subscript_expression "conn->sock[1]" (field_expression "conn->sock" identifier -> field_identifier) [ number_literal ]) != number_literal) ]) . field_identifier) != identifier) ))) )) (compound_statement "{\n      pcVar30 = (data->set).str[0x1f];\n    }" { (expression_statement "pcVar30 = (data->set).str[0x1f];" (assignment_expression "pcVar30 = (data->set).str[0x1f]" identifier = (subscript_expression "(data->set).str[0x1f]" (field_expression "(data->set).str" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) }) (else_clause "else {\n      pcVar30 = (data->set).str[0x1e];\n    }" else (compound_statement "{\n      pcVar30 = (data->set).str[0x1e];\n    }" { (expression_statement "pcVar30 = (data->set).str[0x1e];" (assignment_expression "pcVar30 = (data->set).str[0x1e]" identifier = (subscript_expression "(data->set).str[0x1e]" (field_expression "(data->set).str" (parenthesized_expression "(data->set)" ( (field_expression "data->set" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) }))) (expression_statement "pXVar13 = (X509 *)psVar18->server_cert;" (assignment_expression "pXVar13 = (X509 *)psVar18->server_cert" identifier = (cast_expression "(X509 *)psVar18->server_cert" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "psVar18->server_cert" identifier -> field_identifier))) ;) (expression_statement "ptr = pcVar30;" (assignment_expression "ptr = pcVar30" identifier = identifier) ;) (if_statement "if ((CVar41 == CURLE_OK) && (pcVar30 != (char *)0x0)) {\n      temp = (uchar *)0x0;\n      if (pXVar13 == (X509 *)0x0) {\nLAB_00078208:\n        CVar41 = CURLE_SSL_PINNEDPUBKEYNOTMATCH;\n      }\n      else {\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar20 = i2d_X509_PUBKEY(pXVar19,(uchar **)0x0);\n        if (((int)sVar20 < 1) ||\n           (puVar17 = (uchar *)(*Curl_cmalloc)(sVar20), temp = puVar17, puVar17 == (uchar *)0x0))\n        goto LAB_00078208;\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar21 = i2d_X509_PUBKEY(pXVar19,&temp);\n        if ((sVar20 != sVar21) || ((temp == (uchar *)0x0 || (sVar20 != (int)temp - (int)puVar17))))\n        {\n          (*Curl_cfree)(puVar17);\n          goto LAB_00078208;\n        }\n        CVar41 = Curl_pin_peer_pubkey(data,pcVar30,puVar17,sVar20);\n        (*Curl_cfree)(puVar17);\n        if (CVar41 == CURLE_OK) {\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_00078230;\n        }\n      }\n      Curl_failf(data,"SSL: public key does not match pinned public key!");\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }" if (parenthesized_expression "((CVar41 == CURLE_OK) && (pcVar30 != (char *)0x0))" ( (binary_expression "(CVar41 == CURLE_OK) && (pcVar30 != (char *)0x0)" (parenthesized_expression "(CVar41 == CURLE_OK)" ( (binary_expression "CVar41 == CURLE_OK" identifier == identifier) )) && (parenthesized_expression "(pcVar30 != (char *)0x0)" ( (binary_expression "pcVar30 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      temp = (uchar *)0x0;\n      if (pXVar13 == (X509 *)0x0) {\nLAB_00078208:\n        CVar41 = CURLE_SSL_PINNEDPUBKEYNOTMATCH;\n      }\n      else {\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar20 = i2d_X509_PUBKEY(pXVar19,(uchar **)0x0);\n        if (((int)sVar20 < 1) ||\n           (puVar17 = (uchar *)(*Curl_cmalloc)(sVar20), temp = puVar17, puVar17 == (uchar *)0x0))\n        goto LAB_00078208;\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar21 = i2d_X509_PUBKEY(pXVar19,&temp);\n        if ((sVar20 != sVar21) || ((temp == (uchar *)0x0 || (sVar20 != (int)temp - (int)puVar17))))\n        {\n          (*Curl_cfree)(puVar17);\n          goto LAB_00078208;\n        }\n        CVar41 = Curl_pin_peer_pubkey(data,pcVar30,puVar17,sVar20);\n        (*Curl_cfree)(puVar17);\n        if (CVar41 == CURLE_OK) {\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_00078230;\n        }\n      }\n      Curl_failf(data,"SSL: public key does not match pinned public key!");\n      pXVar13 = (X509 *)connssl->backend->server_cert;\n    }" { (expression_statement "temp = (uchar *)0x0;" (assignment_expression "temp = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pXVar13 == (X509 *)0x0) {\nLAB_00078208:\n        CVar41 = CURLE_SSL_PINNEDPUBKEYNOTMATCH;\n      }\n      else {\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar20 = i2d_X509_PUBKEY(pXVar19,(uchar **)0x0);\n        if (((int)sVar20 < 1) ||\n           (puVar17 = (uchar *)(*Curl_cmalloc)(sVar20), temp = puVar17, puVar17 == (uchar *)0x0))\n        goto LAB_00078208;\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar21 = i2d_X509_PUBKEY(pXVar19,&temp);\n        if ((sVar20 != sVar21) || ((temp == (uchar *)0x0 || (sVar20 != (int)temp - (int)puVar17))))\n        {\n          (*Curl_cfree)(puVar17);\n          goto LAB_00078208;\n        }\n        CVar41 = Curl_pin_peer_pubkey(data,pcVar30,puVar17,sVar20);\n        (*Curl_cfree)(puVar17);\n        if (CVar41 == CURLE_OK) {\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_00078230;\n        }\n      }" if (parenthesized_expression "(pXVar13 == (X509 *)0x0)" ( (binary_expression "pXVar13 == (X509 *)0x0" identifier == (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00078208:\n        CVar41 = CURLE_SSL_PINNEDPUBKEYNOTMATCH;\n      }" { (labeled_statement "LAB_00078208:\n        CVar41 = CURLE_SSL_PINNEDPUBKEYNOTMATCH;" statement_identifier : (expression_statement "CVar41 = CURLE_SSL_PINNEDPUBKEYNOTMATCH;" (assignment_expression "CVar41 = CURLE_SSL_PINNEDPUBKEYNOTMATCH" identifier = identifier) ;)) }) (else_clause "else {\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar20 = i2d_X509_PUBKEY(pXVar19,(uchar **)0x0);\n        if (((int)sVar20 < 1) ||\n           (puVar17 = (uchar *)(*Curl_cmalloc)(sVar20), temp = puVar17, puVar17 == (uchar *)0x0))\n        goto LAB_00078208;\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar21 = i2d_X509_PUBKEY(pXVar19,&temp);\n        if ((sVar20 != sVar21) || ((temp == (uchar *)0x0 || (sVar20 != (int)temp - (int)puVar17))))\n        {\n          (*Curl_cfree)(puVar17);\n          goto LAB_00078208;\n        }\n        CVar41 = Curl_pin_peer_pubkey(data,pcVar30,puVar17,sVar20);\n        (*Curl_cfree)(puVar17);\n        if (CVar41 == CURLE_OK) {\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_00078230;\n        }\n      }" else (compound_statement "{\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar20 = i2d_X509_PUBKEY(pXVar19,(uchar **)0x0);\n        if (((int)sVar20 < 1) ||\n           (puVar17 = (uchar *)(*Curl_cmalloc)(sVar20), temp = puVar17, puVar17 == (uchar *)0x0))\n        goto LAB_00078208;\n        pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);\n        sVar21 = i2d_X509_PUBKEY(pXVar19,&temp);\n        if ((sVar20 != sVar21) || ((temp == (uchar *)0x0 || (sVar20 != (int)temp - (int)puVar17))))\n        {\n          (*Curl_cfree)(puVar17);\n          goto LAB_00078208;\n        }\n        CVar41 = Curl_pin_peer_pubkey(data,pcVar30,puVar17,sVar20);\n        (*Curl_cfree)(puVar17);\n        if (CVar41 == CURLE_OK) {\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_00078230;\n        }\n      }" { (expression_statement "pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);" (assignment_expression "pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13)" identifier = (cast_expression "(X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13)" ( (type_descriptor "X509_PUBKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get_X509_PUBKEY(pXVar13)" identifier (argument_list "(pXVar13)" ( identifier ))))) ;) (expression_statement "sVar20 = i2d_X509_PUBKEY(pXVar19,(uchar **)0x0);" (assignment_expression "sVar20 = i2d_X509_PUBKEY(pXVar19,(uchar **)0x0)" identifier = (call_expression "i2d_X509_PUBKEY(pXVar19,(uchar **)0x0)" identifier (argument_list "(pXVar19,(uchar **)0x0)" ( identifier , (cast_expression "(uchar **)0x0" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) (if_statement "if (((int)sVar20 < 1) ||\n           (puVar17 = (uchar *)(*Curl_cmalloc)(sVar20), temp = puVar17, puVar17 == (uchar *)0x0))\n        goto LAB_00078208;" if (parenthesized_expression "(((int)sVar20 < 1) ||\n           (puVar17 = (uchar *)(*Curl_cmalloc)(sVar20), temp = puVar17, puVar17 == (uchar *)0x0))" ( (binary_expression "((int)sVar20 < 1) ||\n           (puVar17 = (uchar *)(*Curl_cmalloc)(sVar20), temp = puVar17, puVar17 == (uchar *)0x0)" (parenthesized_expression "((int)sVar20 < 1)" ( (binary_expression "(int)sVar20 < 1" (cast_expression "(int)sVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(puVar17 = (uchar *)(*Curl_cmalloc)(sVar20), temp = puVar17, puVar17 == (uchar *)0x0)" ( (comma_expression "puVar17 = (uchar *)(*Curl_cmalloc)(sVar20), temp = puVar17, puVar17 == (uchar *)0x0" (assignment_expression "puVar17 = (uchar *)(*Curl_cmalloc)(sVar20)" identifier = (cast_expression "(uchar *)(*Curl_cmalloc)(sVar20)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*Curl_cmalloc)(sVar20)" (parenthesized_expression "(*Curl_cmalloc)" ( (pointer_expression "*Curl_cmalloc" * identifier) )) (argument_list "(sVar20)" ( identifier ))))) , (comma_expression "temp = puVar17, puVar17 == (uchar *)0x0" (assignment_expression "temp = puVar17" identifier = identifier) , (binary_expression "puVar17 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (goto_statement "goto LAB_00078208;" goto statement_identifier ;)) (expression_statement "pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13);" (assignment_expression "pXVar19 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13)" identifier = (cast_expression "(X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar13)" ( (type_descriptor "X509_PUBKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get_X509_PUBKEY(pXVar13)" identifier (argument_list "(pXVar13)" ( identifier ))))) ;) (expression_statement "sVar21 = i2d_X509_PUBKEY(pXVar19,&temp);" (assignment_expression "sVar21 = i2d_X509_PUBKEY(pXVar19,&temp)" identifier = (call_expression "i2d_X509_PUBKEY(pXVar19,&temp)" identifier (argument_list "(pXVar19,&temp)" ( identifier , (pointer_expression "&temp" & identifier) )))) ;) (if_statement "if ((sVar20 != sVar21) || ((temp == (uchar *)0x0 || (sVar20 != (int)temp - (int)puVar17))))\n        {\n          (*Curl_cfree)(puVar17);\n          goto LAB_00078208;\n        }" if (parenthesized_expression "((sVar20 != sVar21) || ((temp == (uchar *)0x0 || (sVar20 != (int)temp - (int)puVar17))))" ( (binary_expression "(sVar20 != sVar21) || ((temp == (uchar *)0x0 || (sVar20 != (int)temp - (int)puVar17)))" (parenthesized_expression "(sVar20 != sVar21)" ( (binary_expression "sVar20 != sVar21" identifier != identifier) )) || (parenthesized_expression "((temp == (uchar *)0x0 || (sVar20 != (int)temp - (int)puVar17)))" ( (parenthesized_expression "(temp == (uchar *)0x0 || (sVar20 != (int)temp - (int)puVar17))" ( (binary_expression "temp == (uchar *)0x0 || (sVar20 != (int)temp - (int)puVar17)" (binary_expression "temp == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(sVar20 != (int)temp - (int)puVar17)" ( (binary_expression "sVar20 != (int)temp - (int)puVar17" identifier != (binary_expression "(int)temp - (int)puVar17" (cast_expression "(int)temp" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) ))) )) (compound_statement "{\n          (*Curl_cfree)(puVar17);\n          goto LAB_00078208;\n        }" { (expression_statement "(*Curl_cfree)(puVar17);" (call_expression "(*Curl_cfree)(puVar17)" (parenthesized_expression "(*Curl_cfree)" ( (pointer_expression "*Curl_cfree" * identifier) )) (argument_list "(puVar17)" ( identifier ))) ;) (goto_statement "goto LAB_00078208;" goto statement_identifier ;) })) (expression_statement "CVar41 = Curl_pin_peer_pubkey(data,pcVar30,puVar17,sVar20);" (assignment_expression "CVar41 = Curl_pin_peer_pubkey(data,pcVar30,puVar17,sVar20)" identifier = (call_expression "Curl_pin_peer_pubkey(data,pcVar30,puVar17,sVar20)" identifier (argument_list "(data,pcVar30,puVar17,sVar20)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "(*Curl_cfree)(puVar17);" (call_expression "(*Curl_cfree)(puVar17)" (parenthesized_expression "(*Curl_cfree)" ( (pointer_expression "*Curl_cfree" * identifier) )) (argument_list "(puVar17)" ( identifier ))) ;) (if_statement "if (CVar41 == CURLE_OK) {\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_00078230;\n        }" if (parenthesized_expression "(CVar41 == CURLE_OK)" ( (binary_expression "CVar41 == CURLE_OK" identifier == identifier) )) (compound_statement "{\n          pXVar13 = (X509 *)connssl->backend->server_cert;\n          goto LAB_00078230;\n        }" { (expression_statement "pXVar13 = (X509 *)connssl->backend->server_cert;" (assignment_expression "pXVar13 = (X509 *)connssl->backend->server_cert" identifier = (cast_expression "(X509 *)connssl->backend->server_cert" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier))) ;) (goto_statement "goto LAB_00078230;" goto statement_identifier ;) })) }))) (expression_statement "Curl_failf(data,"SSL: public key does not match pinned public key!");" (call_expression "Curl_failf(data,"SSL: public key does not match pinned public key!")" identifier (argument_list "(data,"SSL: public key does not match pinned public key!")" ( identifier , (string_literal ""SSL: public key does not match pinned public key!"" " string_content ") ))) ;) (expression_statement "pXVar13 = (X509 *)connssl->backend->server_cert;" (assignment_expression "pXVar13 = (X509 *)connssl->backend->server_cert" identifier = (cast_expression "(X509 *)connssl->backend->server_cert" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier))) ;) })) (labeled_statement "LAB_00078230:\n    X509_free(pXVar13);" statement_identifier : (expression_statement "X509_free(pXVar13);" (call_expression "X509_free(pXVar13)" identifier (argument_list "(pXVar13)" ( identifier ))) ;)) (expression_statement "connssl->backend->server_cert = (X509 *)0x0;" (assignment_expression "connssl->backend->server_cert = (X509 *)0x0" (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier) = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "connssl->connecting_state = ssl_connect_done;" (assignment_expression "connssl->connecting_state = ssl_connect_done" (field_expression "connssl->connecting_state" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_00078251;" goto statement_identifier ;) })) (expression_statement "pCVar5 = conn->data;" (assignment_expression "pCVar5 = conn->data" identifier = (field_expression "conn->data" identifier -> field_identifier)) ;) (expression_statement "lVar16 = SSL_ctrl((SSL *)psVar18->handle,0x46,0,&ptr_1);" (assignment_expression "lVar16 = SSL_ctrl((SSL *)psVar18->handle,0x46,0,&ptr_1)" identifier = (call_expression "SSL_ctrl((SSL *)psVar18->handle,0x46,0,&ptr_1)" identifier (argument_list "((SSL *)psVar18->handle,0x46,0,&ptr_1)" ( (cast_expression "(SSL *)psVar18->handle" ( (type_descriptor "SSL *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "psVar18->handle" identifier -> field_identifier)) , number_literal , number_literal , (pointer_expression "&ptr_1" & identifier) )))) ;) (if_statement "if (ptr_1 == (char *)0x0) {\n    Curl_failf(pCVar5,"No OCSP response received");\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }\n  else {\n    psig = (ASN1_BIT_STRING *)ptr_1;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&psig,lVar16);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      Curl_failf(pCVar5,"Invalid OCSP response");\n      goto LAB_000795a6;\n    }\n    iVar38 = OCSP_response_status(resp);\n    if (iVar38 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar38);\n      Curl_failf(pCVar5,"Invalid OCSP response status: %s (%d)",pcVar30,iVar38);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain((SSL *)connssl->backend->handle);\n    st = SSL_CTX_get_cert_store((SSL_CTX *)connssl->backend->ctx);\n    iVar38 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar38) {\n      for (iVar38 = 0; iVar28 = OCSP_resp_count(bs), iVar38 < iVar28; iVar38 = iVar38 + 1) {\n        single = OCSP_resp_get0(bs,iVar38);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,(int *)&p,(ASN1_GENERALIZEDTIME **)&q,\n                              (ASN1_GENERALIZEDTIME **)&palg,(ASN1_GENERALIZEDTIME **)&temp);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)palg,(ASN1_GENERALIZEDTIME *)temp,300\n                                       ,-1);\n          if (iVar29 == 0) {\n            Curl_failf(pCVar5,"OCSP response has expired");\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            Curl_infof(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str((long)p);\n              Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      CVar41 = CURLE_OK;\n      OCSP_RESPONSE_free(resp);\n      cVar39 = (conn->http_proxy).proxytype;\n      psVar18 = connssl->backend;\n      goto LAB_0007814e;\n    }\n    Curl_failf(pCVar5,"OCSP response verification failed");\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free((X509 *)connssl->backend->server_cert);\n  CVar41 = CURLE_SSL_INVALIDCERTSTATUS;\n  connssl->backend->server_cert = (X509 *)0x0;\nLAB_00078251:\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CVar41;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" if (parenthesized_expression "(ptr_1 == (char *)0x0)" ( (binary_expression "ptr_1 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    Curl_failf(pCVar5,"No OCSP response received");\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }" { (expression_statement "Curl_failf(pCVar5,"No OCSP response received");" (call_expression "Curl_failf(pCVar5,"No OCSP response received")" identifier (argument_list "(pCVar5,"No OCSP response received")" ( identifier , (string_literal ""No OCSP response received"" " string_content ") ))) ;) (expression_statement "resp = (OCSP_RESPONSE *)0x0;" (assignment_expression "resp = (OCSP_RESPONSE *)0x0" identifier = (cast_expression "(OCSP_RESPONSE *)0x0" ( (type_descriptor "OCSP_RESPONSE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000795a6:\n    OCSP_RESPONSE_free(resp);" statement_identifier : (expression_statement "OCSP_RESPONSE_free(resp);" (call_expression "OCSP_RESPONSE_free(resp)" identifier (argument_list "(resp)" ( identifier ))) ;)) }) (else_clause "else {\n    psig = (ASN1_BIT_STRING *)ptr_1;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&psig,lVar16);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      Curl_failf(pCVar5,"Invalid OCSP response");\n      goto LAB_000795a6;\n    }\n    iVar38 = OCSP_response_status(resp);\n    if (iVar38 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar38);\n      Curl_failf(pCVar5,"Invalid OCSP response status: %s (%d)",pcVar30,iVar38);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain((SSL *)connssl->backend->handle);\n    st = SSL_CTX_get_cert_store((SSL_CTX *)connssl->backend->ctx);\n    iVar38 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar38) {\n      for (iVar38 = 0; iVar28 = OCSP_resp_count(bs), iVar38 < iVar28; iVar38 = iVar38 + 1) {\n        single = OCSP_resp_get0(bs,iVar38);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,(int *)&p,(ASN1_GENERALIZEDTIME **)&q,\n                              (ASN1_GENERALIZEDTIME **)&palg,(ASN1_GENERALIZEDTIME **)&temp);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)palg,(ASN1_GENERALIZEDTIME *)temp,300\n                                       ,-1);\n          if (iVar29 == 0) {\n            Curl_failf(pCVar5,"OCSP response has expired");\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            Curl_infof(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str((long)p);\n              Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      CVar41 = CURLE_OK;\n      OCSP_RESPONSE_free(resp);\n      cVar39 = (conn->http_proxy).proxytype;\n      psVar18 = connssl->backend;\n      goto LAB_0007814e;\n    }\n    Curl_failf(pCVar5,"OCSP response verification failed");\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free((X509 *)connssl->backend->server_cert);\n  CVar41 = CURLE_SSL_INVALIDCERTSTATUS;\n  connssl->backend->server_cert = (X509 *)0x0;\nLAB_00078251:\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CVar41;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" else (compound_statement "{\n    psig = (ASN1_BIT_STRING *)ptr_1;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&psig,lVar16);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      Curl_failf(pCVar5,"Invalid OCSP response");\n      goto LAB_000795a6;\n    }\n    iVar38 = OCSP_response_status(resp);\n    if (iVar38 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar38);\n      Curl_failf(pCVar5,"Invalid OCSP response status: %s (%d)",pcVar30,iVar38);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain((SSL *)connssl->backend->handle);\n    st = SSL_CTX_get_cert_store((SSL_CTX *)connssl->backend->ctx);\n    iVar38 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar38) {\n      for (iVar38 = 0; iVar28 = OCSP_resp_count(bs), iVar38 < iVar28; iVar38 = iVar38 + 1) {\n        single = OCSP_resp_get0(bs,iVar38);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,(int *)&p,(ASN1_GENERALIZEDTIME **)&q,\n                              (ASN1_GENERALIZEDTIME **)&palg,(ASN1_GENERALIZEDTIME **)&temp);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)palg,(ASN1_GENERALIZEDTIME *)temp,300\n                                       ,-1);\n          if (iVar29 == 0) {\n            Curl_failf(pCVar5,"OCSP response has expired");\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            Curl_infof(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str((long)p);\n              Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      CVar41 = CURLE_OK;\n      OCSP_RESPONSE_free(resp);\n      cVar39 = (conn->http_proxy).proxytype;\n      psVar18 = connssl->backend;\n      goto LAB_0007814e;\n    }\n    Curl_failf(pCVar5,"OCSP response verification failed");\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free((X509 *)connssl->backend->server_cert);\n  CVar41 = CURLE_SSL_INVALIDCERTSTATUS;\n  connssl->backend->server_cert = (X509 *)0x0;\nLAB_00078251:\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CVar41;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (expression_statement "psig = (ASN1_BIT_STRING *)ptr_1;" (assignment_expression "psig = (ASN1_BIT_STRING *)ptr_1" identifier = (cast_expression "(ASN1_BIT_STRING *)ptr_1" ( (type_descriptor "ASN1_BIT_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&psig,lVar16);" (assignment_expression "resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&psig,lVar16)" identifier = (call_expression "d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&psig,lVar16)" identifier (argument_list "((OCSP_RESPONSE **)0x0,(uchar **)&psig,lVar16)" ( (cast_expression "(OCSP_RESPONSE **)0x0" ( (type_descriptor "OCSP_RESPONSE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(uchar **)&psig" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&psig" & identifier)) , identifier )))) ;) (if_statement "if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      Curl_failf(pCVar5,"Invalid OCSP response");\n      goto LAB_000795a6;\n    }" if (parenthesized_expression "(resp == (OCSP_RESPONSE *)0x0)" ( (binary_expression "resp == (OCSP_RESPONSE *)0x0" identifier == (cast_expression "(OCSP_RESPONSE *)0x0" ( (type_descriptor "OCSP_RESPONSE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00079758:\n      Curl_failf(pCVar5,"Invalid OCSP response");\n      goto LAB_000795a6;\n    }" { (labeled_statement "LAB_00079758:\n      Curl_failf(pCVar5,"Invalid OCSP response");" statement_identifier : (expression_statement "Curl_failf(pCVar5,"Invalid OCSP response");" (call_expression "Curl_failf(pCVar5,"Invalid OCSP response")" identifier (argument_list "(pCVar5,"Invalid OCSP response")" ( identifier , (string_literal ""Invalid OCSP response"" " string_content ") ))) ;)) (goto_statement "goto LAB_000795a6;" goto statement_identifier ;) })) (expression_statement "iVar38 = OCSP_response_status(resp);" (assignment_expression "iVar38 = OCSP_response_status(resp)" identifier = (call_expression "OCSP_response_status(resp)" identifier (argument_list "(resp)" ( identifier )))) ;) (if_statement "if (iVar38 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar38);\n      Curl_failf(pCVar5,"Invalid OCSP response status: %s (%d)",pcVar30,iVar38);\n      goto LAB_000795a6;\n    }" if (parenthesized_expression "(iVar38 != 0)" ( (binary_expression "iVar38 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar30 = OCSP_response_status_str(iVar38);\n      Curl_failf(pCVar5,"Invalid OCSP response status: %s (%d)",pcVar30,iVar38);\n      goto LAB_000795a6;\n    }" { (expression_statement "pcVar30 = OCSP_response_status_str(iVar38);" (assignment_expression "pcVar30 = OCSP_response_status_str(iVar38)" identifier = (call_expression "OCSP_response_status_str(iVar38)" identifier (argument_list "(iVar38)" ( identifier )))) ;) (expression_statement "Curl_failf(pCVar5,"Invalid OCSP response status: %s (%d)",pcVar30,iVar38);" (call_expression "Curl_failf(pCVar5,"Invalid OCSP response status: %s (%d)",pcVar30,iVar38)" identifier (argument_list "(pCVar5,"Invalid OCSP response status: %s (%d)",pcVar30,iVar38)" ( identifier , (string_literal ""Invalid OCSP response status: %s (%d)"" " string_content ") , identifier , identifier ))) ;) (goto_statement "goto LAB_000795a6;" goto statement_identifier ;) })) (expression_statement "bs = OCSP_response_get1_basic(resp);" (assignment_expression "bs = OCSP_response_get1_basic(resp)" identifier = (call_expression "OCSP_response_get1_basic(resp)" identifier (argument_list "(resp)" ( identifier )))) ;) (if_statement "if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;" if (parenthesized_expression "(bs == (OCSP_BASICRESP *)0x0)" ( (binary_expression "bs == (OCSP_BASICRESP *)0x0" identifier == (cast_expression "(OCSP_BASICRESP *)0x0" ( (type_descriptor "OCSP_BASICRESP *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00079758;" goto statement_identifier ;)) (expression_statement "psVar27 = SSL_get_peer_cert_chain((SSL *)connssl->backend->handle);" (assignment_expression "psVar27 = SSL_get_peer_cert_chain((SSL *)connssl->backend->handle)" identifier = (call_expression "SSL_get_peer_cert_chain((SSL *)connssl->backend->handle)" identifier (argument_list "((SSL *)connssl->backend->handle)" ( (cast_expression "(SSL *)connssl->backend->handle" ( (type_descriptor "SSL *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connssl->backend->handle" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier)) )))) ;) (expression_statement "st = SSL_CTX_get_cert_store((SSL_CTX *)connssl->backend->ctx);" (assignment_expression "st = SSL_CTX_get_cert_store((SSL_CTX *)connssl->backend->ctx)" identifier = (call_expression "SSL_CTX_get_cert_store((SSL_CTX *)connssl->backend->ctx)" identifier (argument_list "((SSL_CTX *)connssl->backend->ctx)" ( (cast_expression "(SSL_CTX *)connssl->backend->ctx" ( (type_descriptor "SSL_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connssl->backend->ctx" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier)) )))) ;) (expression_statement "iVar38 = OCSP_basic_verify(bs,psVar27,st,0);" (assignment_expression "iVar38 = OCSP_basic_verify(bs,psVar27,st,0)" identifier = (call_expression "OCSP_basic_verify(bs,psVar27,st,0)" identifier (argument_list "(bs,psVar27,st,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (0 < iVar38) {\n      for (iVar38 = 0; iVar28 = OCSP_resp_count(bs), iVar38 < iVar28; iVar38 = iVar38 + 1) {\n        single = OCSP_resp_get0(bs,iVar38);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,(int *)&p,(ASN1_GENERALIZEDTIME **)&q,\n                              (ASN1_GENERALIZEDTIME **)&palg,(ASN1_GENERALIZEDTIME **)&temp);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)palg,(ASN1_GENERALIZEDTIME *)temp,300\n                                       ,-1);\n          if (iVar29 == 0) {\n            Curl_failf(pCVar5,"OCSP response has expired");\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            Curl_infof(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str((long)p);\n              Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      CVar41 = CURLE_OK;\n      OCSP_RESPONSE_free(resp);\n      cVar39 = (conn->http_proxy).proxytype;\n      psVar18 = connssl->backend;\n      goto LAB_0007814e;\n    }\n    Curl_failf(pCVar5,"OCSP response verification failed");\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }" if (parenthesized_expression "(0 < iVar38)" ( (binary_expression "0 < iVar38" number_literal < identifier) )) (compound_statement "{\n      for (iVar38 = 0; iVar28 = OCSP_resp_count(bs), iVar38 < iVar28; iVar38 = iVar38 + 1) {\n        single = OCSP_resp_get0(bs,iVar38);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,(int *)&p,(ASN1_GENERALIZEDTIME **)&q,\n                              (ASN1_GENERALIZEDTIME **)&palg,(ASN1_GENERALIZEDTIME **)&temp);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)palg,(ASN1_GENERALIZEDTIME *)temp,300\n                                       ,-1);\n          if (iVar29 == 0) {\n            Curl_failf(pCVar5,"OCSP response has expired");\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            Curl_infof(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str((long)p);\n              Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      CVar41 = CURLE_OK;\n      OCSP_RESPONSE_free(resp);\n      cVar39 = (conn->http_proxy).proxytype;\n      psVar18 = connssl->backend;\n      goto LAB_0007814e;\n    }\n    Curl_failf(pCVar5,"OCSP response verification failed");\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }" { (for_statement "for (iVar38 = 0; iVar28 = OCSP_resp_count(bs), iVar38 < iVar28; iVar38 = iVar38 + 1) {\n        single = OCSP_resp_get0(bs,iVar38);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,(int *)&p,(ASN1_GENERALIZEDTIME **)&q,\n                              (ASN1_GENERALIZEDTIME **)&palg,(ASN1_GENERALIZEDTIME **)&temp);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)palg,(ASN1_GENERALIZEDTIME *)temp,300\n                                       ,-1);\n          if (iVar29 == 0) {\n            Curl_failf(pCVar5,"OCSP response has expired");\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            Curl_infof(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str((long)p);\n              Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      CVar41 = CURLE_OK;\n      OCSP_RESPONSE_free(resp);\n      cVar39 = (conn->http_proxy).proxytype;\n      psVar18 = connssl->backend;\n      goto LAB_0007814e;\n    }" for ( (assignment_expression "iVar38 = 0" identifier = number_literal) ; (comma_expression "iVar28 = OCSP_resp_count(bs), iVar38 < iVar28" (assignment_expression "iVar28 = OCSP_resp_count(bs)" identifier = (call_expression "OCSP_resp_count(bs)" identifier (argument_list "(bs)" ( identifier )))) , (binary_expression "iVar38 < iVar28" identifier < identifier)) ; (assignment_expression "iVar38 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ) (compound_statement "{\n        single = OCSP_resp_get0(bs,iVar38);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,(int *)&p,(ASN1_GENERALIZEDTIME **)&q,\n                              (ASN1_GENERALIZEDTIME **)&palg,(ASN1_GENERALIZEDTIME **)&temp);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)palg,(ASN1_GENERALIZEDTIME *)temp,300\n                                       ,-1);\n          if (iVar29 == 0) {\n            Curl_failf(pCVar5,"OCSP response has expired");\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            Curl_infof(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str((long)p);\n              Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      CVar41 = CURLE_OK;\n      OCSP_RESPONSE_free(resp);\n      cVar39 = (conn->http_proxy).proxytype;\n      psVar18 = connssl->backend;\n      goto LAB_0007814e;\n    }" { (expression_statement "single = OCSP_resp_get0(bs,iVar38);" (assignment_expression "single = OCSP_resp_get0(bs,iVar38)" identifier = (call_expression "OCSP_resp_get0(bs,iVar38)" identifier (argument_list "(bs,iVar38)" ( identifier , identifier )))) ;) (if_statement "if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,(int *)&p,(ASN1_GENERALIZEDTIME **)&q,\n                              (ASN1_GENERALIZEDTIME **)&palg,(ASN1_GENERALIZEDTIME **)&temp);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)palg,(ASN1_GENERALIZEDTIME *)temp,300\n                                       ,-1);\n          if (iVar29 == 0) {\n            Curl_failf(pCVar5,"OCSP response has expired");\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            Curl_infof(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str((long)p);\n              Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }" if (parenthesized_expression "(single != (OCSP_SINGLERESP *)0x0)" ( (binary_expression "single != (OCSP_SINGLERESP *)0x0" identifier != (cast_expression "(OCSP_SINGLERESP *)0x0" ( (type_descriptor "OCSP_SINGLERESP *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar28 = OCSP_single_get0_status\n                             (single,(int *)&p,(ASN1_GENERALIZEDTIME **)&q,\n                              (ASN1_GENERALIZEDTIME **)&palg,(ASN1_GENERALIZEDTIME **)&temp);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)palg,(ASN1_GENERALIZEDTIME *)temp,300\n                                       ,-1);\n          if (iVar29 == 0) {\n            Curl_failf(pCVar5,"OCSP response has expired");\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            Curl_infof(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str((long)p);\n              Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }" { (expression_statement "iVar28 = OCSP_single_get0_status\n                             (single,(int *)&p,(ASN1_GENERALIZEDTIME **)&q,\n                              (ASN1_GENERALIZEDTIME **)&palg,(ASN1_GENERALIZEDTIME **)&temp);" (assignment_expression "iVar28 = OCSP_single_get0_status\n                             (single,(int *)&p,(ASN1_GENERALIZEDTIME **)&q,\n                              (ASN1_GENERALIZEDTIME **)&palg,(ASN1_GENERALIZEDTIME **)&temp)" identifier = (call_expression "OCSP_single_get0_status\n                             (single,(int *)&p,(ASN1_GENERALIZEDTIME **)&q,\n                              (ASN1_GENERALIZEDTIME **)&palg,(ASN1_GENERALIZEDTIME **)&temp)" identifier (argument_list "(single,(int *)&p,(ASN1_GENERALIZEDTIME **)&q,\n                              (ASN1_GENERALIZEDTIME **)&palg,(ASN1_GENERALIZEDTIME **)&temp)" ( identifier , (cast_expression "(int *)&p" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&p" & identifier)) , (cast_expression "(ASN1_GENERALIZEDTIME **)&q" ( (type_descriptor "ASN1_GENERALIZEDTIME **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&q" & identifier)) , (cast_expression "(ASN1_GENERALIZEDTIME **)&palg" ( (type_descriptor "ASN1_GENERALIZEDTIME **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&palg" & identifier)) , (cast_expression "(ASN1_GENERALIZEDTIME **)&temp" ( (type_descriptor "ASN1_GENERALIZEDTIME **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&temp" & identifier)) )))) ;) (expression_statement "iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)palg,(ASN1_GENERALIZEDTIME *)temp,300\n                                       ,-1);" (assignment_expression "iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)palg,(ASN1_GENERALIZEDTIME *)temp,300\n                                       ,-1)" identifier = (call_expression "OCSP_check_validity((ASN1_GENERALIZEDTIME *)palg,(ASN1_GENERALIZEDTIME *)temp,300\n                                       ,-1)" identifier (argument_list "((ASN1_GENERALIZEDTIME *)palg,(ASN1_GENERALIZEDTIME *)temp,300\n                                       ,-1)" ( (cast_expression "(ASN1_GENERALIZEDTIME *)palg" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(ASN1_GENERALIZEDTIME *)temp" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , number_literal )))) ;) (if_statement "if (iVar29 == 0) {\n            Curl_failf(pCVar5,"OCSP response has expired");\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            Curl_infof(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str((long)p);\n              Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (compound_statement "{\n            Curl_failf(pCVar5,"OCSP response has expired");\n          }" { (expression_statement "Curl_failf(pCVar5,"OCSP response has expired");" (call_expression "Curl_failf(pCVar5,"OCSP response has expired")" identifier (argument_list "(pCVar5,"OCSP response has expired")" ( identifier , (string_literal ""OCSP response has expired"" " string_content ") ))) ;) }) (else_clause "else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            Curl_infof(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str((long)p);\n              Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }" else (compound_statement "{\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            Curl_infof(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str((long)p);\n              Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }" { (expression_statement "pcVar30 = OCSP_cert_status_str(iVar28);" (assignment_expression "pcVar30 = OCSP_cert_status_str(iVar28)" identifier = (call_expression "OCSP_cert_status_str(iVar28)" identifier (argument_list "(iVar28)" ( identifier )))) ;) (expression_statement "Curl_infof(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28);" (call_expression "Curl_infof(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28)" identifier (argument_list "(pCVar5,"SSL certificate status: %s (%d)\n",pcVar30,iVar28)" ( identifier , (string_literal ""SSL certificate status: %s (%d)\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (if_statement "if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str((long)p);\n              Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;" if (parenthesized_expression "(iVar28 == 1)" ( (binary_expression "iVar28 == 1" identifier == number_literal) )) (compound_statement "{\n              pcVar30 = OCSP_crl_reason_str((long)p);\n              Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);\n            }" { (expression_statement "pcVar30 = OCSP_crl_reason_str((long)p);" (assignment_expression "pcVar30 = OCSP_crl_reason_str((long)p)" identifier = (call_expression "OCSP_crl_reason_str((long)p)" identifier (argument_list "((long)p)" ( (cast_expression "(long)p" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) )))) ;) (expression_statement "Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p);" (call_expression "Curl_failf(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p)" identifier (argument_list "(pCVar5,"SSL certificate revocation reason: %s (%d)",pcVar30,p)" ( identifier , (string_literal ""SSL certificate revocation reason: %s (%d)"" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else if (iVar28 != 2) goto LAB_00079488;" else (if_statement "if (iVar28 != 2) goto LAB_00079488;" if (parenthesized_expression "(iVar28 != 2)" ( (binary_expression "iVar28 != 2" identifier != number_literal) )) (goto_statement "goto LAB_00079488;" goto statement_identifier ;)))) }))) (expression_statement "OCSP_BASICRESP_free(bs);" (call_expression "OCSP_BASICRESP_free(bs)" identifier (argument_list "(bs)" ( identifier ))) ;) (expression_statement "OCSP_RESPONSE_free(resp);" (call_expression "OCSP_RESPONSE_free(resp)" identifier (argument_list "(resp)" ( identifier ))) ;) (goto_statement "goto LAB_00078c7e;" goto statement_identifier ;) })) (labeled_statement "LAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);" statement_identifier : (ERROR "}" }) (expression_statement "OCSP_BASICRESP_free(bs);" (call_expression "OCSP_BASICRESP_free(bs)" identifier (argument_list "(bs)" ( identifier ))) ;)) (expression_statement "CVar41 = CURLE_OK;" (assignment_expression "CVar41 = CURLE_OK" identifier = identifier) ;) (expression_statement "OCSP_RESPONSE_free(resp);" (call_expression "OCSP_RESPONSE_free(resp)" identifier (argument_list "(resp)" ( identifier ))) ;) (expression_statement "cVar39 = (conn->http_proxy).proxytype;" (assignment_expression "cVar39 = (conn->http_proxy).proxytype" identifier = (field_expression "(conn->http_proxy).proxytype" (parenthesized_expression "(conn->http_proxy)" ( (field_expression "conn->http_proxy" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "psVar18 = connssl->backend;" (assignment_expression "psVar18 = connssl->backend" identifier = (field_expression "connssl->backend" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0007814e;" goto statement_identifier ;) })) (expression_statement "Curl_failf(pCVar5,"OCSP response verification failed");" (call_expression "Curl_failf(pCVar5,"OCSP response verification failed")" identifier (argument_list "(pCVar5,"OCSP response verification failed")" ( identifier , (string_literal ""OCSP response verification failed"" " string_content ") ))) ;) (expression_statement "OCSP_BASICRESP_free(bs);" (call_expression "OCSP_BASICRESP_free(bs)" identifier (argument_list "(bs)" ( identifier ))) ;) (expression_statement "OCSP_RESPONSE_free(resp);" (call_expression "OCSP_RESPONSE_free(resp)" identifier (argument_list "(resp)" ( identifier ))) ;) })) (labeled_statement "LAB_00078c7e:\n  X509_free((X509 *)connssl->backend->server_cert);" statement_identifier : (expression_statement "X509_free((X509 *)connssl->backend->server_cert);" (call_expression "X509_free((X509 *)connssl->backend->server_cert)" identifier (argument_list "((X509 *)connssl->backend->server_cert)" ( (cast_expression "(X509 *)connssl->backend->server_cert" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier)) ))) ;)) (expression_statement "CVar41 = CURLE_SSL_INVALIDCERTSTATUS;" (assignment_expression "CVar41 = CURLE_SSL_INVALIDCERTSTATUS" identifier = identifier) ;) (expression_statement "connssl->backend->server_cert = (X509 *)0x0;" (assignment_expression "connssl->backend->server_cert = (X509 *)0x0" (field_expression "connssl->backend->server_cert" (field_expression "connssl->backend" identifier -> field_identifier) -> field_identifier) = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00078251:\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CVar41;\n  }" statement_identifier : (if_statement "if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return CVar41;\n  }" if (parenthesized_expression "(iVar3 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar3 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return CVar41;\n  }" { (return_statement "return CVar41;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) }))) })))
(translation_unit "int __regparm3 FUN_00077ef0(undefined4 param_1,int param_2,char param_3)\n\n{\n  char *pcVar1;\n  byte *pbVar2;\n  char cVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  uint uVar8;\n  int *piVar9;\n  BIO_METHOD *pBVar10;\n  BIO *pBVar11;\n  X509 *pXVar12;\n  undefined1 *puVar13;\n  ASN1_TIME *pAVar14;\n  long lVar15;\n  ASN1_GENERALIZEDTIME *pAVar16;\n  X509_PUBKEY *pXVar17;\n  ASN1_GENERALIZEDTIME *pAVar18;\n  int iVar19;\n  GENERAL_NAMES *a;\n  char *pcVar20;\n  int *piVar21;\n  undefined1 *puVar22;\n  BIO *out;\n  undefined4 uVar23;\n  ASN1_INTEGER *pAVar24;\n  X509_EXTENSION *ex;\n  BIO *out_00;\n  ASN1_OBJECT *a_00;\n  uint uVar25;\n  uint uVar26;\n  OCSP_RESPONSE *resp;\n  OCSP_BASICRESP *bs;\n  stack_st_X509 *psVar27;\n  X509_STORE *st;\n  int iVar28;\n  OCSP_SINGLERESP *single;\n  int iVar29;\n  char *pcVar30;\n  EVP_PKEY *pkey;\n  ASN1_OCTET_STRING *v;\n  X509_NAME *pXVar31;\n  ASN1_GENERALIZEDTIME *pAVar32;\n  size_t sVar33;\n  X509_NAME_ENTRY *ne;\n  ASN1_STRING *pAVar34;\n  size_t sVar35;\n  ASN1_GENERALIZEDTIME *pAVar36;\n  void *pvVar37;\n  ulong e;\n  int iVar38;\n  uint uVar39;\n  ASN1_GENERALIZEDTIME *extraout_EDX;\n  int unaff_EBX;\n  undefined4 *puVar40;\n  char *pcVar41;\n  int in_GS_OFFSET;\n  byte bVar42;\n  X509 *local_a48;\n  int local_a44;\n  char *local_a30;\n  int local_a2c;\n  char *local_a28;\n  int local_a24;\n  ASN1_GENERALIZEDTIME *local_a20;\n  int local_a1c;\n  ASN1_GENERALIZEDTIME *local_a14;\n  ASN1_GENERALIZEDTIME *local_a10;\n  long *local_9f8;\n  ASN1_GENERALIZEDTIME *local_9d0;\n  int *local_9cc;\n  int *local_9c8;\n  long local_9c4;\n  ASN1_GENERALIZEDTIME *local_9c0;\n  BIGNUM *local_9bc;\n  ASN1_GENERALIZEDTIME *local_9b8;\n  char local_9b4 [16];\n  char local_9a4 [128];\n  char local_924 [4];\n  undefined4 local_920 [63];\n  undefined1 local_824 [512];\n  undefined1 auStack_624 [1536];\n  int local_24;\n  undefined4 uStack_14;\n  \n  bVar42 = 0;\n  uStack_14 = 0x77ef9;\n  piVar9 = (int *)entry();\n  iVar4 = *piVar9;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar40 = local_920;\n  for (iVar38 = 0x3f; iVar38 != 0; iVar38 = iVar38 + -1) {\n    *puVar40 = 0;\n    puVar40 = puVar40 + (uint)bVar42 * -2 + 1;\n  }\n  local_924[0] = '\0';\n  local_924[1] = '\0';\n  local_924[2] = '\0';\n  local_924[3] = '\0';\n  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    local_9f8 = (long *)(iVar4 + 0x8b4);\n  }\n  else {\n    local_9f8 = (long *)(iVar4 + 0x850);\n  }\n  pBVar10 = BIO_s_mem();\n  pBVar11 = BIO_new(pBVar10);\n  if (*(char *)(iVar4 + 0x864) != '\0') {\n    iVar38 = *piVar9;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }\n  }\n  iVar38 = *(int *)(param_2 + 0xc);\n  pXVar12 = SSL_get_peer_certificate(*(SSL **)(iVar38 + 4));\n  *(X509 **)(iVar38 + 8) = pXVar12;\n  if (*(int *)(*(int *)(param_2 + 0xc) + 8) == 0) {\n    iVar38 = 0;\n    BIO_free(pBVar11);\n    if (param_3 != '\0') {\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }\n    goto LAB_00078251;\n  }\n  iVar38 = unaff_EBX + 0x5eef;\n  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    iVar38 = unaff_EBX + 0x5ee9;\n  }\n  FUN_00027140(iVar4,unaff_EBX + 0x104d2,iVar38);\n  X509_get_subject_name(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  puVar22 = local_824;\n  iVar38 = FUN_00077df0();\n  puVar13 = (undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX);\n  if (iVar38 == 0) {\n    puVar13 = puVar22;\n  }\n  FUN_00027140(iVar4,unaff_EBX + 0x104e3,puVar13);\n  pAVar14 = (ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));\n  ASN1_TIME_print(pBVar11,pAVar14);\n  lVar15 = BIO_ctrl(pBVar11,3,0,&local_9d0);\n  FUN_00027140(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0);\n  BIO_ctrl(pBVar11,1,0,(void *)0x0);\n  pAVar14 = (ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));\n  ASN1_TIME_print(pBVar11,pAVar14);\n  pAVar16 = (ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0);\n  pcVar30 = (char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX);\n  local_a10 = local_9d0;\n  FUN_00027140(iVar4,pcVar30,pAVar16,local_9d0);\n  BIO_ctrl(pBVar11,1,0,(void *)0x0);\n  BIO_free(pBVar11);\n  local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n  if (piVar9[0x3a] != 2) {\n    if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;\n    local_a1c = *piVar9;\nLAB_00078282:\n    local_a30 = (char *)piVar9[0x25];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];\nLAB_0007829a:\n    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }\n    local_a28 = local_9b4;\n    pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;\n    pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);\n    local_a10 = pAVar18;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\n    else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_000794d2:\n    iVar38 = 0x3c;\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    goto LAB_00078251;\n  }\n  if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) {\n    if (*(char *)((int)piVar9 + 0x201) != '\0') {\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }\n  else if (*(char *)((int)piVar9 + 0x229) != '\0') {\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }\nLAB_000780f3:\n  X509_get_issuer_name(local_a48);\n  iVar38 = FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10);\n  if (iVar38 == 0) {\n    FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);\n    if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }\n    else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }\n    if (iVar38 != 0) {\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    *local_9f8 = lVar15;\n    if (lVar15 == 0) {\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }\n    else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }\n  }\n  else if (param_3 == '\0') {\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }\n  else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }\n  if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    cVar3 = *(char *)((int)piVar9 + 0x22a);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  else {\n    cVar3 = *(char *)((int)piVar9 + 0x202);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  if (cVar3 == '\0') {\nLAB_0007814e:\n    if (param_3 == '\0') {\n      iVar38 = 0;\n    }\n    if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }\n    else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }\n    pXVar12 = *(X509 **)(iVar28 + 8);\n    local_9d0 = pAVar16;\n    if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_00078230:\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    *(undefined4 *)(param_2 + 8) = 5;\n    goto LAB_00078251;\n  }\n  iVar38 = *piVar9;\n  lVar15 = SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc);\n  if (local_9cc == (int *)0x0) {\n    FUN_00027240(iVar38,unaff_EBX + 0x1058a);\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }\n  else {\n    local_9c8 = local_9cc;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }\n    iVar19 = OCSP_response_status(resp);\n    if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));\n    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  iVar38 = 0x5b;\n  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\nLAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }\n                    \n  FUN_0007c1a0();\n}\n\n" (function_definition "int __regparm3 FUN_00077ef0(undefined4 param_1,int param_2,char param_3)\n\n{\n  char *pcVar1;\n  byte *pbVar2;\n  char cVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  uint uVar8;\n  int *piVar9;\n  BIO_METHOD *pBVar10;\n  BIO *pBVar11;\n  X509 *pXVar12;\n  undefined1 *puVar13;\n  ASN1_TIME *pAVar14;\n  long lVar15;\n  ASN1_GENERALIZEDTIME *pAVar16;\n  X509_PUBKEY *pXVar17;\n  ASN1_GENERALIZEDTIME *pAVar18;\n  int iVar19;\n  GENERAL_NAMES *a;\n  char *pcVar20;\n  int *piVar21;\n  undefined1 *puVar22;\n  BIO *out;\n  undefined4 uVar23;\n  ASN1_INTEGER *pAVar24;\n  X509_EXTENSION *ex;\n  BIO *out_00;\n  ASN1_OBJECT *a_00;\n  uint uVar25;\n  uint uVar26;\n  OCSP_RESPONSE *resp;\n  OCSP_BASICRESP *bs;\n  stack_st_X509 *psVar27;\n  X509_STORE *st;\n  int iVar28;\n  OCSP_SINGLERESP *single;\n  int iVar29;\n  char *pcVar30;\n  EVP_PKEY *pkey;\n  ASN1_OCTET_STRING *v;\n  X509_NAME *pXVar31;\n  ASN1_GENERALIZEDTIME *pAVar32;\n  size_t sVar33;\n  X509_NAME_ENTRY *ne;\n  ASN1_STRING *pAVar34;\n  size_t sVar35;\n  ASN1_GENERALIZEDTIME *pAVar36;\n  void *pvVar37;\n  ulong e;\n  int iVar38;\n  uint uVar39;\n  ASN1_GENERALIZEDTIME *extraout_EDX;\n  int unaff_EBX;\n  undefined4 *puVar40;\n  char *pcVar41;\n  int in_GS_OFFSET;\n  byte bVar42;\n  X509 *local_a48;\n  int local_a44;\n  char *local_a30;\n  int local_a2c;\n  char *local_a28;\n  int local_a24;\n  ASN1_GENERALIZEDTIME *local_a20;\n  int local_a1c;\n  ASN1_GENERALIZEDTIME *local_a14;\n  ASN1_GENERALIZEDTIME *local_a10;\n  long *local_9f8;\n  ASN1_GENERALIZEDTIME *local_9d0;\n  int *local_9cc;\n  int *local_9c8;\n  long local_9c4;\n  ASN1_GENERALIZEDTIME *local_9c0;\n  BIGNUM *local_9bc;\n  ASN1_GENERALIZEDTIME *local_9b8;\n  char local_9b4 [16];\n  char local_9a4 [128];\n  char local_924 [4];\n  undefined4 local_920 [63];\n  undefined1 local_824 [512];\n  undefined1 auStack_624 [1536];\n  int local_24;\n  undefined4 uStack_14;\n  \n  bVar42 = 0;\n  uStack_14 = 0x77ef9;\n  piVar9 = (int *)entry();\n  iVar4 = *piVar9;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar40 = local_920;\n  for (iVar38 = 0x3f; iVar38 != 0; iVar38 = iVar38 + -1) {\n    *puVar40 = 0;\n    puVar40 = puVar40 + (uint)bVar42 * -2 + 1;\n  }\n  local_924[0] = '\0';\n  local_924[1] = '\0';\n  local_924[2] = '\0';\n  local_924[3] = '\0';\n  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    local_9f8 = (long *)(iVar4 + 0x8b4);\n  }\n  else {\n    local_9f8 = (long *)(iVar4 + 0x850);\n  }\n  pBVar10 = BIO_s_mem();\n  pBVar11 = BIO_new(pBVar10);\n  if (*(char *)(iVar4 + 0x864) != '\0') {\n    iVar38 = *piVar9;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }\n  }\n  iVar38 = *(int *)(param_2 + 0xc);\n  pXVar12 = SSL_get_peer_certificate(*(SSL **)(iVar38 + 4));\n  *(X509 **)(iVar38 + 8) = pXVar12;\n  if (*(int *)(*(int *)(param_2 + 0xc) + 8) == 0) {\n    iVar38 = 0;\n    BIO_free(pBVar11);\n    if (param_3 != '\0') {\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }\n    goto LAB_00078251;\n  }\n  iVar38 = unaff_EBX + 0x5eef;\n  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    iVar38 = unaff_EBX + 0x5ee9;\n  }\n  FUN_00027140(iVar4,unaff_EBX + 0x104d2,iVar38);\n  X509_get_subject_name(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  puVar22 = local_824;\n  iVar38 = FUN_00077df0();\n  puVar13 = (undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX);\n  if (iVar38 == 0) {\n    puVar13 = puVar22;\n  }\n  FUN_00027140(iVar4,unaff_EBX + 0x104e3,puVar13);\n  pAVar14 = (ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));\n  ASN1_TIME_print(pBVar11,pAVar14);\n  lVar15 = BIO_ctrl(pBVar11,3,0,&local_9d0);\n  FUN_00027140(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0);\n  BIO_ctrl(pBVar11,1,0,(void *)0x0);\n  pAVar14 = (ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));\n  ASN1_TIME_print(pBVar11,pAVar14);\n  pAVar16 = (ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0);\n  pcVar30 = (char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX);\n  local_a10 = local_9d0;\n  FUN_00027140(iVar4,pcVar30,pAVar16,local_9d0);\n  BIO_ctrl(pBVar11,1,0,(void *)0x0);\n  BIO_free(pBVar11);\n  local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n  if (piVar9[0x3a] != 2) {\n    if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;\n    local_a1c = *piVar9;\nLAB_00078282:\n    local_a30 = (char *)piVar9[0x25];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];\nLAB_0007829a:\n    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }\n    local_a28 = local_9b4;\n    pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;\n    pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);\n    local_a10 = pAVar18;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\n    else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_000794d2:\n    iVar38 = 0x3c;\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    goto LAB_00078251;\n  }\n  if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) {\n    if (*(char *)((int)piVar9 + 0x201) != '\0') {\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }\n  else if (*(char *)((int)piVar9 + 0x229) != '\0') {\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }\nLAB_000780f3:\n  X509_get_issuer_name(local_a48);\n  iVar38 = FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10);\n  if (iVar38 == 0) {\n    FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);\n    if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }\n    else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }\n    if (iVar38 != 0) {\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    *local_9f8 = lVar15;\n    if (lVar15 == 0) {\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }\n    else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }\n  }\n  else if (param_3 == '\0') {\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }\n  else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }\n  if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    cVar3 = *(char *)((int)piVar9 + 0x22a);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  else {\n    cVar3 = *(char *)((int)piVar9 + 0x202);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  if (cVar3 == '\0') {\nLAB_0007814e:\n    if (param_3 == '\0') {\n      iVar38 = 0;\n    }\n    if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }\n    else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }\n    pXVar12 = *(X509 **)(iVar28 + 8);\n    local_9d0 = pAVar16;\n    if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_00078230:\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    *(undefined4 *)(param_2 + 8) = 5;\n    goto LAB_00078251;\n  }\n  iVar38 = *piVar9;\n  lVar15 = SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc);\n  if (local_9cc == (int *)0x0) {\n    FUN_00027240(iVar38,unaff_EBX + 0x1058a);\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }\n  else {\n    local_9c8 = local_9cc;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }\n    iVar19 = OCSP_response_status(resp);\n    if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));\n    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  iVar38 = 0x5b;\n  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\nLAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }\n                    \n  FUN_0007c1a0();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00077ef0(undefined4 param_1,int param_2,char param_3)" identifier (parameter_list "(undefined4 param_1,int param_2,char param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "char param_3" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  byte *pbVar2;\n  char cVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  uint uVar8;\n  int *piVar9;\n  BIO_METHOD *pBVar10;\n  BIO *pBVar11;\n  X509 *pXVar12;\n  undefined1 *puVar13;\n  ASN1_TIME *pAVar14;\n  long lVar15;\n  ASN1_GENERALIZEDTIME *pAVar16;\n  X509_PUBKEY *pXVar17;\n  ASN1_GENERALIZEDTIME *pAVar18;\n  int iVar19;\n  GENERAL_NAMES *a;\n  char *pcVar20;\n  int *piVar21;\n  undefined1 *puVar22;\n  BIO *out;\n  undefined4 uVar23;\n  ASN1_INTEGER *pAVar24;\n  X509_EXTENSION *ex;\n  BIO *out_00;\n  ASN1_OBJECT *a_00;\n  uint uVar25;\n  uint uVar26;\n  OCSP_RESPONSE *resp;\n  OCSP_BASICRESP *bs;\n  stack_st_X509 *psVar27;\n  X509_STORE *st;\n  int iVar28;\n  OCSP_SINGLERESP *single;\n  int iVar29;\n  char *pcVar30;\n  EVP_PKEY *pkey;\n  ASN1_OCTET_STRING *v;\n  X509_NAME *pXVar31;\n  ASN1_GENERALIZEDTIME *pAVar32;\n  size_t sVar33;\n  X509_NAME_ENTRY *ne;\n  ASN1_STRING *pAVar34;\n  size_t sVar35;\n  ASN1_GENERALIZEDTIME *pAVar36;\n  void *pvVar37;\n  ulong e;\n  int iVar38;\n  uint uVar39;\n  ASN1_GENERALIZEDTIME *extraout_EDX;\n  int unaff_EBX;\n  undefined4 *puVar40;\n  char *pcVar41;\n  int in_GS_OFFSET;\n  byte bVar42;\n  X509 *local_a48;\n  int local_a44;\n  char *local_a30;\n  int local_a2c;\n  char *local_a28;\n  int local_a24;\n  ASN1_GENERALIZEDTIME *local_a20;\n  int local_a1c;\n  ASN1_GENERALIZEDTIME *local_a14;\n  ASN1_GENERALIZEDTIME *local_a10;\n  long *local_9f8;\n  ASN1_GENERALIZEDTIME *local_9d0;\n  int *local_9cc;\n  int *local_9c8;\n  long local_9c4;\n  ASN1_GENERALIZEDTIME *local_9c0;\n  BIGNUM *local_9bc;\n  ASN1_GENERALIZEDTIME *local_9b8;\n  char local_9b4 [16];\n  char local_9a4 [128];\n  char local_924 [4];\n  undefined4 local_920 [63];\n  undefined1 local_824 [512];\n  undefined1 auStack_624 [1536];\n  int local_24;\n  undefined4 uStack_14;\n  \n  bVar42 = 0;\n  uStack_14 = 0x77ef9;\n  piVar9 = (int *)entry();\n  iVar4 = *piVar9;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar40 = local_920;\n  for (iVar38 = 0x3f; iVar38 != 0; iVar38 = iVar38 + -1) {\n    *puVar40 = 0;\n    puVar40 = puVar40 + (uint)bVar42 * -2 + 1;\n  }\n  local_924[0] = '\0';\n  local_924[1] = '\0';\n  local_924[2] = '\0';\n  local_924[3] = '\0';\n  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    local_9f8 = (long *)(iVar4 + 0x8b4);\n  }\n  else {\n    local_9f8 = (long *)(iVar4 + 0x850);\n  }\n  pBVar10 = BIO_s_mem();\n  pBVar11 = BIO_new(pBVar10);\n  if (*(char *)(iVar4 + 0x864) != '\0') {\n    iVar38 = *piVar9;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }\n  }\n  iVar38 = *(int *)(param_2 + 0xc);\n  pXVar12 = SSL_get_peer_certificate(*(SSL **)(iVar38 + 4));\n  *(X509 **)(iVar38 + 8) = pXVar12;\n  if (*(int *)(*(int *)(param_2 + 0xc) + 8) == 0) {\n    iVar38 = 0;\n    BIO_free(pBVar11);\n    if (param_3 != '\0') {\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }\n    goto LAB_00078251;\n  }\n  iVar38 = unaff_EBX + 0x5eef;\n  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    iVar38 = unaff_EBX + 0x5ee9;\n  }\n  FUN_00027140(iVar4,unaff_EBX + 0x104d2,iVar38);\n  X509_get_subject_name(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  puVar22 = local_824;\n  iVar38 = FUN_00077df0();\n  puVar13 = (undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX);\n  if (iVar38 == 0) {\n    puVar13 = puVar22;\n  }\n  FUN_00027140(iVar4,unaff_EBX + 0x104e3,puVar13);\n  pAVar14 = (ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));\n  ASN1_TIME_print(pBVar11,pAVar14);\n  lVar15 = BIO_ctrl(pBVar11,3,0,&local_9d0);\n  FUN_00027140(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0);\n  BIO_ctrl(pBVar11,1,0,(void *)0x0);\n  pAVar14 = (ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));\n  ASN1_TIME_print(pBVar11,pAVar14);\n  pAVar16 = (ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0);\n  pcVar30 = (char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX);\n  local_a10 = local_9d0;\n  FUN_00027140(iVar4,pcVar30,pAVar16,local_9d0);\n  BIO_ctrl(pBVar11,1,0,(void *)0x0);\n  BIO_free(pBVar11);\n  local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n  if (piVar9[0x3a] != 2) {\n    if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;\n    local_a1c = *piVar9;\nLAB_00078282:\n    local_a30 = (char *)piVar9[0x25];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];\nLAB_0007829a:\n    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }\n    local_a28 = local_9b4;\n    pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;\n    pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);\n    local_a10 = pAVar18;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\n    else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_000794d2:\n    iVar38 = 0x3c;\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    goto LAB_00078251;\n  }\n  if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) {\n    if (*(char *)((int)piVar9 + 0x201) != '\0') {\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }\n  else if (*(char *)((int)piVar9 + 0x229) != '\0') {\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }\nLAB_000780f3:\n  X509_get_issuer_name(local_a48);\n  iVar38 = FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10);\n  if (iVar38 == 0) {\n    FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);\n    if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }\n    else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }\n    if (iVar38 != 0) {\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    *local_9f8 = lVar15;\n    if (lVar15 == 0) {\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }\n    else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }\n  }\n  else if (param_3 == '\0') {\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }\n  else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }\n  if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    cVar3 = *(char *)((int)piVar9 + 0x22a);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  else {\n    cVar3 = *(char *)((int)piVar9 + 0x202);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  if (cVar3 == '\0') {\nLAB_0007814e:\n    if (param_3 == '\0') {\n      iVar38 = 0;\n    }\n    if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }\n    else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }\n    pXVar12 = *(X509 **)(iVar28 + 8);\n    local_9d0 = pAVar16;\n    if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_00078230:\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    *(undefined4 *)(param_2 + 8) = 5;\n    goto LAB_00078251;\n  }\n  iVar38 = *piVar9;\n  lVar15 = SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc);\n  if (local_9cc == (int *)0x0) {\n    FUN_00027240(iVar38,unaff_EBX + 0x1058a);\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }\n  else {\n    local_9c8 = local_9cc;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }\n    iVar19 = OCSP_response_status(resp);\n    if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));\n    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  iVar38 = 0x5b;\n  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\nLAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }\n                    \n  FUN_0007c1a0();\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "BIO_METHOD *pBVar10;" type_identifier (pointer_declarator "*pBVar10" * identifier) ;) (declaration "BIO *pBVar11;" type_identifier (pointer_declarator "*pBVar11" * identifier) ;) (declaration "X509 *pXVar12;" type_identifier (pointer_declarator "*pXVar12" * identifier) ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "ASN1_TIME *pAVar14;" type_identifier (pointer_declarator "*pAVar14" * identifier) ;) (declaration "long lVar15;" (sized_type_specifier "long" long) identifier ;) (declaration "ASN1_GENERALIZEDTIME *pAVar16;" type_identifier (pointer_declarator "*pAVar16" * identifier) ;) (declaration "X509_PUBKEY *pXVar17;" type_identifier (pointer_declarator "*pXVar17" * identifier) ;) (declaration "ASN1_GENERALIZEDTIME *pAVar18;" type_identifier (pointer_declarator "*pAVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "GENERAL_NAMES *a;" type_identifier (pointer_declarator "*a" * identifier) ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "undefined1 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "BIO *out;" type_identifier (pointer_declarator "*out" * identifier) ;) (declaration "undefined4 uVar23;" type_identifier identifier ;) (declaration "ASN1_INTEGER *pAVar24;" type_identifier (pointer_declarator "*pAVar24" * identifier) ;) (declaration "X509_EXTENSION *ex;" type_identifier (pointer_declarator "*ex" * identifier) ;) (declaration "BIO *out_00;" type_identifier (pointer_declarator "*out_00" * identifier) ;) (declaration "ASN1_OBJECT *a_00;" type_identifier (pointer_declarator "*a_00" * identifier) ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "OCSP_RESPONSE *resp;" type_identifier (pointer_declarator "*resp" * identifier) ;) (declaration "OCSP_BASICRESP *bs;" type_identifier (pointer_declarator "*bs" * identifier) ;) (declaration "stack_st_X509 *psVar27;" type_identifier (pointer_declarator "*psVar27" * identifier) ;) (declaration "X509_STORE *st;" type_identifier (pointer_declarator "*st" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "OCSP_SINGLERESP *single;" type_identifier (pointer_declarator "*single" * identifier) ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "char *pcVar30;" primitive_type (pointer_declarator "*pcVar30" * identifier) ;) (declaration "EVP_PKEY *pkey;" type_identifier (pointer_declarator "*pkey" * identifier) ;) (declaration "ASN1_OCTET_STRING *v;" type_identifier (pointer_declarator "*v" * identifier) ;) (declaration "X509_NAME *pXVar31;" type_identifier (pointer_declarator "*pXVar31" * identifier) ;) (declaration "ASN1_GENERALIZEDTIME *pAVar32;" type_identifier (pointer_declarator "*pAVar32" * identifier) ;) (declaration "size_t sVar33;" primitive_type identifier ;) (declaration "X509_NAME_ENTRY *ne;" type_identifier (pointer_declarator "*ne" * identifier) ;) (declaration "ASN1_STRING *pAVar34;" type_identifier (pointer_declarator "*pAVar34" * identifier) ;) (declaration "size_t sVar35;" primitive_type identifier ;) (declaration "ASN1_GENERALIZEDTIME *pAVar36;" type_identifier (pointer_declarator "*pAVar36" * identifier) ;) (declaration "void *pvVar37;" primitive_type (pointer_declarator "*pvVar37" * identifier) ;) (declaration "ulong e;" type_identifier identifier ;) (declaration "int iVar38;" primitive_type identifier ;) (declaration "uint uVar39;" type_identifier identifier ;) (declaration "ASN1_GENERALIZEDTIME *extraout_EDX;" type_identifier (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "int unaff_EBX;" primitive_type identifier ;) (declaration "undefined4 *puVar40;" type_identifier (pointer_declarator "*puVar40" * identifier) ;) (declaration "char *pcVar41;" primitive_type (pointer_declarator "*pcVar41" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar42;" type_identifier identifier ;) (declaration "X509 *local_a48;" type_identifier (pointer_declarator "*local_a48" * identifier) ;) (declaration "int local_a44;" primitive_type identifier ;) (declaration "char *local_a30;" primitive_type (pointer_declarator "*local_a30" * identifier) ;) (declaration "int local_a2c;" primitive_type identifier ;) (declaration "char *local_a28;" primitive_type (pointer_declarator "*local_a28" * identifier) ;) (declaration "int local_a24;" primitive_type identifier ;) (declaration "ASN1_GENERALIZEDTIME *local_a20;" type_identifier (pointer_declarator "*local_a20" * identifier) ;) (declaration "int local_a1c;" primitive_type identifier ;) (declaration "ASN1_GENERALIZEDTIME *local_a14;" type_identifier (pointer_declarator "*local_a14" * identifier) ;) (declaration "ASN1_GENERALIZEDTIME *local_a10;" type_identifier (pointer_declarator "*local_a10" * identifier) ;) (declaration "long *local_9f8;" (sized_type_specifier "long" long) (pointer_declarator "*local_9f8" * identifier) ;) (declaration "ASN1_GENERALIZEDTIME *local_9d0;" type_identifier (pointer_declarator "*local_9d0" * identifier) ;) (declaration "int *local_9cc;" primitive_type (pointer_declarator "*local_9cc" * identifier) ;) (declaration "int *local_9c8;" primitive_type (pointer_declarator "*local_9c8" * identifier) ;) (declaration "long local_9c4;" (sized_type_specifier "long" long) identifier ;) (declaration "ASN1_GENERALIZEDTIME *local_9c0;" type_identifier (pointer_declarator "*local_9c0" * identifier) ;) (declaration "BIGNUM *local_9bc;" type_identifier (pointer_declarator "*local_9bc" * identifier) ;) (declaration "ASN1_GENERALIZEDTIME *local_9b8;" type_identifier (pointer_declarator "*local_9b8" * identifier) ;) (declaration "char local_9b4 [16];" primitive_type (array_declarator "local_9b4 [16]" identifier [ number_literal ]) ;) (declaration "char local_9a4 [128];" primitive_type (array_declarator "local_9a4 [128]" identifier [ number_literal ]) ;) (declaration "char local_924 [4];" primitive_type (array_declarator "local_924 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 local_920 [63];" type_identifier (array_declarator "local_920 [63]" identifier [ number_literal ]) ;) (declaration "undefined1 local_824 [512];" type_identifier (array_declarator "local_824 [512]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_624 [1536];" type_identifier (array_declarator "auStack_624 [1536]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar42 = 0;" (assignment_expression "bVar42 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x77ef9;" (assignment_expression "uStack_14 = 0x77ef9" identifier = number_literal) ;) (expression_statement "piVar9 = (int *)entry();" (assignment_expression "piVar9 = (int *)entry()" identifier = (cast_expression "(int *)entry()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "entry()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar4 = *piVar9;" (assignment_expression "iVar4 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "local_24 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_24 = *(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 "puVar40 = local_920;" (assignment_expression "puVar40 = local_920" identifier = identifier) ;) (for_statement "for (iVar38 = 0x3f; iVar38 != 0; iVar38 = iVar38 + -1) {\n    *puVar40 = 0;\n    puVar40 = puVar40 + (uint)bVar42 * -2 + 1;\n  }" for ( (assignment_expression "iVar38 = 0x3f" identifier = number_literal) ; (binary_expression "iVar38 != 0" identifier != number_literal) ; (assignment_expression "iVar38 = iVar38 + -1" identifier = (binary_expression "iVar38 + -1" identifier + number_literal)) ) (compound_statement "{\n    *puVar40 = 0;\n    puVar40 = puVar40 + (uint)bVar42 * -2 + 1;\n  }" { (expression_statement "*puVar40 = 0;" (assignment_expression "*puVar40 = 0" (pointer_expression "*puVar40" * identifier) = number_literal) ;) (expression_statement "puVar40 = puVar40 + (uint)bVar42 * -2 + 1;" (assignment_expression "puVar40 = puVar40 + (uint)bVar42 * -2 + 1" identifier = (binary_expression "puVar40 + (uint)bVar42 * -2 + 1" (binary_expression "puVar40 + (uint)bVar42 * -2" identifier + (binary_expression "(uint)bVar42 * -2" (cast_expression "(uint)bVar42" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_924[0] = '\0';" (assignment_expression "local_924[0] = '\0'" (subscript_expression "local_924[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_924[1] = '\0';" (assignment_expression "local_924[1] = '\0'" (subscript_expression "local_924[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_924[2] = '\0';" (assignment_expression "local_924[2] = '\0'" (subscript_expression "local_924[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_924[3] = '\0';" (assignment_expression "local_924[3] = '\0'" (subscript_expression "local_924[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    local_9f8 = (long *)(iVar4 + 0x8b4);\n  }\n  else {\n    local_9f8 = (long *)(iVar4 + 0x850);\n  }" if (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" ( (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n    local_9f8 = (long *)(iVar4 + 0x8b4);\n  }" { (expression_statement "local_9f8 = (long *)(iVar4 + 0x8b4);" (assignment_expression "local_9f8 = (long *)(iVar4 + 0x8b4)" identifier = (cast_expression "(long *)(iVar4 + 0x8b4)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x8b4)" ( (binary_expression "iVar4 + 0x8b4" identifier + number_literal) )))) ;) }) (else_clause "else {\n    local_9f8 = (long *)(iVar4 + 0x850);\n  }" else (compound_statement "{\n    local_9f8 = (long *)(iVar4 + 0x850);\n  }" { (expression_statement "local_9f8 = (long *)(iVar4 + 0x850);" (assignment_expression "local_9f8 = (long *)(iVar4 + 0x850)" identifier = (cast_expression "(long *)(iVar4 + 0x850)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x850)" ( (binary_expression "iVar4 + 0x850" identifier + number_literal) )))) ;) }))) (expression_statement "pBVar10 = BIO_s_mem();" (assignment_expression "pBVar10 = BIO_s_mem()" identifier = (call_expression "BIO_s_mem()" identifier (argument_list "()" ( )))) ;) (expression_statement "pBVar11 = BIO_new(pBVar10);" (assignment_expression "pBVar11 = BIO_new(pBVar10)" identifier = (call_expression "BIO_new(pBVar10)" identifier (argument_list "(pBVar10)" ( identifier )))) ;) (if_statement "if (*(char *)(iVar4 + 0x864) != '\0') {\n    iVar38 = *piVar9;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }\n  }" if (parenthesized_expression "(*(char *)(iVar4 + 0x864) != '\0')" ( (binary_expression "*(char *)(iVar4 + 0x864) != '\0'" (pointer_expression "*(char *)(iVar4 + 0x864)" * (cast_expression "(char *)(iVar4 + 0x864)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x864)" ( (binary_expression "iVar4 + 0x864" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar38 = *piVar9;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }\n  }" { (expression_statement "iVar38 = *piVar9;" (assignment_expression "iVar38 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));" (assignment_expression "psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" identifier = (call_expression "SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" identifier (argument_list "(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" ( (pointer_expression "*(SSL **)(*(int *)(param_2 + 0xc) + 4)" * (cast_expression "(SSL **)(*(int *)(param_2 + 0xc) + 4)" ( (type_descriptor "SSL **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 4)" ( (binary_expression "*(int *)(param_2 + 0xc) + 4" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) )))) ;) (if_statement "if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }" if (parenthesized_expression "(psVar27 != (stack_st_X509 *)0x0)" ( (binary_expression "psVar27 != (stack_st_X509 *)0x0" identifier != (cast_expression "(stack_st_X509 *)0x0" ( (type_descriptor "stack_st_X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }" { (expression_statement "iVar19 = OPENSSL_sk_num(psVar27);" (assignment_expression "iVar19 = OPENSSL_sk_num(psVar27)" identifier = (call_expression "OPENSSL_sk_num(psVar27)" identifier (argument_list "(psVar27)" ( identifier )))) ;) (expression_statement "iVar28 = FUN_0007b4c0(iVar38,iVar19);" (assignment_expression "iVar28 = FUN_0007b4c0(iVar38,iVar19)" identifier = (call_expression "FUN_0007b4c0(iVar38,iVar19)" identifier (argument_list "(iVar38,iVar19)" ( identifier , identifier )))) ;) (if_statement "if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }" { (expression_statement "pBVar10 = BIO_s_mem();" (assignment_expression "pBVar10 = BIO_s_mem()" identifier = (call_expression "BIO_s_mem()" identifier (argument_list "()" ( )))) ;) (expression_statement "out = BIO_new(pBVar10);" (assignment_expression "out = BIO_new(pBVar10)" identifier = (call_expression "BIO_new(pBVar10)" identifier (argument_list "(pBVar10)" ( identifier )))) ;) (if_statement "if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }" if (parenthesized_expression "(0 < iVar19)" ( (binary_expression "0 < iVar19" number_literal < identifier) )) (compound_statement "{\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }" { (expression_statement "local_a44 = 0;" (assignment_expression "local_a44 = 0" identifier = number_literal) ;) (do_statement "do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);" do (compound_statement "{\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          }" { (expression_statement "pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);" (assignment_expression "pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44)" identifier = (cast_expression "(X509 *)OPENSSL_sk_value(psVar27,local_a44)" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_value(psVar27,local_a44)" identifier (argument_list "(psVar27,local_a44)" ( identifier , identifier ))))) ;) (expression_statement "local_9c8 = (int *)0x0;" (assignment_expression "local_9c8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pXVar31 = X509_get_subject_name(pXVar12);" (assignment_expression "pXVar31 = X509_get_subject_name(pXVar12)" identifier = (call_expression "X509_get_subject_name(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier )))) ;) (expression_statement "X509_NAME_print_ex(out,pXVar31,0,0x82031f);" (call_expression "X509_NAME_print_ex(out,pXVar31,0,0x82031f)" identifier (argument_list "(out,pXVar31,0,0x82031f)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0x1043b" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "pXVar31 = X509_get_issuer_name(pXVar12);" (assignment_expression "pXVar31 = X509_get_issuer_name(pXVar12)" identifier = (call_expression "X509_get_issuer_name(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier )))) ;) (expression_statement "X509_NAME_print_ex(out,pXVar31,0,0x82031f);" (call_expression "X509_NAME_print_ex(out,pXVar31,0,0x82031f)" identifier (argument_list "(out,pXVar31,0,0x82031f)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0x10443" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "uVar23 = X509_get_version(pXVar12);" (assignment_expression "uVar23 = X509_get_version(pXVar12)" identifier = (call_expression "X509_get_version(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier )))) ;) (expression_statement "BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);" (call_expression "BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23)" identifier (argument_list "(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23)" ( identifier , (cast_expression "(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2)" ( (binary_expression "(int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2" (binary_expression "(int)&__DT_SYMTAB[2].st_size + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[2].st_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_SYMTAB[2].st_size" & (field_expression "__DT_SYMTAB[2].st_size" (subscript_expression "__DT_SYMTAB[2]" identifier [ number_literal ]) . field_identifier))) + identifier) + number_literal) ))) , identifier ))) ;) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0xd383" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "pAVar24 = X509_get_serialNumber(pXVar12);" (assignment_expression "pAVar24 = X509_get_serialNumber(pXVar12)" identifier = (call_expression "X509_get_serialNumber(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier )))) ;) (if_statement "if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }" if (parenthesized_expression "(pAVar24->type == 0x102)" ( (binary_expression "pAVar24->type == 0x102" (field_expression "pAVar24->type" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }" { (expression_statement "BIO_puts(out,(char *)(unaff_EBX + 0xf12d));" (call_expression "BIO_puts(out,(char *)(unaff_EBX + 0xf12d))" identifier (argument_list "(out,(char *)(unaff_EBX + 0xf12d))" ( identifier , (cast_expression "(char *)(unaff_EBX + 0xf12d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBX + 0xf12d)" ( (binary_expression "unaff_EBX + 0xf12d" identifier + number_literal) ))) ))) ;) })) (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (if_statement "if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }" if (parenthesized_expression "(0 < pAVar24->length)" ( (binary_expression "0 < pAVar24->length" number_literal < (field_expression "pAVar24->length" identifier -> field_identifier)) )) (compound_statement "{\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }" { (do_statement "do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);" do (compound_statement "{\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              }" { (expression_statement "pbVar2 = pAVar24->data + iVar28;" (assignment_expression "pbVar2 = pAVar24->data + iVar28" identifier = (binary_expression "pAVar24->data + iVar28" (field_expression "pAVar24->data" identifier -> field_identifier) + identifier)) ;) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);" (call_expression "BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2)" identifier (argument_list "(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2)" ( identifier , (cast_expression "(char *)(unaff_EBX + 0xf774)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBX + 0xf774)" ( (binary_expression "unaff_EBX + 0xf774" identifier + number_literal) ))) , (binary_expression "(uint)*pbVar2" (parenthesized_expression "(uint)" ( identifier )) * identifier) ))) ;) }) while (parenthesized_expression "(iVar28 < pAVar24->length)" ( (binary_expression "iVar28 < pAVar24->length" identifier < (field_expression "pAVar24->length" identifier -> field_identifier)) )) ;) })) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0x1044e" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "local_9bc = (BIGNUM *)0x0;" (assignment_expression "local_9bc = (BIGNUM *)0x0" identifier = (cast_expression "(BIGNUM *)0x0" ( (type_descriptor "BIGNUM *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pAVar34 = ASN1_STRING_new();" (assignment_expression "pAVar34 = ASN1_STRING_new()" identifier = (call_expression "ASN1_STRING_new()" identifier (argument_list "()" ( )))) ;) (if_statement "if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }" if (parenthesized_expression "(pAVar34 != (ASN1_STRING *)0x0)" ( (binary_expression "pAVar34 != (ASN1_STRING *)0x0" identifier != (cast_expression "(ASN1_STRING *)0x0" ( (type_descriptor "ASN1_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }" { (expression_statement "X509_get0_signature(&local_9c8,&local_9bc,pXVar12);" (call_expression "X509_get0_signature(&local_9c8,&local_9bc,pXVar12)" identifier (argument_list "(&local_9c8,&local_9bc,pXVar12)" ( (pointer_expression "&local_9c8" & identifier) , (pointer_expression "&local_9bc" & identifier) , identifier ))) ;) (expression_statement "X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);" (call_expression "X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34)" identifier (argument_list "(out,(X509_ALGOR *)local_9bc,pAVar34)" ( identifier , (cast_expression "(X509_ALGOR *)local_9bc" ( (type_descriptor "X509_ALGOR *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "ASN1_STRING_free(pAVar34);" (call_expression "ASN1_STRING_free(pAVar34)" identifier (argument_list "(pAVar34)" ( identifier ))) ;) (if_statement "if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }" if (parenthesized_expression "(local_9bc != (BIGNUM *)0x0)" ( (binary_expression "local_9bc != (BIGNUM *)0x0" identifier != (cast_expression "(BIGNUM *)0x0" ( (type_descriptor "BIGNUM *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }" { (expression_statement "i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);" (call_expression "i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d)" identifier (argument_list "(out,(ASN1_OBJECT *)local_9bc->d)" ( identifier , (cast_expression "(ASN1_OBJECT *)local_9bc->d" ( (type_descriptor "ASN1_OBJECT *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_9bc->d" identifier -> field_identifier)) ))) ;) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0x1045c" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) })) (expression_statement "uVar23 = X509_get0_extensions(pXVar12);" (assignment_expression "uVar23 = X509_get0_extensions(pXVar12)" identifier = (call_expression "X509_get0_extensions(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier )))) ;) (expression_statement "iVar28 = OPENSSL_sk_num(uVar23);" (assignment_expression "iVar28 = OPENSSL_sk_num(uVar23)" identifier = (call_expression "OPENSSL_sk_num(uVar23)" identifier (argument_list "(uVar23)" ( identifier )))) ;) (expression_statement "local_a2c = 0;" (assignment_expression "local_a2c = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }" if (parenthesized_expression "(0 < iVar28)" ( (binary_expression "0 < iVar28" number_literal < identifier) )) (compound_statement "{\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }" { (for_statement "for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }" for ( ; (comma_expression "iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28" (assignment_expression "iVar28 = OPENSSL_sk_num(uVar23)" identifier = (call_expression "OPENSSL_sk_num(uVar23)" identifier (argument_list "(uVar23)" ( identifier )))) , (binary_expression "local_a2c < iVar28" identifier < identifier)) ; (assignment_expression "local_a2c = local_a2c + 1" identifier = (binary_expression "local_a2c + 1" identifier + number_literal)) ) (compound_statement "{\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }" { (expression_statement "ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);" (assignment_expression "ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c)" identifier = (cast_expression "(X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c)" ( (type_descriptor "X509_EXTENSION *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_value(uVar23,local_a2c)" identifier (argument_list "(uVar23,local_a2c)" ( identifier , identifier ))))) ;) (expression_statement "pBVar10 = BIO_s_mem();" (assignment_expression "pBVar10 = BIO_s_mem()" identifier = (call_expression "BIO_s_mem()" identifier (argument_list "()" ( )))) ;) (expression_statement "out_00 = BIO_new(pBVar10);" (assignment_expression "out_00 = BIO_new(pBVar10)" identifier = (call_expression "BIO_new(pBVar10)" identifier (argument_list "(pBVar10)" ( identifier )))) ;) (if_statement "if (out_00 == (BIO *)0x0) break;" if (parenthesized_expression "(out_00 == (BIO *)0x0)" ( (binary_expression "out_00 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "a_00 = X509_EXTENSION_get_object(ex);" (assignment_expression "a_00 = X509_EXTENSION_get_object(ex)" identifier = (call_expression "X509_EXTENSION_get_object(ex)" identifier (argument_list "(ex)" ( identifier )))) ;) (expression_statement "i2t_ASN1_OBJECT(local_9a4,0x80,a_00);" (call_expression "i2t_ASN1_OBJECT(local_9a4,0x80,a_00)" identifier (argument_list "(local_9a4,0x80,a_00)" ( identifier , number_literal , identifier ))) ;) (expression_statement "iVar28 = X509V3_EXT_print(out_00,ex,0,0);" (assignment_expression "iVar28 = X509V3_EXT_print(out_00,ex,0,0)" identifier = (call_expression "X509V3_EXT_print(out_00,ex,0,0)" identifier (argument_list "(out_00,ex,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }" { (expression_statement "v = X509_EXTENSION_get_data(ex);" (assignment_expression "v = X509_EXTENSION_get_data(ex)" identifier = (call_expression "X509_EXTENSION_get_data(ex)" identifier (argument_list "(ex)" ( identifier )))) ;) (expression_statement "ASN1_STRING_print(out_00,v);" (call_expression "ASN1_STRING_print(out_00,v)" identifier (argument_list "(out_00,v)" ( identifier , identifier ))) ;) })) (expression_statement "BIO_ctrl(out_00,0x73,0,&local_9b8);" (call_expression "BIO_ctrl(out_00,0x73,0,&local_9b8)" identifier (argument_list "(out_00,0x73,0,&local_9b8)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9b8" & identifier) ))) ;) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) (expression_statement "uVar39 = local_9b8->length;" (assignment_expression "uVar39 = local_9b8->length" identifier = (field_expression "local_9b8->length" identifier -> field_identifier)) ;) (expression_statement "pAVar16 = local_9b8;" (assignment_expression "pAVar16 = local_9b8" identifier = identifier) ;) (expression_statement "local_a20 = (ASN1_GENERALIZEDTIME *)local_824;" (assignment_expression "local_a20 = (ASN1_GENERALIZEDTIME *)local_824" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)local_824" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }" if (parenthesized_expression "(uVar39 != 0)" ( (binary_expression "uVar39 != 0" identifier != number_literal) )) (compound_statement "{\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }" { (do_statement "do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);" do (compound_statement "{\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  }" { (expression_statement "iVar28 = pAVar16->type;" (assignment_expression "iVar28 = pAVar16->type" identifier = (field_expression "pAVar16->type" identifier -> field_identifier)) ;) (expression_statement "uVar26 = uVar25;" (assignment_expression "uVar26 = uVar25" identifier = identifier) ;) (expression_statement "uVar8 = uVar25 + 1;" (assignment_expression "uVar8 = uVar25 + 1" identifier = (binary_expression "uVar25 + 1" identifier + number_literal)) ;) (expression_statement "local_a24 = unaff_EBX + 0xfe77;" (assignment_expression "local_a24 = unaff_EBX + 0xfe77" identifier = (binary_expression "unaff_EBX + 0xfe77" identifier + number_literal)) ;) (if_statement "if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }" if (parenthesized_expression "(*(char *)(iVar28 + uVar25) == '\n')" ( (binary_expression "*(char *)(iVar28 + uVar25) == '\n'" (pointer_expression "*(char *)(iVar28 + uVar25)" * (cast_expression "(char *)(iVar28 + uVar25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + uVar25)" ( (binary_expression "iVar28 + uVar25" identifier + identifier) )))) == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }" { (expression_statement "uVar26 = uVar25 + 1;" (assignment_expression "uVar26 = uVar25 + 1" identifier = (binary_expression "uVar25 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = uVar25 + 2;" (assignment_expression "uVar8 = uVar25 + 2" identifier = (binary_expression "uVar25 + 2" identifier + number_literal)) ;) (expression_statement "local_a24 = unaff_EBX + 0x6071;" (assignment_expression "local_a24 = unaff_EBX + 0x6071" identifier = (binary_expression "unaff_EBX + 0x6071" identifier + number_literal)) ;) })) (expression_statement "uVar25 = uVar8;" (assignment_expression "uVar25 = uVar8" identifier = identifier) ;) (if_statement "if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }" if (parenthesized_expression "(uVar26 < uVar39)" ( (binary_expression "uVar26 < uVar39" identifier < identifier) )) (compound_statement "{\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }" { (expression_statement "cVar3 = *(char *)(iVar28 + uVar26);" (assignment_expression "cVar3 = *(char *)(iVar28 + uVar26)" identifier = (pointer_expression "*(char *)(iVar28 + uVar26)" * (cast_expression "(char *)(iVar28 + uVar26)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + uVar26)" ( (binary_expression "iVar28 + uVar26" identifier + identifier) ))))) ;) (if_statement "if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }" if (parenthesized_expression "(cVar3 == ' ')" ( (binary_expression "cVar3 == ' '" identifier == (char_literal "' '" ' character ')) )) (compound_statement "{\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }" { (expression_statement "uVar26 = uVar26 + 2;" (assignment_expression "uVar26 = uVar26 + 2" identifier = (binary_expression "uVar26 + 2" identifier + number_literal)) ;) (do_statement "do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');" do (compound_statement "{\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        }" { (expression_statement "uVar25 = uVar26;" (assignment_expression "uVar25 = uVar26" identifier = identifier) ;) (if_statement "if (uVar39 + 1 == uVar25) goto LAB_000789f7;" if (parenthesized_expression "(uVar39 + 1 == uVar25)" ( (binary_expression "uVar39 + 1 == uVar25" (binary_expression "uVar39 + 1" identifier + number_literal) == identifier) )) (goto_statement "goto LAB_000789f7;" goto statement_identifier ;)) (expression_statement "cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);" (assignment_expression "cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1)" identifier = (pointer_expression "*(char *)(iVar28 + -2 + uVar25 + 1)" * (cast_expression "(char *)(iVar28 + -2 + uVar25 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + -2 + uVar25 + 1)" ( (binary_expression "iVar28 + -2 + uVar25 + 1" (binary_expression "iVar28 + -2 + uVar25" (binary_expression "iVar28 + -2" identifier + number_literal) + identifier) + number_literal) ))))) ;) (expression_statement "uVar26 = uVar25 + 1;" (assignment_expression "uVar26 = uVar25 + 1" identifier = (binary_expression "uVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(cVar3 == ' ')" ( (binary_expression "cVar3 == ' '" identifier == (char_literal "' '" ' character ')) )) ;) })) (expression_statement "iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);" (assignment_expression "iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3)" identifier = (call_expression "curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3)" identifier (argument_list "(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3)" ( identifier , (binary_expression "auStack_624 + -(int)local_a20" identifier + (unary_expression "-(int)local_a20" - (cast_expression "(int)local_a20" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "unaff_EBX + 0xb37b" identifier + number_literal) , identifier , (cast_expression "(int)cVar3" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);" (assignment_expression "local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_a20 + iVar28)" ( (binary_expression "(int)local_a20 + iVar28" (cast_expression "(int)local_a20" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pAVar16 = local_9b8;" (assignment_expression "pAVar16 = local_9b8" identifier = identifier) ;) })) (labeled_statement "LAB_000789f7:\n                    uVar39 = pAVar16->length;" statement_identifier : (expression_statement "uVar39 = pAVar16->length;" (assignment_expression "uVar39 = pAVar16->length" identifier = (field_expression "pAVar16->length" identifier -> field_identifier)) ;)) }) while (parenthesized_expression "(uVar25 < uVar39)" ( (binary_expression "uVar25 < uVar39" identifier < identifier) )) ;) })) (expression_statement "FUN_0007b610(iVar38,local_a44,local_9a4,local_824);" (call_expression "FUN_0007b610(iVar38,local_a44,local_9a4,local_824)" identifier (argument_list "(iVar38,local_a44,local_9a4,local_824)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "BIO_free(out_00);" (call_expression "BIO_free(out_00)" identifier (argument_list "(out_00)" ( identifier ))) ;) })) })) (expression_statement "pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);" (assignment_expression "pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12)" identifier = (cast_expression "(ASN1_TIME *)X509_get0_notBefore(pXVar12)" ( (type_descriptor "ASN1_TIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get0_notBefore(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier ))))) ;) (expression_statement "ASN1_TIME_print(out,pAVar14);" (call_expression "ASN1_TIME_print(out,pAVar14)" identifier (argument_list "(out,pAVar14)" ( identifier , identifier ))) ;) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0x10471" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);" (assignment_expression "pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12)" identifier = (cast_expression "(ASN1_TIME *)X509_get0_notAfter(pXVar12)" ( (type_descriptor "ASN1_TIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get0_notAfter(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier ))))) ;) (expression_statement "ASN1_TIME_print(out,pAVar14);" (call_expression "ASN1_TIME_print(out,pAVar14)" identifier (argument_list "(out,pAVar14)" ( identifier , identifier ))) ;) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0x1047c" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "pkey = X509_get_pubkey(pXVar12);" (assignment_expression "pkey = X509_get_pubkey(pXVar12)" identifier = (call_expression "X509_get_pubkey(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier )))) ;) (if_statement "if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }" if (parenthesized_expression "(pkey == (EVP_PKEY *)0x0)" ( (binary_expression "pkey == (EVP_PKEY *)0x0" identifier == (cast_expression "(EVP_PKEY *)0x0" ( (type_descriptor "EVP_PKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }" { (expression_statement "FUN_00027140(iVar38,unaff_EBX + 0x10488);" (call_expression "FUN_00027140(iVar38,unaff_EBX + 0x10488)" identifier (argument_list "(iVar38,unaff_EBX + 0x10488)" ( identifier , (binary_expression "unaff_EBX + 0x10488" identifier + number_literal) ))) ;) }) (else_clause "else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }" else (compound_statement "{\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }" { (expression_statement "iVar28 = EVP_PKEY_id(pkey);" (assignment_expression "iVar28 = EVP_PKEY_id(pkey)" identifier = (call_expression "EVP_PKEY_id(pkey)" identifier (argument_list "(pkey)" ( identifier )))) ;) (if_statement "if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }" if (parenthesized_expression "(iVar28 == 0x1c)" ( (binary_expression "iVar28 == 0x1c" identifier == number_literal) )) (compound_statement "{\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }" { (expression_statement "uVar23 = EVP_PKEY_get0_DH(pkey);" (assignment_expression "uVar23 = EVP_PKEY_get0_DH(pkey)" identifier = (call_expression "EVP_PKEY_get0_DH(pkey)" identifier (argument_list "(pkey)" ( identifier )))) ;) (expression_statement "DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);" (call_expression "DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc)" identifier (argument_list "(uVar23,&local_9c4,&local_9c0,&local_9bc)" ( identifier , (pointer_expression "&local_9c4" & identifier) , (pointer_expression "&local_9c0" & identifier) , (pointer_expression "&local_9bc" & identifier) ))) ;) (expression_statement "iVar28 = unaff_EBX + 0x544b;" (assignment_expression "iVar28 = unaff_EBX + 0x544b" identifier = (binary_expression "unaff_EBX + 0x544b" identifier + number_literal)) ;) (expression_statement "DH_get0_key(uVar23,&local_9b8,0);" (call_expression "DH_get0_key(uVar23,&local_9b8,0)" identifier (argument_list "(uVar23,&local_9b8,0)" ( identifier , (pointer_expression "&local_9b8" & identifier) , number_literal ))) ;) (labeled_statement "LAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);" statement_identifier : (expression_statement "FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);" (call_expression "FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4)" identifier (argument_list "(iVar28,unaff_EBX + 0x7c87,local_9c4)" ( identifier , (binary_expression "unaff_EBX + 0x7c87" identifier + number_literal) , identifier ))) ;)) (expression_statement "FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);" (call_expression "FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0)" identifier (argument_list "(iVar28,unaff_EBX + 0xdee9,local_9c0)" ( identifier , (binary_expression "unaff_EBX + 0xdee9" identifier + number_literal) , identifier ))) ;) (expression_statement "FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);" (call_expression "FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc)" identifier (argument_list "(iVar28,unaff_EBX + 0xf20b,local_9bc)" ( identifier , (binary_expression "unaff_EBX + 0xf20b" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar29 = unaff_EBX + 0x104b5;" (assignment_expression "iVar29 = unaff_EBX + 0x104b5" identifier = (binary_expression "unaff_EBX + 0x104b5" identifier + number_literal)) ;) (labeled_statement "LAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);" statement_identifier : (expression_statement "FUN_00075190(iVar28,iVar29,local_9b8);" (call_expression "FUN_00075190(iVar28,iVar29,local_9b8)" identifier (argument_list "(iVar28,iVar29,local_9b8)" ( identifier , identifier , identifier ))) ;)) }) (else_clause "else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }" else (compound_statement "{\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }" { (if_statement "if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }" if (parenthesized_expression "(iVar28 == 0x74)" ( (binary_expression "iVar28 == 0x74" identifier == number_literal) )) (compound_statement "{\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }" { (expression_statement "uVar23 = EVP_PKEY_get0_DSA(pkey);" (assignment_expression "uVar23 = EVP_PKEY_get0_DSA(pkey)" identifier = (call_expression "EVP_PKEY_get0_DSA(pkey)" identifier (argument_list "(pkey)" ( identifier )))) ;) (expression_statement "DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);" (call_expression "DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc)" identifier (argument_list "(uVar23,&local_9c4,&local_9c0,&local_9bc)" ( identifier , (pointer_expression "&local_9c4" & identifier) , (pointer_expression "&local_9c0" & identifier) , (pointer_expression "&local_9bc" & identifier) ))) ;) (expression_statement "iVar28 = unaff_EBX + 0xc090;" (assignment_expression "iVar28 = unaff_EBX + 0xc090" identifier = (binary_expression "unaff_EBX + 0xc090" identifier + number_literal)) ;) (expression_statement "DSA_get0_key(uVar23,&local_9b8,0);" (call_expression "DSA_get0_key(uVar23,&local_9b8,0)" identifier (argument_list "(uVar23,&local_9b8,0)" ( identifier , (pointer_expression "&local_9b8" & identifier) , number_literal ))) ;) (goto_statement "goto LAB_0007922b;" goto statement_identifier ;) })) (if_statement "if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }" if (parenthesized_expression "(iVar28 == 6)" ( (binary_expression "iVar28 == 6" identifier == number_literal) )) (compound_statement "{\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }" { (expression_statement "iVar28 = unaff_EBX + 0xc081;" (assignment_expression "iVar28 = unaff_EBX + 0xc081" identifier = (binary_expression "unaff_EBX + 0xc081" identifier + number_literal)) ;) (expression_statement "uVar23 = EVP_PKEY_get0_RSA(pkey);" (assignment_expression "uVar23 = EVP_PKEY_get0_RSA(pkey)" identifier = (call_expression "EVP_PKEY_get0_RSA(pkey)" identifier (argument_list "(pkey)" ( identifier )))) ;) (expression_statement "RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);" (call_expression "RSA_get0_key(uVar23,&local_9bc,&local_9b8,0)" identifier (argument_list "(uVar23,&local_9bc,&local_9b8,0)" ( identifier , (pointer_expression "&local_9bc" & identifier) , (pointer_expression "&local_9b8" & identifier) , number_literal ))) ;) (expression_statement "BN_print(out,local_9bc);" (call_expression "BN_print(out,local_9bc)" identifier (argument_list "(out,local_9bc)" ( identifier , identifier ))) ;) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0x104a6" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);" (call_expression "FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc)" identifier (argument_list "(iVar28,unaff_EBX + 0xf7bd,local_9bc)" ( identifier , (binary_expression "unaff_EBX + 0xf7bd" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar29 = unaff_EBX + 0x102a0;" (assignment_expression "iVar29 = unaff_EBX + 0x102a0" identifier = (binary_expression "unaff_EBX + 0x102a0" identifier + number_literal)) ;) (goto_statement "goto LAB_000791bc;" goto statement_identifier ;) })) }))) (expression_statement "EVP_PKEY_free(pkey);" (call_expression "EVP_PKEY_free(pkey)" identifier (argument_list "(pkey)" ( identifier ))) ;) }))) (if_statement "if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }" if (parenthesized_expression "(local_9c8 != (int *)0x0)" ( (binary_expression "local_9c8 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }" { (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (if_statement "if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }" if (parenthesized_expression "(0 < *local_9c8)" ( (binary_expression "0 < *local_9c8" number_literal < (pointer_expression "*local_9c8" * identifier)) )) (compound_statement "{\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }" { (do_statement "do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);" do (compound_statement "{\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                }" { (expression_statement "pbVar2 = (byte *)(local_9c8[2] + iVar28);" (assignment_expression "pbVar2 = (byte *)(local_9c8[2] + iVar28)" identifier = (cast_expression "(byte *)(local_9c8[2] + iVar28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_9c8[2] + iVar28)" ( (binary_expression "local_9c8[2] + iVar28" (subscript_expression "local_9c8[2]" identifier [ number_literal ]) + identifier) )))) ;) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" identifier = (binary_expression "iVar28 + 1" identifier + number_literal)) ;) (expression_statement "BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);" (call_expression "BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2)" identifier (argument_list "(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2)" ( identifier , (cast_expression "(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3)" ( (binary_expression "(int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3" (binary_expression "(int)&__DT_SYMTAB[10].st_value + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[10].st_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_SYMTAB[10].st_value" & (field_expression "__DT_SYMTAB[10].st_value" (subscript_expression "__DT_SYMTAB[10]" identifier [ number_literal ]) . field_identifier))) + identifier) + number_literal) ))) , (binary_expression "(uint)*pbVar2" (parenthesized_expression "(uint)" ( identifier )) * identifier) ))) ;) }) while (parenthesized_expression "(iVar28 < *local_9c8)" ( (binary_expression "iVar28 < *local_9c8" identifier < (pointer_expression "*local_9c8" * identifier)) )) ;) })) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0x104bd" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (expression_statement "PEM_write_bio_X509(out,pXVar12);" (call_expression "PEM_write_bio_X509(out,pXVar12)" identifier (argument_list "(out,pXVar12)" ( identifier , identifier ))) ;) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" identifier = (call_expression "BIO_ctrl(out,3,0,&local_9cc)" identifier (argument_list "(out,3,0,&local_9cc)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15)" identifier (argument_list "(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15)" ( identifier , identifier , (binary_expression "unaff_EBX + 0x104cd" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" identifier (argument_list "(out,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "local_a44 = local_a44 + 1;" (assignment_expression "local_a44 = local_a44 + 1" identifier = (binary_expression "local_a44 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 != local_a44)" ( (binary_expression "iVar19 != local_a44" identifier != identifier) )) ;) })) (expression_statement "BIO_free(out);" (call_expression "BIO_free(out)" identifier (argument_list "(out)" ( identifier ))) ;) })) })) })) (expression_statement "iVar38 = *(int *)(param_2 + 0xc);" (assignment_expression "iVar38 = *(int *)(param_2 + 0xc)" identifier = (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pXVar12 = SSL_get_peer_certificate(*(SSL **)(iVar38 + 4));" (assignment_expression "pXVar12 = SSL_get_peer_certificate(*(SSL **)(iVar38 + 4))" identifier = (call_expression "SSL_get_peer_certificate(*(SSL **)(iVar38 + 4))" identifier (argument_list "(*(SSL **)(iVar38 + 4))" ( (pointer_expression "*(SSL **)(iVar38 + 4)" * (cast_expression "(SSL **)(iVar38 + 4)" ( (type_descriptor "SSL **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar38 + 4)" ( (binary_expression "iVar38 + 4" identifier + number_literal) )))) )))) ;) (expression_statement "*(X509 **)(iVar38 + 8) = pXVar12;" (assignment_expression "*(X509 **)(iVar38 + 8) = pXVar12" (pointer_expression "*(X509 **)(iVar38 + 8)" * (cast_expression "(X509 **)(iVar38 + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar38 + 8)" ( (binary_expression "iVar38 + 8" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(*(int *)(param_2 + 0xc) + 8) == 0) {\n    iVar38 = 0;\n    BIO_free(pBVar11);\n    if (param_3 != '\0') {\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }\n    goto LAB_00078251;\n  }" if (parenthesized_expression "(*(int *)(*(int *)(param_2 + 0xc) + 8) == 0)" ( (binary_expression "*(int *)(*(int *)(param_2 + 0xc) + 8) == 0" (pointer_expression "*(int *)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(int *)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n    iVar38 = 0;\n    BIO_free(pBVar11);\n    if (param_3 != '\0') {\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }\n    goto LAB_00078251;\n  }" { (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" identifier = number_literal) ;) (expression_statement "BIO_free(pBVar11);" (call_expression "BIO_free(pBVar11)" identifier (argument_list "(pBVar11)" ( identifier ))) ;) (if_statement "if (param_3 != '\0') {\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }" if (parenthesized_expression "(param_3 != '\0')" ( (binary_expression "param_3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }" { (expression_statement "iVar38 = 0x3c;" (assignment_expression "iVar38 = 0x3c" identifier = number_literal) ;) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x1122f);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x1122f)" identifier (argument_list "(iVar4,unaff_EBX + 0x1122f)" ( identifier , (binary_expression "unaff_EBX + 0x1122f" identifier + number_literal) ))) ;) })) (goto_statement "goto LAB_00078251;" goto statement_identifier ;) })) (expression_statement "iVar38 = unaff_EBX + 0x5eef;" (assignment_expression "iVar38 = unaff_EBX + 0x5eef" identifier = (binary_expression "unaff_EBX + 0x5eef" identifier + number_literal)) ;) (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    iVar38 = unaff_EBX + 0x5ee9;\n  }" if (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" ( (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n    iVar38 = unaff_EBX + 0x5ee9;\n  }" { (expression_statement "iVar38 = unaff_EBX + 0x5ee9;" (assignment_expression "iVar38 = unaff_EBX + 0x5ee9" identifier = (binary_expression "unaff_EBX + 0x5ee9" identifier + number_literal)) ;) })) (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x104d2,iVar38);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x104d2,iVar38)" identifier (argument_list "(iVar4,unaff_EBX + 0x104d2,iVar38)" ( identifier , (binary_expression "unaff_EBX + 0x104d2" identifier + number_literal) , identifier ))) ;) (expression_statement "X509_get_subject_name(*(X509 **)(*(int *)(param_2 + 0xc) + 8));" (call_expression "X509_get_subject_name(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" identifier (argument_list "(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" ( (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) ))) ;) (expression_statement "puVar22 = local_824;" (assignment_expression "puVar22 = local_824" identifier = identifier) ;) (expression_statement "iVar38 = FUN_00077df0();" (assignment_expression "iVar38 = FUN_00077df0()" identifier = (call_expression "FUN_00077df0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar13 = (undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX);" (assignment_expression "puVar13 = (undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX)" identifier = (cast_expression "(undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_SYMTAB[1].st_value + unaff_EBX)" ( (binary_expression "(int)&__DT_SYMTAB[1].st_value + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[1].st_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_SYMTAB[1].st_value" & (field_expression "__DT_SYMTAB[1].st_value" (subscript_expression "__DT_SYMTAB[1]" identifier [ number_literal ]) . field_identifier))) + identifier) )))) ;) (if_statement "if (iVar38 == 0) {\n    puVar13 = puVar22;\n  }" if (parenthesized_expression "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )) (compound_statement "{\n    puVar13 = puVar22;\n  }" { (expression_statement "puVar13 = puVar22;" (assignment_expression "puVar13 = puVar22" identifier = identifier) ;) })) (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x104e3,puVar13);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x104e3,puVar13)" identifier (argument_list "(iVar4,unaff_EBX + 0x104e3,puVar13)" ( identifier , (binary_expression "unaff_EBX + 0x104e3" identifier + number_literal) , identifier ))) ;) (expression_statement "pAVar14 = (ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));" (assignment_expression "pAVar14 = (ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" identifier = (cast_expression "(ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" ( (type_descriptor "ASN1_TIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" identifier (argument_list "(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" ( (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) ))))) ;) (expression_statement "ASN1_TIME_print(pBVar11,pAVar14);" (call_expression "ASN1_TIME_print(pBVar11,pAVar14)" identifier (argument_list "(pBVar11,pAVar14)" ( identifier , identifier ))) ;) (expression_statement "lVar15 = BIO_ctrl(pBVar11,3,0,&local_9d0);" (assignment_expression "lVar15 = BIO_ctrl(pBVar11,3,0,&local_9d0)" identifier = (call_expression "BIO_ctrl(pBVar11,3,0,&local_9d0)" identifier (argument_list "(pBVar11,3,0,&local_9d0)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9d0" & identifier) )))) ;) (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0)" identifier (argument_list "(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0)" ( identifier , (binary_expression "unaff_EBX + 0x104f1" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(pBVar11,1,0,(void *)0x0);" (call_expression "BIO_ctrl(pBVar11,1,0,(void *)0x0)" identifier (argument_list "(pBVar11,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "pAVar14 = (ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));" (assignment_expression "pAVar14 = (ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" identifier = (cast_expression "(ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" ( (type_descriptor "ASN1_TIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" identifier (argument_list "(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" ( (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) ))))) ;) (expression_statement "ASN1_TIME_print(pBVar11,pAVar14);" (call_expression "ASN1_TIME_print(pBVar11,pAVar14)" identifier (argument_list "(pBVar11,pAVar14)" ( identifier , identifier ))) ;) (expression_statement "pAVar16 = (ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0);" (assignment_expression "pAVar16 = (ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "BIO_ctrl(pBVar11,3,0,&local_9d0)" identifier (argument_list "(pBVar11,3,0,&local_9d0)" ( identifier , number_literal , number_literal , (pointer_expression "&local_9d0" & identifier) ))))) ;) (expression_statement "pcVar30 = (char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX);" (assignment_expression "pcVar30 = (char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX)" identifier = (cast_expression "(char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX)" ( (binary_expression "(int)&__DT_SYMTAB[0xe].st_value + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[0xe].st_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_SYMTAB[0xe].st_value" & (field_expression "__DT_SYMTAB[0xe].st_value" (subscript_expression "__DT_SYMTAB[0xe]" identifier [ number_literal ]) . field_identifier))) + identifier) )))) ;) (expression_statement "local_a10 = local_9d0;" (assignment_expression "local_a10 = local_9d0" identifier = identifier) ;) (expression_statement "FUN_00027140(iVar4,pcVar30,pAVar16,local_9d0);" (call_expression "FUN_00027140(iVar4,pcVar30,pAVar16,local_9d0)" identifier (argument_list "(iVar4,pcVar30,pAVar16,local_9d0)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "BIO_ctrl(pBVar11,1,0,(void *)0x0);" (call_expression "BIO_ctrl(pBVar11,1,0,(void *)0x0)" identifier (argument_list "(pBVar11,1,0,(void *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "BIO_free(pBVar11);" (call_expression "BIO_free(pBVar11)" identifier (argument_list "(pBVar11)" ( identifier ))) ;) (expression_statement "local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" identifier = (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (piVar9[0x3a] != 2) {\n    if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;\n    local_a1c = *piVar9;\nLAB_00078282:\n    local_a30 = (char *)piVar9[0x25];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];\nLAB_0007829a:\n    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }\n    local_a28 = local_9b4;\n    pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;\n    pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);\n    local_a10 = pAVar18;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\n    else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_000794d2:\n    iVar38 = 0x3c;\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    goto LAB_00078251;\n  }" if (parenthesized_expression "(piVar9[0x3a] != 2)" ( (binary_expression "piVar9[0x3a] != 2" (subscript_expression "piVar9[0x3a]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;\n    local_a1c = *piVar9;\nLAB_00078282:\n    local_a30 = (char *)piVar9[0x25];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];\nLAB_0007829a:\n    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }\n    local_a28 = local_9b4;\n    pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;\n    pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);\n    local_a10 = pAVar18;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\n    else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_000794d2:\n    iVar38 = 0x3c;\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    goto LAB_00078251;\n  }" { (if_statement "if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;" if (parenthesized_expression "(*(char *)((int)piVar9 + 0x201) == '\0')" ( (binary_expression "*(char *)((int)piVar9 + 0x201) == '\0'" (pointer_expression "*(char *)((int)piVar9 + 0x201)" * (cast_expression "(char *)((int)piVar9 + 0x201)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x201)" ( (binary_expression "(int)piVar9 + 0x201" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000780f3;" goto statement_identifier ;)) (expression_statement "local_a1c = *piVar9;" (assignment_expression "local_a1c = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (labeled_statement "LAB_00078282:\n    local_a30 = (char *)piVar9[0x25];" statement_identifier : (expression_statement "local_a30 = (char *)piVar9[0x25];" (assignment_expression "local_a30 = (char *)piVar9[0x25]" identifier = (cast_expression "(char *)piVar9[0x25]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[0x25]" identifier [ number_literal ]))) ;)) (expression_statement "local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];" (assignment_expression "local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26]" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)piVar9[0x26]" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[0x26]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_0007829a:\n    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }" statement_identifier : (if_statement "if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }" if (parenthesized_expression "((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0))" ( (binary_expression "(*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)" (parenthesized_expression "(*(char *)((int)piVar9 + 0x252) == '\0')" ( (binary_expression "*(char *)((int)piVar9 + 0x252) == '\0'" (pointer_expression "*(char *)((int)piVar9 + 0x252)" * (cast_expression "(char *)((int)piVar9 + 0x252)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x252)" ( (binary_expression "(int)piVar9 + 0x252" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)" ( (comma_expression "iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0" (assignment_expression "iVar38 = inet_pton(10,local_a30,local_9b4)" identifier = (call_expression "inet_pton(10,local_a30,local_9b4)" identifier (argument_list "(10,local_a30,local_9b4)" ( number_literal , identifier , identifier )))) , (binary_expression "iVar38 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }" { (expression_statement "local_a28 = local_9b4;" (assignment_expression "local_a28 = local_9b4" identifier = identifier) ;) (expression_statement "iVar38 = inet_pton(2,local_a30,local_a28);" (assignment_expression "iVar38 = inet_pton(2,local_a30,local_a28)" identifier = (call_expression "inet_pton(2,local_a30,local_a28)" identifier (argument_list "(2,local_a30,local_a28)" ( number_literal , identifier , identifier )))) ;) (expression_statement "local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);" (assignment_expression "local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(~-(uint)(iVar38 == 0) & 4)" ( (binary_expression "~-(uint)(iVar38 == 0) & 4" (unary_expression "~-(uint)(iVar38 == 0)" ~ (unary_expression "-(uint)(iVar38 == 0)" - (call_expression "(uint)(iVar38 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) ))))) & number_literal) )))) ;) (expression_statement "iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;" (assignment_expression "iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7" identifier = (binary_expression "(-(uint)(iVar38 == 0) & 0xfffffffb) + 7" (parenthesized_expression "(-(uint)(iVar38 == 0) & 0xfffffffb)" ( (binary_expression "-(uint)(iVar38 == 0) & 0xfffffffb" (unary_expression "-(uint)(iVar38 == 0)" - (call_expression "(uint)(iVar38 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) }) (else_clause "else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }" else (compound_statement "{\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }" { (expression_statement "local_a20 = (ASN1_GENERALIZEDTIME *)0x10;" (assignment_expression "local_a20 = (ASN1_GENERALIZEDTIME *)0x10" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)0x10" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar38 = 7;" (assignment_expression "iVar38 = 7" identifier = number_literal) ;) })))) (expression_statement "local_a28 = local_9b4;" (assignment_expression "local_a28 = local_9b4" identifier = identifier) ;) (expression_statement "pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;" (assignment_expression "pAVar18 = (ASN1_GENERALIZEDTIME *)0x0" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;" (assignment_expression "pAVar16 = (ASN1_GENERALIZEDTIME *)0x0" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);" (assignment_expression "a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0)" identifier = (cast_expression "(GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0)" ( (type_descriptor "GENERAL_NAMES *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0)" identifier (argument_list "(local_a48,0x55,(int *)0x0,(int *)0x0)" ( identifier , number_literal , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))))) ;) (expression_statement "local_a10 = pAVar18;" (assignment_expression "local_a10 = pAVar18" identifier = identifier) ;) (if_statement "if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\n    else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }" if (parenthesized_expression "(a == (GENERAL_NAMES *)0x0)" ( (binary_expression "a == (GENERAL_NAMES *)0x0" identifier == (cast_expression "(GENERAL_NAMES *)0x0" ( (type_descriptor "GENERAL_NAMES *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }" { (labeled_statement "LAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);" statement_identifier : (expression_statement "pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);" (assignment_expression "pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBX + 0xfe77)" ( (binary_expression "unaff_EBX + 0xfe77" identifier + number_literal) )))) ;)) (expression_statement "local_9b8 = pAVar18;" (assignment_expression "local_9b8 = pAVar18" identifier = identifier) ;) (expression_statement "pXVar31 = X509_get_subject_name(local_a48);" (assignment_expression "pXVar31 = X509_get_subject_name(local_a48)" identifier = (call_expression "X509_get_subject_name(local_a48)" identifier (argument_list "(local_a48)" ( identifier )))) ;) (expression_statement "pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;" (assignment_expression "pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)0xffffffff" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }" if (parenthesized_expression "(pXVar31 == (X509_NAME *)0x0)" ( (binary_expression "pXVar31 == (X509_NAME *)0x0" identifier == (cast_expression "(X509_NAME *)0x0" ( (type_descriptor "X509_NAME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }" { (labeled_statement "LAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }" statement_identifier : (if_statement "if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }" if (parenthesized_expression "(local_9b8 == pAVar18)" ( (binary_expression "local_9b8 == pAVar18" identifier == identifier) )) (compound_statement "{\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }" { (expression_statement "local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;" (assignment_expression "local_9b8 = (ASN1_GENERALIZEDTIME *)0x0" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;" statement_identifier : (expression_statement "unaff_EBX = unaff_EBX + 0x1132b;" (assignment_expression "unaff_EBX = unaff_EBX + 0x1132b" identifier = (binary_expression "unaff_EBX + 0x1132b" identifier + number_literal)) ;)) (expression_statement "local_a14 = local_a10;" (assignment_expression "local_a14 = local_a10" identifier = identifier) ;) }) (else_clause "else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }" else (compound_statement "{\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }" { (if_statement "if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;" if (parenthesized_expression "(local_9b8 == (ASN1_GENERALIZEDTIME *)0x0)" ( (binary_expression "local_9b8 == (ASN1_GENERALIZEDTIME *)0x0" identifier == (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007950b;" goto statement_identifier ;)) (expression_statement "iVar38 = FUN_000602e0(local_9b8,local_a30);" (assignment_expression "iVar38 = FUN_000602e0(local_9b8,local_a30)" identifier = (call_expression "FUN_000602e0(local_9b8,local_a30)" identifier (argument_list "(local_9b8,local_a30)" ( identifier , identifier )))) ;) (expression_statement "pAVar16 = local_9b8;" (assignment_expression "pAVar16 = local_9b8" identifier = identifier) ;) (if_statement "if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }" if (parenthesized_expression "(iVar38 != 0)" ( (binary_expression "iVar38 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }" { (expression_statement "pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);" (assignment_expression "pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX)" identifier = (cast_expression "(char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX)" ( (binary_expression "(int)&__DT_SYMTAB[0x12].st_value + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[0x12].st_value" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_SYMTAB[0x12].st_value" & (field_expression "__DT_SYMTAB[0x12].st_value" (subscript_expression "__DT_SYMTAB[0x12]" identifier [ number_literal ]) . field_identifier))) + identifier) )))) ;) (expression_statement "FUN_00027140(local_a1c,pcVar30,local_9b8);" (call_expression "FUN_00027140(local_a1c,pcVar30,local_9b8)" identifier (argument_list "(local_a1c,pcVar30,local_9b8)" ( identifier , identifier , identifier ))) ;) (if_statement "if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;" if (parenthesized_expression "(local_9b8 == (ASN1_GENERALIZEDTIME *)0x0)" ( (binary_expression "local_9b8 == (ASN1_GENERALIZEDTIME *)0x0" identifier == (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000783a8;" goto statement_identifier ;)) (expression_statement "pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);" (assignment_expression "pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX)" identifier = (cast_expression "(char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX)" ( (binary_expression "(int)&__DT_SYMTAB[0xf].st_size + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[0xf].st_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_SYMTAB[0xf].st_size" & (field_expression "__DT_SYMTAB[0xf].st_size" (subscript_expression "__DT_SYMTAB[0xf]" identifier [ number_literal ]) . field_identifier))) + identifier) )))) ;) (expression_statement "pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;" (assignment_expression "pAVar16 = (ASN1_GENERALIZEDTIME *)0x693" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)0x693" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_a10 = extraout_EDX;" (assignment_expression "local_a10 = extraout_EDX" identifier = identifier) ;) (expression_statement "CRYPTO_free(local_9b8);" (call_expression "CRYPTO_free(local_9b8)" identifier (argument_list "(local_9b8)" ( identifier ))) ;) (expression_statement "local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" identifier = (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_000780f3;" goto statement_identifier ;) })) (expression_statement "unaff_EBX = unaff_EBX + 0x11363;" (assignment_expression "unaff_EBX = unaff_EBX + 0x11363" identifier = (binary_expression "unaff_EBX + 0x11363" identifier + number_literal)) ;) })))) (expression_statement "FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);" (call_expression "FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14)" identifier (argument_list "(local_a1c,unaff_EBX,pAVar16,local_a14)" ( identifier , identifier , identifier , identifier ))) ;) (labeled_statement "LAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }" statement_identifier : (if_statement "if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }" if (parenthesized_expression "(local_9b8 != (ASN1_GENERALIZEDTIME *)0x0)" ( (binary_expression "local_9b8 != (ASN1_GENERALIZEDTIME *)0x0" identifier != (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }" { (expression_statement "CRYPTO_free(local_9b8);" (call_expression "CRYPTO_free(local_9b8)" identifier (argument_list "(local_9b8)" ( identifier ))) ;) (expression_statement "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" identifier = (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_000794d2;" goto statement_identifier ;) }))) }) (else_clause "else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }" else (compound_statement "{\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }" { (do_statement "do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);" do (compound_statement "{\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        }" { (expression_statement "pAVar36 = pAVar32;" (assignment_expression "pAVar36 = pAVar32" identifier = identifier) ;) (expression_statement "pAVar16 = pAVar36;" (assignment_expression "pAVar16 = pAVar36" identifier = identifier) ;) (expression_statement "pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);" (assignment_expression "pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36)" identifier (argument_list "(pXVar31,0xd,(int)pAVar36)" ( identifier , number_literal , (cast_expression "(int)pAVar36" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) }) while (parenthesized_expression "(-1 < (int)pAVar32)" ( (binary_expression "-1 < (int)pAVar32" number_literal < (cast_expression "(int)pAVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) (if_statement "if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;" if (parenthesized_expression "(pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff)" ( (binary_expression "pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff" identifier == (cast_expression "(ASN1_GENERALIZEDTIME *)0xffffffff" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007908e;" goto statement_identifier ;)) (expression_statement "ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);" (assignment_expression "ne = X509_NAME_get_entry(pXVar31,(int)pAVar36)" identifier = (call_expression "X509_NAME_get_entry(pXVar31,(int)pAVar36)" identifier (argument_list "(pXVar31,(int)pAVar36)" ( identifier , (cast_expression "(int)pAVar36" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "pAVar34 = X509_NAME_ENTRY_get_data(ne);" (assignment_expression "pAVar34 = X509_NAME_ENTRY_get_data(ne)" identifier = (call_expression "X509_NAME_ENTRY_get_data(ne)" identifier (argument_list "(ne)" ( identifier )))) ;) (if_statement "if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;" if (parenthesized_expression "(pAVar34 == (ASN1_STRING *)0x0)" ( (binary_expression "pAVar34 == (ASN1_STRING *)0x0" identifier == (cast_expression "(ASN1_STRING *)0x0" ( (type_descriptor "ASN1_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007908e;" goto statement_identifier ;)) (expression_statement "iVar38 = ASN1_STRING_type(pAVar34);" (assignment_expression "iVar38 = ASN1_STRING_type(pAVar34)" identifier = (call_expression "ASN1_STRING_type(pAVar34)" identifier (argument_list "(pAVar34)" ( identifier )))) ;) (if_statement "if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }" if (parenthesized_expression "(iVar38 == 0xc)" ( (binary_expression "iVar38 == 0xc" identifier == number_literal) )) (compound_statement "{\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }" { (expression_statement "pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);" (assignment_expression "pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_length(pAVar34)" identifier (argument_list "(pAVar34)" ( identifier ))))) ;) (if_statement "if ((int)pAVar32 < 0) goto LAB_0007969a;" if (parenthesized_expression "((int)pAVar32 < 0)" ( (binary_expression "(int)pAVar32 < 0" (cast_expression "(int)pAVar32" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0007969a;" goto statement_identifier ;)) (expression_statement "pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;" (assignment_expression "pAVar16 = (ASN1_GENERALIZEDTIME *)0x662" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)0x662" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);" (assignment_expression "local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662)" identifier (argument_list "((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662)" ( (cast_expression "(int)((int)&pAVar32->length + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&pAVar32->length + 1)" ( (binary_expression "(int)&pAVar32->length + 1" (cast_expression "(int)&pAVar32->length" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pAVar32->length" & (field_expression "pAVar32->length" identifier -> field_identifier))) + number_literal) ))) , (cast_expression "(char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX)" ( (binary_expression "(int)&__DT_SYMTAB[0xf].st_size + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[0xf].st_size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_SYMTAB[0xf].st_size" & (field_expression "__DT_SYMTAB[0xf].st_size" (subscript_expression "__DT_SYMTAB[0xf]" identifier [ number_literal ]) . field_identifier))) + identifier) ))) , number_literal ))))) ;) (if_statement "if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }" if (parenthesized_expression "(local_9b8 != (ASN1_GENERALIZEDTIME *)0x0)" ( (binary_expression "local_9b8 != (ASN1_GENERALIZEDTIME *)0x0" identifier != (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }" { (expression_statement "pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);" (assignment_expression "pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34)" identifier = (cast_expression "(void *)ASN1_STRING_get0_data(pAVar34)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_get0_data(pAVar34)" identifier (argument_list "(pAVar34)" ( identifier ))))) ;) (expression_statement "pAVar16 = pAVar32;" (assignment_expression "pAVar16 = pAVar32" identifier = identifier) ;) (expression_statement "memcpy(local_9b8,pvVar37,(size_t)pAVar32);" (call_expression "memcpy(local_9b8,pvVar37,(size_t)pAVar32)" identifier (argument_list "(local_9b8,pvVar37,(size_t)pAVar32)" ( identifier , identifier , (cast_expression "(size_t)pAVar32" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) (expression_statement "*(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';" (assignment_expression "*(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0'" (pointer_expression "*(char *)((int)&pAVar32->length + (int)&local_9b8->length)" * (cast_expression "(char *)((int)&pAVar32->length + (int)&local_9b8->length)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pAVar32->length + (int)&local_9b8->length)" ( (binary_expression "(int)&pAVar32->length + (int)&local_9b8->length" (cast_expression "(int)&pAVar32->length" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pAVar32->length" & (field_expression "pAVar32->length" identifier -> field_identifier))) + (cast_expression "(int)&local_9b8->length" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_9b8->length" & (field_expression "local_9b8->length" identifier -> field_identifier)))) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_0007969a;" goto statement_identifier ;) })) (goto_statement "goto LAB_0007950b;" goto statement_identifier ;) })) (expression_statement "pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);" (assignment_expression "pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34)" identifier (argument_list "((uchar **)&local_9b8,pAVar34)" ( (cast_expression "(uchar **)&local_9b8" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_9b8" & identifier)) , identifier ))))) ;) (labeled_statement "LAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;" statement_identifier : (if_statement "if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;" if (parenthesized_expression "(local_9b8 == (ASN1_GENERALIZEDTIME *)0x0)" ( (binary_expression "local_9b8 == (ASN1_GENERALIZEDTIME *)0x0" identifier == (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007950b;" goto statement_identifier ;))) (expression_statement "sVar35 = strlen((char *)local_9b8);" (assignment_expression "sVar35 = strlen((char *)local_9b8)" identifier = (call_expression "strlen((char *)local_9b8)" identifier (argument_list "((char *)local_9b8)" ( (cast_expression "(char *)local_9b8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);" (assignment_expression "pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0005a1d0(sVar35)" identifier (argument_list "(sVar35)" ( identifier ))))) ;) (if_statement "if (pAVar36 == pAVar32) goto LAB_0007908e;" if (parenthesized_expression "(pAVar36 == pAVar32)" ( (binary_expression "pAVar36 == pAVar32" identifier == identifier) )) (goto_statement "goto LAB_0007908e;" goto statement_identifier ;)) (expression_statement "FUN_00027240(local_a1c,unaff_EBX + 0x10527);" (call_expression "FUN_00027240(local_a1c,unaff_EBX + 0x10527)" identifier (argument_list "(local_a1c,unaff_EBX + 0x10527)" ( identifier , (binary_expression "unaff_EBX + 0x10527" identifier + number_literal) ))) ;) (if_statement "if (local_9b8 != pAVar18) goto LAB_000790e4;" if (parenthesized_expression "(local_9b8 != pAVar18)" ( (binary_expression "local_9b8 != pAVar18" identifier != identifier) )) (goto_statement "goto LAB_000790e4;" goto statement_identifier ;)) }))) (expression_statement "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" identifier = (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }" else (compound_statement "{\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }" { (expression_statement "pcVar20 = (char *)OPENSSL_sk_num(a);" (assignment_expression "pcVar20 = (char *)OPENSSL_sk_num(a)" identifier = (cast_expression "(char *)OPENSSL_sk_num(a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_num(a)" identifier (argument_list "(a)" ( identifier ))))) ;) (if_statement "if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }" if (parenthesized_expression "((int)pcVar20 < 1)" ( (binary_expression "(int)pcVar20 < 1" (cast_expression "(int)pcVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }" { (expression_statement "GENERAL_NAMES_free(a);" (call_expression "GENERAL_NAMES_free(a)" identifier (argument_list "(a)" ( identifier ))) ;) (expression_statement "local_a10 = pAVar18;" (assignment_expression "local_a10 = pAVar18" identifier = identifier) ;) (goto_statement "goto LAB_00079040;" goto statement_identifier ;) })) (expression_statement "pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);" (assignment_expression "pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3)" identifier = (cast_expression "(char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3)" ( (binary_expression "(int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3" (binary_expression "(int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[0xe6].st_name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_SYMTAB[0xe6].st_name" & (field_expression "__DT_SYMTAB[0xe6].st_name" (subscript_expression "__DT_SYMTAB[0xe6]" identifier [ number_literal ]) . field_identifier))) + identifier) + number_literal) )))) ;) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "pcVar41 = (char *)0x0;" (assignment_expression "pcVar41 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" identifier = false) ;) (do_statement "do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);" do (compound_statement "{\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      }" { (while_statement "while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }" { (expression_statement "pcVar30 = pcVar41;" (assignment_expression "pcVar30 = pcVar41" identifier = identifier) ;) (expression_statement "piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);" (assignment_expression "piVar21 = (int *)OPENSSL_sk_value(a,pcVar41)" identifier = (cast_expression "(int *)OPENSSL_sk_value(a,pcVar41)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "OPENSSL_sk_value(a,pcVar41)" identifier (argument_list "(a,pcVar41)" ( identifier , identifier ))))) ;) (expression_statement "iVar19 = *piVar21;" (assignment_expression "iVar19 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (if_statement "if (iVar19 == 2) break;" if (parenthesized_expression "(iVar19 == 2)" ( (binary_expression "iVar19 == 2" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }" if (parenthesized_expression "(iVar19 == 7)" ( (binary_expression "iVar19 == 7" identifier == number_literal) )) (compound_statement "{\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }" { (if_statement "if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }" if (parenthesized_expression "(iVar38 == 7)" ( (binary_expression "iVar38 == 7" identifier == number_literal) )) (compound_statement "{\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }" { (expression_statement "pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);" (assignment_expression "pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1])" identifier = (cast_expression "(void *)ASN1_STRING_get0_data(piVar21[1])" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_get0_data(piVar21[1])" identifier (argument_list "(piVar21[1])" ( (subscript_expression "piVar21[1]" identifier [ number_literal ]) ))))) ;) (expression_statement "pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);" (assignment_expression "pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1])" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1])" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_length((ASN1_STRING *)piVar21[1])" identifier (argument_list "((ASN1_STRING *)piVar21[1])" ( (cast_expression "(ASN1_STRING *)piVar21[1]" ( (type_descriptor "ASN1_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[1]" identifier [ number_literal ])) ))))) ;) (if_statement "if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }" if (parenthesized_expression "(local_a20 == pAVar32)" ( (binary_expression "local_a20 == pAVar32" identifier == identifier) )) (compound_statement "{\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }" { (expression_statement "pcVar30 = local_a28;" (assignment_expression "pcVar30 = local_a28" identifier = identifier) ;) (expression_statement "pAVar16 = local_a20;" (assignment_expression "pAVar16 = local_a20" identifier = identifier) ;) (expression_statement "iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);" (assignment_expression "iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20)" identifier = (call_expression "memcmp(pvVar37,local_a28,(size_t)local_a20)" identifier (argument_list "(pvVar37,local_a28,(size_t)local_a20)" ( identifier , identifier , (cast_expression "(size_t)local_a20" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" identifier = true) ;) (if_statement "if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }" { (expression_statement "pcVar30 = pcVar1;" (assignment_expression "pcVar30 = pcVar1" identifier = identifier) ;) (expression_statement "pAVar16 = local_a14;" (assignment_expression "pAVar16 = local_a14" identifier = identifier) ;) (expression_statement "FUN_00027140(local_a1c,pcVar1,local_a14);" (call_expression "FUN_00027140(local_a1c,pcVar1,local_a14)" identifier (argument_list "(local_a1c,pcVar1,local_a14)" ( identifier , identifier , identifier ))) ;) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) })) (goto_statement "goto LAB_00078351;" goto statement_identifier ;) })) })) (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" identifier = true) ;) }) (else_clause "else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }" else (if_statement "if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }" if (parenthesized_expression "(iVar19 == iVar38)" ( (binary_expression "iVar19 == iVar38" identifier == identifier) )) (compound_statement "{\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }" { (expression_statement "local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);" (assignment_expression "local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1])" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1])" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_get0_data(piVar21[1])" identifier (argument_list "(piVar21[1])" ( (subscript_expression "piVar21[1]" identifier [ number_literal ]) ))))) ;) (expression_statement "sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);" (assignment_expression "sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1])" identifier = (call_expression "ASN1_STRING_length((ASN1_STRING *)piVar21[1])" identifier (argument_list "((ASN1_STRING *)piVar21[1])" ( (cast_expression "(ASN1_STRING *)piVar21[1]" ( (type_descriptor "ASN1_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[1]" identifier [ number_literal ])) )))) ;) (if_statement "if (iVar38 == 2) goto LAB_00079422;" if (parenthesized_expression "(iVar38 == 2)" ( (binary_expression "iVar38 == 2" identifier == number_literal) )) (goto_statement "goto LAB_00079422;" goto statement_identifier ;)) })))) (labeled_statement "LAB_00078351:\n          pcVar41 = pcVar41 + 1;" statement_identifier : (expression_statement "pcVar41 = pcVar41 + 1;" (assignment_expression "pcVar41 = pcVar41 + 1" identifier = (binary_expression "pcVar41 + 1" identifier + number_literal)) ;)) (expression_statement "local_a10 = pAVar18;" (assignment_expression "local_a10 = pAVar18" identifier = identifier) ;) (if_statement "if (pcVar20 == pcVar41) goto LAB_0007838a;" if (parenthesized_expression "(pcVar20 == pcVar41)" ( (binary_expression "pcVar20 == pcVar41" identifier == identifier) )) (goto_statement "goto LAB_0007838a;" goto statement_identifier ;)) })) (if_statement "if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }" if (parenthesized_expression "(iVar38 == 2)" ( (binary_expression "iVar38 == 2" identifier == number_literal) )) (compound_statement "{\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }" { (expression_statement "local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);" (assignment_expression "local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1])" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1])" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "ASN1_STRING_get0_data(piVar21[1])" identifier (argument_list "(piVar21[1])" ( (subscript_expression "piVar21[1]" identifier [ number_literal ]) ))))) ;) (expression_statement "sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);" (assignment_expression "sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1])" identifier = (call_expression "ASN1_STRING_length((ASN1_STRING *)piVar21[1])" identifier (argument_list "((ASN1_STRING *)piVar21[1])" ( (cast_expression "(ASN1_STRING *)piVar21[1]" ( (type_descriptor "ASN1_STRING *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[1]" identifier [ number_literal ])) )))) ;) (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) (labeled_statement "LAB_00079422:\n          sVar33 = strlen((char *)local_a10);" statement_identifier : (expression_statement "sVar33 = strlen((char *)local_a10);" (assignment_expression "sVar33 = strlen((char *)local_a10)" identifier = (call_expression "strlen((char *)local_a10)" identifier (argument_list "((char *)local_a10)" ( (cast_expression "(char *)local_a10" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (if_statement "if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;" if (parenthesized_expression "((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))" ( (binary_expression "(sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0)" (parenthesized_expression "(sVar33 != sVar35)" ( (binary_expression "sVar33 != sVar35" identifier != identifier) )) || (parenthesized_expression "(pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0)" ( (comma_expression "pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0" (assignment_expression "pcVar30 = local_a30" identifier = identifier) , (comma_expression "iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0" (assignment_expression "iVar19 = FUN_000602e0(local_a10,local_a30)" identifier = (call_expression "FUN_000602e0(local_a10,local_a30)" identifier (argument_list "(local_a10,local_a30)" ( identifier , identifier )))) , (binary_expression "iVar19 == 0" identifier == number_literal))) ))) )) (goto_statement "goto LAB_00078351;" goto statement_identifier ;)) (expression_statement "pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);" (assignment_expression "pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3)" identifier = (cast_expression "(char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3)" ( (binary_expression "(int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3" (binary_expression "(int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[0xe3].st_name" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_SYMTAB[0xe3].st_name" & (field_expression "__DT_SYMTAB[0xe3].st_name" (subscript_expression "__DT_SYMTAB[0xe3]" identifier [ number_literal ]) . field_identifier))) + identifier) + number_literal) )))) ;) (expression_statement "FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);" (call_expression "FUN_00027140(local_a1c,pcVar30,local_a14,local_a10)" identifier (argument_list "(local_a1c,pcVar30,local_a14,local_a10)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "GENERAL_NAMES_free(a);" (call_expression "GENERAL_NAMES_free(a)" identifier (argument_list "(a)" ( identifier ))) ;) (expression_statement "pAVar16 = local_a14;" (assignment_expression "pAVar16 = local_a14" identifier = identifier) ;) (goto_statement "goto LAB_000783a8;" goto statement_identifier ;) })) (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" identifier = true) ;) (expression_statement "pcVar41 = pcVar41 + 1;" (assignment_expression "pcVar41 = pcVar41 + 1" identifier = (binary_expression "pcVar41 + 1" identifier + number_literal)) ;) (expression_statement "local_a10 = pAVar18;" (assignment_expression "local_a10 = pAVar18" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar20 != pcVar41)" ( (binary_expression "pcVar20 != pcVar41" identifier != identifier) )) ;) (labeled_statement "LAB_0007838a:\n      GENERAL_NAMES_free(a);" statement_identifier : (expression_statement "GENERAL_NAMES_free(a);" (call_expression "GENERAL_NAMES_free(a)" identifier (argument_list "(a)" ( identifier ))) ;)) (if_statement "if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }" { (labeled_statement "LAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" statement_identifier : (expression_statement "local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" identifier = (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;)) (goto_statement "goto LAB_000780f3;" goto statement_identifier ;) })) (if_statement "if ((!bVar6) && (!bVar7)) goto LAB_00079040;" if (parenthesized_expression "((!bVar6) && (!bVar7))" ( (binary_expression "(!bVar6) && (!bVar7)" (parenthesized_expression "(!bVar6)" ( (unary_expression "!bVar6" ! identifier) )) && (parenthesized_expression "(!bVar7)" ( (unary_expression "!bVar7" ! identifier) ))) )) (goto_statement "goto LAB_00079040;" goto statement_identifier ;)) (expression_statement "FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);" (call_expression "FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14)" identifier (argument_list "(local_a1c,unaff_EBX + 0x112bb,local_a14)" ( identifier , (binary_expression "unaff_EBX + 0x112bb" identifier + number_literal) , identifier ))) ;) (expression_statement "FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);" (call_expression "FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14)" identifier (argument_list "(local_a1c,unaff_EBX + 0x112df,local_a14)" ( identifier , (binary_expression "unaff_EBX + 0x112df" identifier + number_literal) , identifier ))) ;) (expression_statement "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" identifier = (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) }))) (labeled_statement "LAB_000794d2:\n    iVar38 = 0x3c;" statement_identifier : (expression_statement "iVar38 = 0x3c;" (assignment_expression "iVar38 = 0x3c" identifier = number_literal) ;)) (expression_statement "X509_free(pXVar12);" (call_expression "X509_free(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00078251;" goto statement_identifier ;) })) (if_statement "if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) {\n    if (*(char *)((int)piVar9 + 0x201) != '\0') {\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }\n  else if (*(char *)((int)piVar9 + 0x229) != '\0') {\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }" if (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) == number_literal) )) (compound_statement "{\n    if (*(char *)((int)piVar9 + 0x201) != '\0') {\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }" { (if_statement "if (*(char *)((int)piVar9 + 0x201) != '\0') {\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }" if (parenthesized_expression "(*(char *)((int)piVar9 + 0x201) != '\0')" ( (binary_expression "*(char *)((int)piVar9 + 0x201) != '\0'" (pointer_expression "*(char *)((int)piVar9 + 0x201)" * (cast_expression "(char *)((int)piVar9 + 0x201)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x201)" ( (binary_expression "(int)piVar9 + 0x201" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }" { (expression_statement "local_a1c = *piVar9;" (assignment_expression "local_a1c = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (if_statement "if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;" if (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) == number_literal) )) (goto_statement "goto LAB_00078282;" goto statement_identifier ;)) (goto_statement "goto LAB_00078a68;" goto statement_identifier ;) })) }) (else_clause "else if (*(char *)((int)piVar9 + 0x229) != '\0') {\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }" else (if_statement "if (*(char *)((int)piVar9 + 0x229) != '\0') {\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }" if (parenthesized_expression "(*(char *)((int)piVar9 + 0x229) != '\0')" ( (binary_expression "*(char *)((int)piVar9 + 0x229) != '\0'" (pointer_expression "*(char *)((int)piVar9 + 0x229)" * (cast_expression "(char *)((int)piVar9 + 0x229)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x229)" ( (binary_expression "(int)piVar9 + 0x229" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }" { (expression_statement "local_a1c = *piVar9;" (assignment_expression "local_a1c = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (labeled_statement "LAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];" statement_identifier : (expression_statement "local_a30 = (char *)piVar9[0x37];" (assignment_expression "local_a30 = (char *)piVar9[0x37]" identifier = (cast_expression "(char *)piVar9[0x37]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[0x37]" identifier [ number_literal ]))) ;)) (expression_statement "local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];" (assignment_expression "local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38]" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)piVar9[0x38]" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar9[0x38]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0007829a;" goto statement_identifier ;) })))) (labeled_statement "LAB_000780f3:\n  X509_get_issuer_name(local_a48);" statement_identifier : (expression_statement "X509_get_issuer_name(local_a48);" (call_expression "X509_get_issuer_name(local_a48)" identifier (argument_list "(local_a48)" ( identifier ))) ;)) (expression_statement "iVar38 = FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10);" (assignment_expression "iVar38 = FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10)" identifier = (call_expression "FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10)" identifier (argument_list "(local_a48,pcVar30,pAVar16,local_a10)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar38 == 0) {\n    FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);\n    if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }\n    else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }\n    if (iVar38 != 0) {\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    *local_9f8 = lVar15;\n    if (lVar15 == 0) {\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }\n    else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }\n  }\n  else if (param_3 == '\0') {\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }\n  else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }" if (parenthesized_expression "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);\n    if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }\n    else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }\n    if (iVar38 != 0) {\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    *local_9f8 = lVar15;\n    if (lVar15 == 0) {\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }\n    else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }\n  }" { (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22)" identifier (argument_list "(iVar4,unaff_EBX + 0x10560,puVar22)" ( identifier , (binary_expression "unaff_EBX + 0x10560" identifier + number_literal) , identifier ))) ;) (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }\n    else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }" if (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" ( (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }" { (expression_statement "iVar38 = *(int *)(iVar4 + 0x8bc);" (assignment_expression "iVar38 = *(int *)(iVar4 + 0x8bc)" identifier = (pointer_expression "*(int *)(iVar4 + 0x8bc)" * (cast_expression "(int *)(iVar4 + 0x8bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x8bc)" ( (binary_expression "iVar4 + 0x8bc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }" else (compound_statement "{\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }" { (expression_statement "iVar38 = *(int *)(iVar4 + 0x858);" (assignment_expression "iVar38 = *(int *)(iVar4 + 0x858)" identifier = (pointer_expression "*(int *)(iVar4 + 0x858)" * (cast_expression "(int *)(iVar4 + 0x858)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x858)" ( (binary_expression "iVar4 + 0x858" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar38 != 0) {\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }" if (parenthesized_expression "(iVar38 != 0)" ( (binary_expression "iVar38 != 0" identifier != number_literal) )) (compound_statement "{\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }" { (expression_statement "pBVar10 = BIO_s_file();" (assignment_expression "pBVar10 = BIO_s_file()" identifier = (call_expression "BIO_s_file()" identifier (argument_list "()" ( )))) ;) (expression_statement "pBVar11 = BIO_new(pBVar10);" (assignment_expression "pBVar11 = BIO_new(pBVar10)" identifier = (call_expression "BIO_new(pBVar10)" identifier (argument_list "(pBVar10)" ( identifier )))) ;) (if_statement "if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }" if (parenthesized_expression "(pBVar11 == (BIO *)0x0)" ( (binary_expression "pBVar11 == (BIO *)0x0" identifier == (cast_expression "(BIO *)0x0" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }" { (expression_statement "e = ERR_get_error();" (assignment_expression "e = ERR_get_error()" identifier = (call_expression "ERR_get_error()" identifier (argument_list "()" ( )))) ;) (expression_statement "ERR_error_string_n(e,local_924,0x100);" (call_expression "ERR_error_string_n(e,local_924,0x100)" identifier (argument_list "(e,local_924,0x100)" ( identifier , identifier , number_literal ))) ;) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924)" identifier (argument_list "(iVar4,unaff_EBX + 0x10c77,local_924)" ( identifier , (binary_expression "unaff_EBX + 0x10c77" identifier + number_literal) , identifier ))) ;) (expression_statement "X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));" (call_expression "X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" identifier (argument_list "(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" ( (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) ))) ;) (expression_statement "iVar38 = 0x1b;" (assignment_expression "iVar38 = 0x1b" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00078251;" goto statement_identifier ;) })) (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }" if (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" ( (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }" { (expression_statement "pvVar37 = *(void **)(iVar4 + 0x8bc);" (assignment_expression "pvVar37 = *(void **)(iVar4 + 0x8bc)" identifier = (pointer_expression "*(void **)(iVar4 + 0x8bc)" * (cast_expression "(void **)(iVar4 + 0x8bc)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x8bc)" ( (binary_expression "iVar4 + 0x8bc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }" else (compound_statement "{\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }" { (expression_statement "pvVar37 = *(void **)(iVar4 + 0x858);" (assignment_expression "pvVar37 = *(void **)(iVar4 + 0x858)" identifier = (pointer_expression "*(void **)(iVar4 + 0x858)" * (cast_expression "(void **)(iVar4 + 0x858)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x858)" ( (binary_expression "iVar4 + 0x858" identifier + number_literal) ))))) ;) }))) (expression_statement "lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);" (assignment_expression "lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37)" identifier = (call_expression "BIO_ctrl(pBVar11,0x6c,3,pvVar37)" identifier (argument_list "(pBVar11,0x6c,3,pvVar37)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }" if (parenthesized_expression "(lVar15 < 1)" ( (binary_expression "lVar15 < 1" identifier < number_literal) )) (compound_statement "{\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }" { (if_statement "if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }" if (parenthesized_expression "(param_3 != '\0')" ( (binary_expression "param_3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }" { (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }" if (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" ( (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }" { (expression_statement "uVar23 = *(undefined4 *)(iVar4 + 0x8bc);" (assignment_expression "uVar23 = *(undefined4 *)(iVar4 + 0x8bc)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x8bc)" * (cast_expression "(undefined4 *)(iVar4 + 0x8bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x8bc)" ( (binary_expression "iVar4 + 0x8bc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }" else (compound_statement "{\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }" { (expression_statement "uVar23 = *(undefined4 *)(iVar4 + 0x858);" (assignment_expression "uVar23 = *(undefined4 *)(iVar4 + 0x858)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x858)" * (cast_expression "(undefined4 *)(iVar4 + 0x858)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x858)" ( (binary_expression "iVar4 + 0x858" identifier + number_literal) ))))) ;) }))) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23)" identifier (argument_list "(iVar4,unaff_EBX + 0x113cf,uVar23)" ( identifier , (binary_expression "unaff_EBX + 0x113cf" identifier + number_literal) , identifier ))) ;) })) (expression_statement "BIO_free(pBVar11);" (call_expression "BIO_free(pBVar11)" identifier (argument_list "(pBVar11)" ( identifier ))) ;) }) (else_clause "else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }" else (compound_statement "{\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }" { (expression_statement "pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);" (assignment_expression "pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0)" identifier = (call_expression "PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0)" identifier (argument_list "(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0)" ( identifier , (cast_expression "(X509 **)0x0" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }" if (parenthesized_expression "(pXVar12 == (X509 *)0x0)" ( (binary_expression "pXVar12 == (X509 *)0x0" identifier == (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }" { (if_statement "if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }" if (parenthesized_expression "(param_3 != '\0')" ( (binary_expression "param_3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }" { (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }" if (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" ( (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }" { (expression_statement "uVar23 = *(undefined4 *)(iVar4 + 0x8bc);" (assignment_expression "uVar23 = *(undefined4 *)(iVar4 + 0x8bc)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x8bc)" * (cast_expression "(undefined4 *)(iVar4 + 0x8bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x8bc)" ( (binary_expression "iVar4 + 0x8bc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }" else (compound_statement "{\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }" { (expression_statement "uVar23 = *(undefined4 *)(iVar4 + 0x858);" (assignment_expression "uVar23 = *(undefined4 *)(iVar4 + 0x858)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x858)" * (cast_expression "(undefined4 *)(iVar4 + 0x858)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x858)" ( (binary_expression "iVar4 + 0x858" identifier + number_literal) ))))) ;) }))) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23)" identifier (argument_list "(iVar4,unaff_EBX + 0x113f7,uVar23)" ( identifier , (binary_expression "unaff_EBX + 0x113f7" identifier + number_literal) , identifier ))) ;) })) (expression_statement "BIO_free(pBVar11);" (call_expression "BIO_free(pBVar11)" identifier (argument_list "(pBVar11)" ( identifier ))) ;) (expression_statement "pXVar12 = (X509 *)0x0;" (assignment_expression "pXVar12 = (X509 *)0x0" identifier = (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }" else (compound_statement "{\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }" { (expression_statement "iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));" (assignment_expression "iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8))" identifier = (call_expression "X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8))" identifier (argument_list "(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8))" ( identifier , (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) )))) ;) (if_statement "if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }" if (parenthesized_expression "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )) (compound_statement "{\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }" { (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }" if (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" ( (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }" { (expression_statement "puVar22 = *(undefined1 **)(iVar4 + 0x8bc);" (assignment_expression "puVar22 = *(undefined1 **)(iVar4 + 0x8bc)" identifier = (pointer_expression "*(undefined1 **)(iVar4 + 0x8bc)" * (cast_expression "(undefined1 **)(iVar4 + 0x8bc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x8bc)" ( (binary_expression "iVar4 + 0x8bc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }" else (compound_statement "{\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }" { (expression_statement "puVar22 = *(undefined1 **)(iVar4 + 0x858);" (assignment_expression "puVar22 = *(undefined1 **)(iVar4 + 0x858)" identifier = (pointer_expression "*(undefined1 **)(iVar4 + 0x858)" * (cast_expression "(undefined1 **)(iVar4 + 0x858)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x858)" ( (binary_expression "iVar4 + 0x858" identifier + number_literal) ))))) ;) }))) (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22)" identifier (argument_list "(iVar4,unaff_EBX + 0x1144b,puVar22)" ( identifier , (binary_expression "unaff_EBX + 0x1144b" identifier + number_literal) , identifier ))) ;) (expression_statement "BIO_free(pBVar11);" (call_expression "BIO_free(pBVar11)" identifier (argument_list "(pBVar11)" ( identifier ))) ;) (expression_statement "X509_free(pXVar12);" (call_expression "X509_free(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier ))) ;) (goto_statement "goto LAB_000784c4;" goto statement_identifier ;) })) (if_statement "if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }" if (parenthesized_expression "(param_3 != '\0')" ( (binary_expression "param_3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }" { (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }" if (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" ( (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }" { (expression_statement "uVar23 = *(undefined4 *)(iVar4 + 0x8bc);" (assignment_expression "uVar23 = *(undefined4 *)(iVar4 + 0x8bc)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x8bc)" * (cast_expression "(undefined4 *)(iVar4 + 0x8bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x8bc)" ( (binary_expression "iVar4 + 0x8bc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }" else (compound_statement "{\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }" { (expression_statement "uVar23 = *(undefined4 *)(iVar4 + 0x858);" (assignment_expression "uVar23 = *(undefined4 *)(iVar4 + 0x858)" identifier = (pointer_expression "*(undefined4 *)(iVar4 + 0x858)" * (cast_expression "(undefined4 *)(iVar4 + 0x858)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x858)" ( (binary_expression "iVar4 + 0x858" identifier + number_literal) ))))) ;) }))) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23)" identifier (argument_list "(iVar4,unaff_EBX + 0x1141f,uVar23)" ( identifier , (binary_expression "unaff_EBX + 0x1141f" identifier + number_literal) , identifier ))) ;) })) (expression_statement "BIO_free(pBVar11);" (call_expression "BIO_free(pBVar11)" identifier (argument_list "(pBVar11)" ( identifier ))) ;) }))) (expression_statement "X509_free(pXVar12);" (call_expression "X509_free(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier ))) ;) }))) (expression_statement "X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));" (call_expression "X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" identifier (argument_list "(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" ( (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) ))) ;) (expression_statement "iVar38 = 0x53;" (assignment_expression "iVar38 = 0x53" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00078251;" goto statement_identifier ;) })) (labeled_statement "LAB_000784c4:\n    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));" statement_identifier : (expression_statement "lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));" (assignment_expression "lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" identifier = (call_expression "SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" identifier (argument_list "(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" ( (pointer_expression "*(SSL **)(*(int *)(param_2 + 0xc) + 4)" * (cast_expression "(SSL **)(*(int *)(param_2 + 0xc) + 4)" ( (type_descriptor "SSL **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 4)" ( (binary_expression "*(int *)(param_2 + 0xc) + 4" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) )))) ;)) (expression_statement "*local_9f8 = lVar15;" (assignment_expression "*local_9f8 = lVar15" (pointer_expression "*local_9f8" * identifier) = identifier) ;) (if_statement "if (lVar15 == 0) {\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }\n    else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }" if (parenthesized_expression "(lVar15 == 0)" ( (binary_expression "lVar15 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }" { (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" identifier = number_literal) ;) (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22)" identifier (argument_list "(iVar4,unaff_EBX + 0x1056d,puVar22)" ( identifier , (binary_expression "unaff_EBX + 0x1056d" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" identifier = (subscript_expression "piVar9[0x3a]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }" else (compound_statement "{\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }" { (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" identifier = (subscript_expression "piVar9[0x3a]" identifier [ number_literal ])) ;) (if_statement "if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }" if (parenthesized_expression "((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(iVar19 == 2)" ( (binary_expression "iVar19 == 2" identifier == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n        cVar3 = (char)piVar9[0x8a];\n      }" { (expression_statement "cVar3 = (char)piVar9[0x8a];" (assignment_expression "cVar3 = (char)piVar9[0x8a]" identifier = (cast_expression "(char)piVar9[0x8a]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar9[0x8a]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n        cVar3 = (char)piVar9[0x80];\n      }" else (compound_statement "{\n        cVar3 = (char)piVar9[0x80];\n      }" { (expression_statement "cVar3 = (char)piVar9[0x80];" (assignment_expression "cVar3 = (char)piVar9[0x80]" identifier = (cast_expression "(char)piVar9[0x80]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar9[0x80]" identifier [ number_literal ]))) ;) }))) (if_statement "if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }" { (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" identifier = number_literal) ;) (expression_statement "pcVar30 = X509_verify_cert_error_string(lVar15);" (assignment_expression "pcVar30 = X509_verify_cert_error_string(lVar15)" identifier = (call_expression "X509_verify_cert_error_string(lVar15)" identifier (argument_list "(lVar15)" ( identifier )))) ;) (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15)" identifier (argument_list "(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15)" ( identifier , (binary_expression "unaff_EBX + 0x1149b" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" identifier = (subscript_expression "piVar9[0x3a]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }" else (compound_statement "{\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }" { (expression_statement "iVar38 = 0x3c;" (assignment_expression "iVar38 = 0x3c" identifier = number_literal) ;) (if_statement "if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }" if (parenthesized_expression "(param_3 != '\0')" ( (binary_expression "param_3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }" { (expression_statement "pcVar30 = X509_verify_cert_error_string(lVar15);" (assignment_expression "pcVar30 = X509_verify_cert_error_string(lVar15)" identifier = (call_expression "X509_verify_cert_error_string(lVar15)" identifier (argument_list "(lVar15)" ( identifier )))) ;) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15)" identifier (argument_list "(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15)" ( identifier , (binary_expression "unaff_EBX + 0x11473" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" identifier = (subscript_expression "piVar9[0x3a]" identifier [ number_literal ])) ;) })) }))) }))) }) (else_clause "else if (param_3 == '\0') {\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }\n  else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }" else (if_statement "if (param_3 == '\0') {\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }\n  else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }" if (parenthesized_expression "(param_3 == '\0')" ( (binary_expression "param_3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }" { (expression_statement "iVar38 = 0x3c;" (assignment_expression "iVar38 = 0x3c" identifier = number_literal) ;) (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" identifier = (subscript_expression "piVar9[0x3a]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }" else (compound_statement "{\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }" { (expression_statement "iVar38 = 0x3c;" (assignment_expression "iVar38 = 0x3c" identifier = number_literal) ;) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x113ab);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x113ab)" identifier (argument_list "(iVar4,unaff_EBX + 0x113ab)" ( identifier , (binary_expression "unaff_EBX + 0x113ab" identifier + number_literal) ))) ;) (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" identifier = (subscript_expression "piVar9[0x3a]" identifier [ number_literal ])) ;) }))))) (if_statement "if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    cVar3 = *(char *)((int)piVar9 + 0x22a);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  else {\n    cVar3 = *(char *)((int)piVar9 + 0x202);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }" if (parenthesized_expression "((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(iVar19 == 2)" ( (binary_expression "iVar19 == 2" identifier == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n    cVar3 = *(char *)((int)piVar9 + 0x22a);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }" { (expression_statement "cVar3 = *(char *)((int)piVar9 + 0x22a);" (assignment_expression "cVar3 = *(char *)((int)piVar9 + 0x22a)" identifier = (pointer_expression "*(char *)((int)piVar9 + 0x22a)" * (cast_expression "(char *)((int)piVar9 + 0x22a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x22a)" ( (binary_expression "(int)piVar9 + 0x22a" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(param_2 + 0xc);" (assignment_expression "iVar28 = *(int *)(param_2 + 0xc)" identifier = (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    cVar3 = *(char *)((int)piVar9 + 0x202);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }" else (compound_statement "{\n    cVar3 = *(char *)((int)piVar9 + 0x202);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }" { (expression_statement "cVar3 = *(char *)((int)piVar9 + 0x202);" (assignment_expression "cVar3 = *(char *)((int)piVar9 + 0x202)" identifier = (pointer_expression "*(char *)((int)piVar9 + 0x202)" * (cast_expression "(char *)((int)piVar9 + 0x202)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar9 + 0x202)" ( (binary_expression "(int)piVar9 + 0x202" (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(param_2 + 0xc);" (assignment_expression "iVar28 = *(int *)(param_2 + 0xc)" identifier = (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) }))) (if_statement "if (cVar3 == '\0') {\nLAB_0007814e:\n    if (param_3 == '\0') {\n      iVar38 = 0;\n    }\n    if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }\n    else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }\n    pXVar12 = *(X509 **)(iVar28 + 8);\n    local_9d0 = pAVar16;\n    if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_00078230:\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    *(undefined4 *)(param_2 + 8) = 5;\n    goto LAB_00078251;\n  }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0007814e:\n    if (param_3 == '\0') {\n      iVar38 = 0;\n    }\n    if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }\n    else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }\n    pXVar12 = *(X509 **)(iVar28 + 8);\n    local_9d0 = pAVar16;\n    if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_00078230:\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    *(undefined4 *)(param_2 + 8) = 5;\n    goto LAB_00078251;\n  }" { (labeled_statement "LAB_0007814e:\n    if (param_3 == '\0') {\n      iVar38 = 0;\n    }" statement_identifier : (if_statement "if (param_3 == '\0') {\n      iVar38 = 0;\n    }" if (parenthesized_expression "(param_3 == '\0')" ( (binary_expression "param_3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar38 = 0;\n    }" { (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" identifier = number_literal) ;) }))) (if_statement "if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }\n    else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }" if (parenthesized_expression "((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" ( (binary_expression "(iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(iVar19 == 2)" ( (binary_expression "iVar19 == 2" identifier == number_literal) )) && (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" ( (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" identifier [ (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" ( (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" ( (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" identifier [ number_literal ]) != number_literal) )) + number_literal) )) * number_literal) + number_literal) ]) != number_literal) ))) )) (compound_statement "{\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }" { (expression_statement "pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);" (assignment_expression "pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8)" identifier = (pointer_expression "*(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8)" * (cast_expression "(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8)" ( (type_descriptor "ASN1_GENERALIZEDTIME **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x9e8)" ( (binary_expression "iVar4 + 0x9e8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }" else (compound_statement "{\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }" { (expression_statement "pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);" (assignment_expression "pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4)" identifier = (pointer_expression "*(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4)" * (cast_expression "(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4)" ( (type_descriptor "ASN1_GENERALIZEDTIME **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x9e4)" ( (binary_expression "iVar4 + 0x9e4" identifier + number_literal) ))))) ;) }))) (expression_statement "pXVar12 = *(X509 **)(iVar28 + 8);" (assignment_expression "pXVar12 = *(X509 **)(iVar28 + 8)" identifier = (pointer_expression "*(X509 **)(iVar28 + 8)" * (cast_expression "(X509 **)(iVar28 + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + 8)" ( (binary_expression "iVar28 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_9d0 = pAVar16;" (assignment_expression "local_9d0 = pAVar16" identifier = identifier) ;) (if_statement "if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }" if (parenthesized_expression "((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0))" ( (binary_expression "(iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)" (parenthesized_expression "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )) && (parenthesized_expression "(pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)" ( (binary_expression "pAVar16 != (ASN1_GENERALIZEDTIME *)0x0" identifier != (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }" { (expression_statement "local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;" (assignment_expression "local_9b8 = (ASN1_GENERALIZEDTIME *)0x0" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }" if (parenthesized_expression "(pXVar12 == (X509 *)0x0)" ( (binary_expression "pXVar12 == (X509 *)0x0" identifier == (cast_expression "(X509 *)0x0" ( (type_descriptor "X509 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00078208:\n        iVar38 = 0x5a;\n      }" { (labeled_statement "LAB_00078208:\n        iVar38 = 0x5a;" statement_identifier : (expression_statement "iVar38 = 0x5a;" (assignment_expression "iVar38 = 0x5a" identifier = number_literal) ;)) }) (else_clause "else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }" else (compound_statement "{\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }" { (expression_statement "pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);" (assignment_expression "pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12)" identifier = (cast_expression "(X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12)" ( (type_descriptor "X509_PUBKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get_X509_PUBKEY(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier ))))) ;) (expression_statement "iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);" (assignment_expression "iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0)" identifier = (call_expression "i2d_X509_PUBKEY(pXVar17,(uchar **)0x0)" identifier (argument_list "(pXVar17,(uchar **)0x0)" ( identifier , (cast_expression "(uchar **)0x0" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) (if_statement "if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;" if (parenthesized_expression "((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0))" ( (binary_expression "(iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)" (parenthesized_expression "(iVar38 < 1)" ( (binary_expression "iVar38 < 1" identifier < number_literal) )) || (parenthesized_expression "(pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)" ( (comma_expression "pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0" (assignment_expression "pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38)" identifier = (cast_expression "(ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38)" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(unaff_EBX + 0x39177))(iVar38)" (parenthesized_expression "(**(code **)(unaff_EBX + 0x39177))" ( (pointer_expression "**(code **)(unaff_EBX + 0x39177)" * (pointer_expression "*(code **)(unaff_EBX + 0x39177)" * (cast_expression "(code **)(unaff_EBX + 0x39177)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBX + 0x39177)" ( (binary_expression "unaff_EBX + 0x39177" identifier + number_literal) ))))) )) (argument_list "(iVar38)" ( identifier ))))) , (comma_expression "local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0" (assignment_expression "local_9b8 = pAVar18" identifier = identifier) , (binary_expression "pAVar18 == (ASN1_GENERALIZEDTIME *)0x0" identifier == (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ))) )) (goto_statement "goto LAB_00078208;" goto statement_identifier ;)) (expression_statement "pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);" (assignment_expression "pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12)" identifier = (cast_expression "(X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12)" ( (type_descriptor "X509_PUBKEY *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "X509_get_X509_PUBKEY(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier ))))) ;) (expression_statement "iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);" (assignment_expression "iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8)" identifier = (call_expression "i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8)" identifier (argument_list "(pXVar17,(uchar **)&local_9b8)" ( identifier , (cast_expression "(uchar **)&local_9b8" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_9b8" & identifier)) )))) ;) (if_statement "if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }" if (parenthesized_expression "((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           )" ( (binary_expression "(iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))" (parenthesized_expression "(iVar38 != iVar19)" ( (binary_expression "iVar38 != iVar19" identifier != identifier) )) || (parenthesized_expression "((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))" ( (parenthesized_expression "(local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18))" ( (binary_expression "local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)" (binary_expression "local_9b8 == (ASN1_GENERALIZEDTIME *)0x0" identifier == (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(iVar38 != (int)local_9b8 - (int)pAVar18)" ( (binary_expression "iVar38 != (int)local_9b8 - (int)pAVar18" identifier != (binary_expression "(int)local_9b8 - (int)pAVar18" (cast_expression "(int)local_9b8" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pAVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) ))) )) (compound_statement "{\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }" { (expression_statement "(**(code **)(unaff_EBX + 0x39173))(pAVar18);" (call_expression "(**(code **)(unaff_EBX + 0x39173))(pAVar18)" (parenthesized_expression "(**(code **)(unaff_EBX + 0x39173))" ( (pointer_expression "**(code **)(unaff_EBX + 0x39173)" * (pointer_expression "*(code **)(unaff_EBX + 0x39173)" * (cast_expression "(code **)(unaff_EBX + 0x39173)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBX + 0x39173)" ( (binary_expression "unaff_EBX + 0x39173" identifier + number_literal) ))))) )) (argument_list "(pAVar18)" ( identifier ))) ;) (goto_statement "goto LAB_00078208;" goto statement_identifier ;) })) (expression_statement "iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);" (assignment_expression "iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38)" identifier = (call_expression "FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38)" identifier (argument_list "(iVar4,pAVar16,pAVar18,iVar38)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "(**(code **)(unaff_EBX + 0x39173))(pAVar18);" (call_expression "(**(code **)(unaff_EBX + 0x39173))(pAVar18)" (parenthesized_expression "(**(code **)(unaff_EBX + 0x39173))" ( (pointer_expression "**(code **)(unaff_EBX + 0x39173)" * (pointer_expression "*(code **)(unaff_EBX + 0x39173)" * (cast_expression "(code **)(unaff_EBX + 0x39173)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_EBX + 0x39173)" ( (binary_expression "unaff_EBX + 0x39173" identifier + number_literal) ))))) )) (argument_list "(pAVar18)" ( identifier ))) ;) (if_statement "if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }" if (parenthesized_expression "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )) (compound_statement "{\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }" { (expression_statement "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" identifier = (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_00078230;" goto statement_identifier ;) })) }))) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x11577);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x11577)" identifier (argument_list "(iVar4,unaff_EBX + 0x11577)" ( identifier , (binary_expression "unaff_EBX + 0x11577" identifier + number_literal) ))) ;) (expression_statement "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" identifier = (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) })) (labeled_statement "LAB_00078230:\n    X509_free(pXVar12);" statement_identifier : (expression_statement "X509_free(pXVar12);" (call_expression "X509_free(pXVar12)" identifier (argument_list "(pXVar12)" ( identifier ))) ;)) (expression_statement "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_2 + 8) = 5;" (assignment_expression "*(undefined4 *)(param_2 + 8) = 5" (pointer_expression "*(undefined4 *)(param_2 + 8)" * (cast_expression "(undefined4 *)(param_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00078251;" goto statement_identifier ;) })) (expression_statement "iVar38 = *piVar9;" (assignment_expression "iVar38 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "lVar15 = SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc);" (assignment_expression "lVar15 = SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc)" identifier = (call_expression "SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc)" identifier (argument_list "(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc)" ( (pointer_expression "*(SSL **)(iVar28 + 4)" * (cast_expression "(SSL **)(iVar28 + 4)" ( (type_descriptor "SSL **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + 4)" ( (binary_expression "iVar28 + 4" identifier + number_literal) )))) , number_literal , number_literal , (pointer_expression "&local_9cc" & identifier) )))) ;) (if_statement "if (local_9cc == (int *)0x0) {\n    FUN_00027240(iVar38,unaff_EBX + 0x1058a);\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }\n  else {\n    local_9c8 = local_9cc;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }\n    iVar19 = OCSP_response_status(resp);\n    if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));\n    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  iVar38 = 0x5b;\n  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\nLAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }\n                    \n  FUN_0007c1a0();\n}" if (parenthesized_expression "(local_9cc == (int *)0x0)" ( (binary_expression "local_9cc == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00027240(iVar38,unaff_EBX + 0x1058a);\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }" { (expression_statement "FUN_00027240(iVar38,unaff_EBX + 0x1058a);" (call_expression "FUN_00027240(iVar38,unaff_EBX + 0x1058a)" identifier (argument_list "(iVar38,unaff_EBX + 0x1058a)" ( identifier , (binary_expression "unaff_EBX + 0x1058a" identifier + number_literal) ))) ;) (expression_statement "resp = (OCSP_RESPONSE *)0x0;" (assignment_expression "resp = (OCSP_RESPONSE *)0x0" identifier = (cast_expression "(OCSP_RESPONSE *)0x0" ( (type_descriptor "OCSP_RESPONSE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000795a6:\n    OCSP_RESPONSE_free(resp);" statement_identifier : (expression_statement "OCSP_RESPONSE_free(resp);" (call_expression "OCSP_RESPONSE_free(resp)" identifier (argument_list "(resp)" ( identifier ))) ;)) }) (else_clause "else {\n    local_9c8 = local_9cc;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }\n    iVar19 = OCSP_response_status(resp);\n    if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));\n    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  iVar38 = 0x5b;\n  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\nLAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }\n                    \n  FUN_0007c1a0();\n}" else (compound_statement "{\n    local_9c8 = local_9cc;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }\n    iVar19 = OCSP_response_status(resp);\n    if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));\n    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  iVar38 = 0x5b;\n  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\nLAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }\n                    \n  FUN_0007c1a0();\n}" { (expression_statement "local_9c8 = local_9cc;" (assignment_expression "local_9c8 = local_9cc" identifier = identifier) ;) (expression_statement "resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);" (assignment_expression "resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15)" identifier = (call_expression "d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15)" identifier (argument_list "((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15)" ( (cast_expression "(OCSP_RESPONSE **)0x0" ( (type_descriptor "OCSP_RESPONSE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(uchar **)&local_9c8" ( (type_descriptor "uchar **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_9c8" & identifier)) , identifier )))) ;) (if_statement "if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }" if (parenthesized_expression "(resp == (OCSP_RESPONSE *)0x0)" ( (binary_expression "resp == (OCSP_RESPONSE *)0x0" identifier == (cast_expression "(OCSP_RESPONSE *)0x0" ( (type_descriptor "OCSP_RESPONSE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }" { (labeled_statement "LAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);" statement_identifier : (expression_statement "FUN_00027240(iVar38,unaff_EBX + 0x105a4);" (call_expression "FUN_00027240(iVar38,unaff_EBX + 0x105a4)" identifier (argument_list "(iVar38,unaff_EBX + 0x105a4)" ( identifier , (binary_expression "unaff_EBX + 0x105a4" identifier + number_literal) ))) ;)) (goto_statement "goto LAB_000795a6;" goto statement_identifier ;) })) (expression_statement "iVar19 = OCSP_response_status(resp);" (assignment_expression "iVar19 = OCSP_response_status(resp)" identifier = (call_expression "OCSP_response_status(resp)" identifier (argument_list "(resp)" ( identifier )))) ;) (if_statement "if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }" { (expression_statement "pcVar30 = OCSP_response_status_str(iVar19);" (assignment_expression "pcVar30 = OCSP_response_status_str(iVar19)" identifier = (call_expression "OCSP_response_status_str(iVar19)" identifier (argument_list "(iVar19)" ( identifier )))) ;) (expression_statement "FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);" (call_expression "FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19)" identifier (argument_list "(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19)" ( identifier , (binary_expression "unaff_EBX + 0x114db" identifier + number_literal) , identifier , identifier ))) ;) (goto_statement "goto LAB_000795a6;" goto statement_identifier ;) })) (expression_statement "bs = OCSP_response_get1_basic(resp);" (assignment_expression "bs = OCSP_response_get1_basic(resp)" identifier = (call_expression "OCSP_response_get1_basic(resp)" identifier (argument_list "(resp)" ( identifier )))) ;) (if_statement "if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;" if (parenthesized_expression "(bs == (OCSP_BASICRESP *)0x0)" ( (binary_expression "bs == (OCSP_BASICRESP *)0x0" identifier == (cast_expression "(OCSP_BASICRESP *)0x0" ( (type_descriptor "OCSP_BASICRESP *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00079758;" goto statement_identifier ;)) (expression_statement "psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));" (assignment_expression "psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" identifier = (call_expression "SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" identifier (argument_list "(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" ( (pointer_expression "*(SSL **)(*(int *)(param_2 + 0xc) + 4)" * (cast_expression "(SSL **)(*(int *)(param_2 + 0xc) + 4)" ( (type_descriptor "SSL **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 4)" ( (binary_expression "*(int *)(param_2 + 0xc) + 4" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) )))) ;) (expression_statement "st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));" (assignment_expression "st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc))" identifier = (call_expression "SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc))" identifier (argument_list "((SSL_CTX *)**(undefined4 **)(param_2 + 0xc))" ( (cast_expression "(SSL_CTX *)**(undefined4 **)(param_2 + 0xc)" ( (type_descriptor "SSL_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(param_2 + 0xc)" * (pointer_expression "*(undefined4 **)(param_2 + 0xc)" * (cast_expression "(undefined4 **)(param_2 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))))) )))) ;) (expression_statement "iVar19 = OCSP_basic_verify(bs,psVar27,st,0);" (assignment_expression "iVar19 = OCSP_basic_verify(bs,psVar27,st,0)" identifier = (call_expression "OCSP_basic_verify(bs,psVar27,st,0)" identifier (argument_list "(bs,psVar27,st,0)" ( identifier , identifier , identifier , number_literal )))) ;) (if_statement "if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }" if (parenthesized_expression "(0 < iVar19)" ( (binary_expression "0 < iVar19" number_literal < identifier) )) (compound_statement "{\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }" { (for_statement "for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }" for ( (assignment_expression "iVar19 = 0" identifier = number_literal) ; (comma_expression "iVar28 = OCSP_resp_count(bs), iVar19 < iVar28" (assignment_expression "iVar28 = OCSP_resp_count(bs)" identifier = (call_expression "OCSP_resp_count(bs)" identifier (argument_list "(bs)" ( identifier )))) , (binary_expression "iVar19 < iVar28" identifier < identifier)) ; (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ) (compound_statement "{\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }" { (expression_statement "single = OCSP_resp_get0(bs,iVar19);" (assignment_expression "single = OCSP_resp_get0(bs,iVar19)" identifier = (call_expression "OCSP_resp_get0(bs,iVar19)" identifier (argument_list "(bs,iVar19)" ( identifier , identifier )))) ;) (if_statement "if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }" if (parenthesized_expression "(single != (OCSP_SINGLERESP *)0x0)" ( (binary_expression "single != (OCSP_SINGLERESP *)0x0" identifier != (cast_expression "(OCSP_SINGLERESP *)0x0" ( (type_descriptor "OCSP_SINGLERESP *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }" { (expression_statement "iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);" (assignment_expression "iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8)" identifier = (call_expression "OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8)" identifier (argument_list "(single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8)" ( identifier , (pointer_expression "&local_9c4" & identifier) , (pointer_expression "&local_9c0" & identifier) , (cast_expression "(ASN1_GENERALIZEDTIME **)&local_9bc" ( (type_descriptor "ASN1_GENERALIZEDTIME **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_9bc" & identifier)) , (pointer_expression "&local_9b8" & identifier) )))) ;) (expression_statement "iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);" (assignment_expression "iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1)" identifier = (call_expression "OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1)" identifier (argument_list "((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1)" ( (cast_expression "(ASN1_GENERALIZEDTIME *)local_9bc" ( (type_descriptor "ASN1_GENERALIZEDTIME *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }" { (expression_statement "FUN_00027240(iVar38,unaff_EBX + 0x105ba);" (call_expression "FUN_00027240(iVar38,unaff_EBX + 0x105ba)" identifier (argument_list "(iVar38,unaff_EBX + 0x105ba)" ( identifier , (binary_expression "unaff_EBX + 0x105ba" identifier + number_literal) ))) ;) }) (else_clause "else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }" else (compound_statement "{\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }" { (expression_statement "pcVar30 = OCSP_cert_status_str(iVar28);" (assignment_expression "pcVar30 = OCSP_cert_status_str(iVar28)" identifier = (call_expression "OCSP_cert_status_str(iVar28)" identifier (argument_list "(iVar28)" ( identifier )))) ;) (expression_statement "FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);" (call_expression "FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28)" identifier (argument_list "(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28)" ( identifier , (binary_expression "unaff_EBX + 0x11527" identifier + number_literal) , identifier , identifier ))) ;) (if_statement "if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;" if (parenthesized_expression "(iVar28 == 1)" ( (binary_expression "iVar28 == 1" identifier == number_literal) )) (compound_statement "{\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }" { (expression_statement "pcVar30 = OCSP_crl_reason_str(local_9c4);" (assignment_expression "pcVar30 = OCSP_crl_reason_str(local_9c4)" identifier = (call_expression "OCSP_crl_reason_str(local_9c4)" identifier (argument_list "(local_9c4)" ( identifier )))) ;) (expression_statement "FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);" (call_expression "FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4)" identifier (argument_list "(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4)" ( identifier , (binary_expression "unaff_EBX + 0x1154b" identifier + number_literal) , identifier , identifier ))) ;) }) (else_clause "else if (iVar28 != 2) goto LAB_00079488;" else (if_statement "if (iVar28 != 2) goto LAB_00079488;" if (parenthesized_expression "(iVar28 != 2)" ( (binary_expression "iVar28 != 2" identifier != number_literal) )) (goto_statement "goto LAB_00079488;" goto statement_identifier ;)))) }))) (expression_statement "OCSP_BASICRESP_free(bs);" (call_expression "OCSP_BASICRESP_free(bs)" identifier (argument_list "(bs)" ( identifier ))) ;) (expression_statement "OCSP_RESPONSE_free(resp);" (call_expression "OCSP_RESPONSE_free(resp)" identifier (argument_list "(resp)" ( identifier ))) ;) (goto_statement "goto LAB_00078c7e;" goto statement_identifier ;) })) (labeled_statement "LAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);" statement_identifier : (ERROR "}" }) (expression_statement "OCSP_BASICRESP_free(bs);" (call_expression "OCSP_BASICRESP_free(bs)" identifier (argument_list "(bs)" ( identifier ))) ;)) (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" identifier = number_literal) ;) (expression_statement "OCSP_RESPONSE_free(resp);" (call_expression "OCSP_RESPONSE_free(resp)" identifier (argument_list "(resp)" ( identifier ))) ;) (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" identifier = (subscript_expression "piVar9[0x3a]" identifier [ number_literal ])) ;) (expression_statement "iVar28 = *(int *)(param_2 + 0xc);" (assignment_expression "iVar28 = *(int *)(param_2 + 0xc)" identifier = (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0007814e;" goto statement_identifier ;) })) (expression_statement "FUN_00027240(iVar38,unaff_EBX + 0x11503);" (call_expression "FUN_00027240(iVar38,unaff_EBX + 0x11503)" identifier (argument_list "(iVar38,unaff_EBX + 0x11503)" ( identifier , (binary_expression "unaff_EBX + 0x11503" identifier + number_literal) ))) ;) (expression_statement "OCSP_BASICRESP_free(bs);" (call_expression "OCSP_BASICRESP_free(bs)" identifier (argument_list "(bs)" ( identifier ))) ;) (expression_statement "OCSP_RESPONSE_free(resp);" (call_expression "OCSP_RESPONSE_free(resp)" identifier (argument_list "(resp)" ( identifier ))) ;) })) (labeled_statement "LAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));" statement_identifier : (expression_statement "X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));" (call_expression "X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" identifier (argument_list "(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" ( (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "X509 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) ))) ;)) (expression_statement "iVar38 = 0x5b;" (assignment_expression "iVar38 = 0x5b" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" * (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" ( (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }" statement_identifier : (if_statement "if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }" if (parenthesized_expression "(local_24 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_24 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar38;\n  }" { (return_statement "return iVar38;" return identifier ;) }))) (expression_statement "FUN_0007c1a0();" (call_expression "FUN_0007c1a0()" identifier (argument_list "()" ( ))) ;) }))) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 (pointer_declarator * 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) + LIT) )) * LIT) + LIT) ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + IDENT) + LIT) ))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (field_expression IDENT -> field_identifier)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT -> field_identifier) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (binary_expression (parenthesized_expression ( IDENT )) * IDENT) ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (field_expression IDENT -> field_identifier)) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (field_expression IDENT -> field_identifier)) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (for_statement for ( ; (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT < IDENT)) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + LIT) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT))) , (binary_expression IDENT + LIT) , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (field_expression IDENT -> field_identifier)) ;)) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * IDENT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + IDENT) + LIT) ))) , (binary_expression (parenthesized_expression ( IDENT )) * IDENT) ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) + LIT) )) * LIT) + LIT) ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (unary_expression ~ (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) ))))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) & LIT) )) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ))))) ;) (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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) }))) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) ;) }) while (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression IDENT -> field_identifier))) + LIT) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + IDENT) ))) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression IDENT -> field_identifier))) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression IDENT -> field_identifier)))) )))) = (char_literal ' escape_sequence ')) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT)) , IDENT ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) })) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT == LIT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier))) + IDENT) + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (unary_expression ! IDENT) )) && (parenthesized_expression ( (unary_expression ! IDENT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) + LIT) )) * LIT) + LIT) ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) + LIT) )) * LIT) + LIT) ]) == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) + LIT) )) * LIT) + LIT) ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) + LIT) )) * LIT) + LIT) ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) + LIT) )) * LIT) + LIT) ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) + LIT) )) * LIT) + LIT) ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) + LIT) )) * LIT) + LIT) ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) + LIT) )) * LIT) + LIT) ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) + LIT) )) * LIT) + LIT) ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) }))) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) + LIT) )) * LIT) + LIT) ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) + LIT) )) * LIT) + LIT) ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (parenthesized_expression ( (binary_expression IDENT != (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT)) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (for_statement for ( (assignment_expression IDENT = LIT) ; (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT < IDENT)) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT)) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , 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 (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)))) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (ERROR }) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) })))
(function_definition "int __regparm3 FUN_00077ef0(undefined4 param_1,int param_2,char param_3)\n\n{\n  char *pcVar1;\n  byte *pbVar2;\n  char cVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  uint uVar8;\n  int *piVar9;\n  BIO_METHOD *pBVar10;\n  BIO *pBVar11;\n  X509 *pXVar12;\n  undefined1 *puVar13;\n  ASN1_TIME *pAVar14;\n  long lVar15;\n  ASN1_GENERALIZEDTIME *pAVar16;\n  X509_PUBKEY *pXVar17;\n  ASN1_GENERALIZEDTIME *pAVar18;\n  int iVar19;\n  GENERAL_NAMES *a;\n  char *pcVar20;\n  int *piVar21;\n  undefined1 *puVar22;\n  BIO *out;\n  undefined4 uVar23;\n  ASN1_INTEGER *pAVar24;\n  X509_EXTENSION *ex;\n  BIO *out_00;\n  ASN1_OBJECT *a_00;\n  uint uVar25;\n  uint uVar26;\n  OCSP_RESPONSE *resp;\n  OCSP_BASICRESP *bs;\n  stack_st_X509 *psVar27;\n  X509_STORE *st;\n  int iVar28;\n  OCSP_SINGLERESP *single;\n  int iVar29;\n  char *pcVar30;\n  EVP_PKEY *pkey;\n  ASN1_OCTET_STRING *v;\n  X509_NAME *pXVar31;\n  ASN1_GENERALIZEDTIME *pAVar32;\n  size_t sVar33;\n  X509_NAME_ENTRY *ne;\n  ASN1_STRING *pAVar34;\n  size_t sVar35;\n  ASN1_GENERALIZEDTIME *pAVar36;\n  void *pvVar37;\n  ulong e;\n  int iVar38;\n  uint uVar39;\n  ASN1_GENERALIZEDTIME *extraout_EDX;\n  int unaff_EBX;\n  undefined4 *puVar40;\n  char *pcVar41;\n  int in_GS_OFFSET;\n  byte bVar42;\n  X509 *local_a48;\n  int local_a44;\n  char *local_a30;\n  int local_a2c;\n  char *local_a28;\n  int local_a24;\n  ASN1_GENERALIZEDTIME *local_a20;\n  int local_a1c;\n  ASN1_GENERALIZEDTIME *local_a14;\n  ASN1_GENERALIZEDTIME *local_a10;\n  long *local_9f8;\n  ASN1_GENERALIZEDTIME *local_9d0;\n  int *local_9cc;\n  int *local_9c8;\n  long local_9c4;\n  ASN1_GENERALIZEDTIME *local_9c0;\n  BIGNUM *local_9bc;\n  ASN1_GENERALIZEDTIME *local_9b8;\n  char local_9b4 [16];\n  char local_9a4 [128];\n  char local_924 [4];\n  undefined4 local_920 [63];\n  undefined1 local_824 [512];\n  undefined1 auStack_624 [1536];\n  int local_24;\n  undefined4 uStack_14;\n  \n  bVar42 = 0;\n  uStack_14 = 0x77ef9;\n  piVar9 = (int *)entry();\n  iVar4 = *piVar9;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar40 = local_920;\n  for (iVar38 = 0x3f; iVar38 != 0; iVar38 = iVar38 + -1) {\n    *puVar40 = 0;\n    puVar40 = puVar40 + (uint)bVar42 * -2 + 1;\n  }\n  local_924[0] = '\0';\n  local_924[1] = '\0';\n  local_924[2] = '\0';\n  local_924[3] = '\0';\n  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    local_9f8 = (long *)(iVar4 + 0x8b4);\n  }\n  else {\n    local_9f8 = (long *)(iVar4 + 0x850);\n  }\n  pBVar10 = BIO_s_mem();\n  pBVar11 = BIO_new(pBVar10);\n  if (*(char *)(iVar4 + 0x864) != '\0') {\n    iVar38 = *piVar9;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }\n  }\n  iVar38 = *(int *)(param_2 + 0xc);\n  pXVar12 = SSL_get_peer_certificate(*(SSL **)(iVar38 + 4));\n  *(X509 **)(iVar38 + 8) = pXVar12;\n  if (*(int *)(*(int *)(param_2 + 0xc) + 8) == 0) {\n    iVar38 = 0;\n    BIO_free(pBVar11);\n    if (param_3 != '\0') {\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }\n    goto LAB_00078251;\n  }\n  iVar38 = unaff_EBX + 0x5eef;\n  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    iVar38 = unaff_EBX + 0x5ee9;\n  }\n  FUN_00027140(iVar4,unaff_EBX + 0x104d2,iVar38);\n  X509_get_subject_name(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  puVar22 = local_824;\n  iVar38 = FUN_00077df0();\n  puVar13 = (undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX);\n  if (iVar38 == 0) {\n    puVar13 = puVar22;\n  }\n  FUN_00027140(iVar4,unaff_EBX + 0x104e3,puVar13);\n  pAVar14 = (ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));\n  ASN1_TIME_print(pBVar11,pAVar14);\n  lVar15 = BIO_ctrl(pBVar11,3,0,&local_9d0);\n  FUN_00027140(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0);\n  BIO_ctrl(pBVar11,1,0,(void *)0x0);\n  pAVar14 = (ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));\n  ASN1_TIME_print(pBVar11,pAVar14);\n  pAVar16 = (ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0);\n  pcVar30 = (char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX);\n  local_a10 = local_9d0;\n  FUN_00027140(iVar4,pcVar30,pAVar16,local_9d0);\n  BIO_ctrl(pBVar11,1,0,(void *)0x0);\n  BIO_free(pBVar11);\n  local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n  if (piVar9[0x3a] != 2) {\n    if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;\n    local_a1c = *piVar9;\nLAB_00078282:\n    local_a30 = (char *)piVar9[0x25];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];\nLAB_0007829a:\n    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }\n    local_a28 = local_9b4;\n    pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;\n    pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);\n    local_a10 = pAVar18;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\n    else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_000794d2:\n    iVar38 = 0x3c;\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    goto LAB_00078251;\n  }\n  if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) {\n    if (*(char *)((int)piVar9 + 0x201) != '\0') {\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }\n  else if (*(char *)((int)piVar9 + 0x229) != '\0') {\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }\nLAB_000780f3:\n  X509_get_issuer_name(local_a48);\n  iVar38 = FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10);\n  if (iVar38 == 0) {\n    FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);\n    if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }\n    else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }\n    if (iVar38 != 0) {\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    *local_9f8 = lVar15;\n    if (lVar15 == 0) {\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }\n    else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }\n  }\n  else if (param_3 == '\0') {\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }\n  else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }\n  if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    cVar3 = *(char *)((int)piVar9 + 0x22a);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  else {\n    cVar3 = *(char *)((int)piVar9 + 0x202);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  if (cVar3 == '\0') {\nLAB_0007814e:\n    if (param_3 == '\0') {\n      iVar38 = 0;\n    }\n    if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }\n    else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }\n    pXVar12 = *(X509 **)(iVar28 + 8);\n    local_9d0 = pAVar16;\n    if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_00078230:\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    *(undefined4 *)(param_2 + 8) = 5;\n    goto LAB_00078251;\n  }\n  iVar38 = *piVar9;\n  lVar15 = SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc);\n  if (local_9cc == (int *)0x0) {\n    FUN_00027240(iVar38,unaff_EBX + 0x1058a);\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }\n  else {\n    local_9c8 = local_9cc;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }\n    iVar19 = OCSP_response_status(resp);\n    if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));\n    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  iVar38 = 0x5b;\n  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\nLAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }\n                    \n  FUN_0007c1a0();\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00077ef0(undefined4 param_1,int param_2,char param_3)" (identifier "FUN_00077ef0") (parameter_list "(undefined4 param_1,int param_2,char param_3)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "char param_3" (primitive_type "char") (identifier "param_3")) () ")"))) (compound_statement "{\n  char *pcVar1;\n  byte *pbVar2;\n  char cVar3;\n  int iVar4;\n  bool bVar5;\n  bool bVar6;\n  bool bVar7;\n  uint uVar8;\n  int *piVar9;\n  BIO_METHOD *pBVar10;\n  BIO *pBVar11;\n  X509 *pXVar12;\n  undefined1 *puVar13;\n  ASN1_TIME *pAVar14;\n  long lVar15;\n  ASN1_GENERALIZEDTIME *pAVar16;\n  X509_PUBKEY *pXVar17;\n  ASN1_GENERALIZEDTIME *pAVar18;\n  int iVar19;\n  GENERAL_NAMES *a;\n  char *pcVar20;\n  int *piVar21;\n  undefined1 *puVar22;\n  BIO *out;\n  undefined4 uVar23;\n  ASN1_INTEGER *pAVar24;\n  X509_EXTENSION *ex;\n  BIO *out_00;\n  ASN1_OBJECT *a_00;\n  uint uVar25;\n  uint uVar26;\n  OCSP_RESPONSE *resp;\n  OCSP_BASICRESP *bs;\n  stack_st_X509 *psVar27;\n  X509_STORE *st;\n  int iVar28;\n  OCSP_SINGLERESP *single;\n  int iVar29;\n  char *pcVar30;\n  EVP_PKEY *pkey;\n  ASN1_OCTET_STRING *v;\n  X509_NAME *pXVar31;\n  ASN1_GENERALIZEDTIME *pAVar32;\n  size_t sVar33;\n  X509_NAME_ENTRY *ne;\n  ASN1_STRING *pAVar34;\n  size_t sVar35;\n  ASN1_GENERALIZEDTIME *pAVar36;\n  void *pvVar37;\n  ulong e;\n  int iVar38;\n  uint uVar39;\n  ASN1_GENERALIZEDTIME *extraout_EDX;\n  int unaff_EBX;\n  undefined4 *puVar40;\n  char *pcVar41;\n  int in_GS_OFFSET;\n  byte bVar42;\n  X509 *local_a48;\n  int local_a44;\n  char *local_a30;\n  int local_a2c;\n  char *local_a28;\n  int local_a24;\n  ASN1_GENERALIZEDTIME *local_a20;\n  int local_a1c;\n  ASN1_GENERALIZEDTIME *local_a14;\n  ASN1_GENERALIZEDTIME *local_a10;\n  long *local_9f8;\n  ASN1_GENERALIZEDTIME *local_9d0;\n  int *local_9cc;\n  int *local_9c8;\n  long local_9c4;\n  ASN1_GENERALIZEDTIME *local_9c0;\n  BIGNUM *local_9bc;\n  ASN1_GENERALIZEDTIME *local_9b8;\n  char local_9b4 [16];\n  char local_9a4 [128];\n  char local_924 [4];\n  undefined4 local_920 [63];\n  undefined1 local_824 [512];\n  undefined1 auStack_624 [1536];\n  int local_24;\n  undefined4 uStack_14;\n  \n  bVar42 = 0;\n  uStack_14 = 0x77ef9;\n  piVar9 = (int *)entry();\n  iVar4 = *piVar9;\n  local_24 = *(int *)(in_GS_OFFSET + 0x14);\n  puVar40 = local_920;\n  for (iVar38 = 0x3f; iVar38 != 0; iVar38 = iVar38 + -1) {\n    *puVar40 = 0;\n    puVar40 = puVar40 + (uint)bVar42 * -2 + 1;\n  }\n  local_924[0] = '\0';\n  local_924[1] = '\0';\n  local_924[2] = '\0';\n  local_924[3] = '\0';\n  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    local_9f8 = (long *)(iVar4 + 0x8b4);\n  }\n  else {\n    local_9f8 = (long *)(iVar4 + 0x850);\n  }\n  pBVar10 = BIO_s_mem();\n  pBVar11 = BIO_new(pBVar10);\n  if (*(char *)(iVar4 + 0x864) != '\0') {\n    iVar38 = *piVar9;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }\n  }\n  iVar38 = *(int *)(param_2 + 0xc);\n  pXVar12 = SSL_get_peer_certificate(*(SSL **)(iVar38 + 4));\n  *(X509 **)(iVar38 + 8) = pXVar12;\n  if (*(int *)(*(int *)(param_2 + 0xc) + 8) == 0) {\n    iVar38 = 0;\n    BIO_free(pBVar11);\n    if (param_3 != '\0') {\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }\n    goto LAB_00078251;\n  }\n  iVar38 = unaff_EBX + 0x5eef;\n  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    iVar38 = unaff_EBX + 0x5ee9;\n  }\n  FUN_00027140(iVar4,unaff_EBX + 0x104d2,iVar38);\n  X509_get_subject_name(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  puVar22 = local_824;\n  iVar38 = FUN_00077df0();\n  puVar13 = (undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX);\n  if (iVar38 == 0) {\n    puVar13 = puVar22;\n  }\n  FUN_00027140(iVar4,unaff_EBX + 0x104e3,puVar13);\n  pAVar14 = (ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));\n  ASN1_TIME_print(pBVar11,pAVar14);\n  lVar15 = BIO_ctrl(pBVar11,3,0,&local_9d0);\n  FUN_00027140(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0);\n  BIO_ctrl(pBVar11,1,0,(void *)0x0);\n  pAVar14 = (ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));\n  ASN1_TIME_print(pBVar11,pAVar14);\n  pAVar16 = (ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0);\n  pcVar30 = (char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX);\n  local_a10 = local_9d0;\n  FUN_00027140(iVar4,pcVar30,pAVar16,local_9d0);\n  BIO_ctrl(pBVar11,1,0,(void *)0x0);\n  BIO_free(pBVar11);\n  local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n  if (piVar9[0x3a] != 2) {\n    if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;\n    local_a1c = *piVar9;\nLAB_00078282:\n    local_a30 = (char *)piVar9[0x25];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];\nLAB_0007829a:\n    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }\n    local_a28 = local_9b4;\n    pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;\n    pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);\n    local_a10 = pAVar18;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\n    else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_000794d2:\n    iVar38 = 0x3c;\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    goto LAB_00078251;\n  }\n  if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) {\n    if (*(char *)((int)piVar9 + 0x201) != '\0') {\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }\n  else if (*(char *)((int)piVar9 + 0x229) != '\0') {\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }\nLAB_000780f3:\n  X509_get_issuer_name(local_a48);\n  iVar38 = FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10);\n  if (iVar38 == 0) {\n    FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);\n    if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }\n    else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }\n    if (iVar38 != 0) {\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    *local_9f8 = lVar15;\n    if (lVar15 == 0) {\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }\n    else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }\n  }\n  else if (param_3 == '\0') {\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }\n  else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }\n  if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    cVar3 = *(char *)((int)piVar9 + 0x22a);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  else {\n    cVar3 = *(char *)((int)piVar9 + 0x202);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  if (cVar3 == '\0') {\nLAB_0007814e:\n    if (param_3 == '\0') {\n      iVar38 = 0;\n    }\n    if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }\n    else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }\n    pXVar12 = *(X509 **)(iVar28 + 8);\n    local_9d0 = pAVar16;\n    if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_00078230:\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    *(undefined4 *)(param_2 + 8) = 5;\n    goto LAB_00078251;\n  }\n  iVar38 = *piVar9;\n  lVar15 = SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc);\n  if (local_9cc == (int *)0x0) {\n    FUN_00027240(iVar38,unaff_EBX + 0x1058a);\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }\n  else {\n    local_9c8 = local_9cc;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }\n    iVar19 = OCSP_response_status(resp);\n    if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));\n    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  iVar38 = 0x5b;\n  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\nLAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }\n                    \n  FUN_0007c1a0();\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "byte *pbVar2;" (type_identifier "byte") (pointer_declarator "*pbVar2" (* "*") (identifier "pbVar2")) (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "bool bVar5;" (primitive_type "bool") (identifier "bVar5") (; ";")) (declaration "bool bVar6;" (primitive_type "bool") (identifier "bVar6") (; ";")) (declaration "bool bVar7;" (primitive_type "bool") (identifier "bVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "BIO_METHOD *pBVar10;" (type_identifier "BIO_METHOD") (pointer_declarator "*pBVar10" (* "*") (identifier "pBVar10")) (; ";")) (declaration "BIO *pBVar11;" (type_identifier "BIO") (pointer_declarator "*pBVar11" (* "*") (identifier "pBVar11")) (; ";")) (declaration "X509 *pXVar12;" (type_identifier "X509") (pointer_declarator "*pXVar12" (* "*") (identifier "pXVar12")) (; ";")) (declaration "undefined1 *puVar13;" (type_identifier "undefined1") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "ASN1_TIME *pAVar14;" (type_identifier "ASN1_TIME") (pointer_declarator "*pAVar14" (* "*") (identifier "pAVar14")) (; ";")) (declaration "long lVar15;" (sized_type_specifier "long" (long "long")) (identifier "lVar15") (; ";")) (declaration "ASN1_GENERALIZEDTIME *pAVar16;" (type_identifier "ASN1_GENERALIZEDTIME") (pointer_declarator "*pAVar16" (* "*") (identifier "pAVar16")) (; ";")) (declaration "X509_PUBKEY *pXVar17;" (type_identifier "X509_PUBKEY") (pointer_declarator "*pXVar17" (* "*") (identifier "pXVar17")) (; ";")) (declaration "ASN1_GENERALIZEDTIME *pAVar18;" (type_identifier "ASN1_GENERALIZEDTIME") (pointer_declarator "*pAVar18" (* "*") (identifier "pAVar18")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "GENERAL_NAMES *a;" (type_identifier "GENERAL_NAMES") (pointer_declarator "*a" (* "*") (identifier "a")) (; ";")) (declaration "char *pcVar20;" (primitive_type "char") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "int *piVar21;" (primitive_type "int") (pointer_declarator "*piVar21" (* "*") (identifier "piVar21")) (; ";")) (declaration "undefined1 *puVar22;" (type_identifier "undefined1") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "BIO *out;" (type_identifier "BIO") (pointer_declarator "*out" (* "*") (identifier "out")) (; ";")) (declaration "undefined4 uVar23;" (type_identifier "undefined4") (identifier "uVar23") (; ";")) (declaration "ASN1_INTEGER *pAVar24;" (type_identifier "ASN1_INTEGER") (pointer_declarator "*pAVar24" (* "*") (identifier "pAVar24")) (; ";")) (declaration "X509_EXTENSION *ex;" (type_identifier "X509_EXTENSION") (pointer_declarator "*ex" (* "*") (identifier "ex")) (; ";")) (declaration "BIO *out_00;" (type_identifier "BIO") (pointer_declarator "*out_00" (* "*") (identifier "out_00")) (; ";")) (declaration "ASN1_OBJECT *a_00;" (type_identifier "ASN1_OBJECT") (pointer_declarator "*a_00" (* "*") (identifier "a_00")) (; ";")) (declaration "uint uVar25;" (type_identifier "uint") (identifier "uVar25") (; ";")) (declaration "uint uVar26;" (type_identifier "uint") (identifier "uVar26") (; ";")) (declaration "OCSP_RESPONSE *resp;" (type_identifier "OCSP_RESPONSE") (pointer_declarator "*resp" (* "*") (identifier "resp")) (; ";")) (declaration "OCSP_BASICRESP *bs;" (type_identifier "OCSP_BASICRESP") (pointer_declarator "*bs" (* "*") (identifier "bs")) (; ";")) (declaration "stack_st_X509 *psVar27;" (type_identifier "stack_st_X509") (pointer_declarator "*psVar27" (* "*") (identifier "psVar27")) (; ";")) (declaration "X509_STORE *st;" (type_identifier "X509_STORE") (pointer_declarator "*st" (* "*") (identifier "st")) (; ";")) (declaration "int iVar28;" (primitive_type "int") (identifier "iVar28") (; ";")) (declaration "OCSP_SINGLERESP *single;" (type_identifier "OCSP_SINGLERESP") (pointer_declarator "*single" (* "*") (identifier "single")) (; ";")) (declaration "int iVar29;" (primitive_type "int") (identifier "iVar29") (; ";")) (declaration "char *pcVar30;" (primitive_type "char") (pointer_declarator "*pcVar30" (* "*") (identifier "pcVar30")) (; ";")) (declaration "EVP_PKEY *pkey;" (type_identifier "EVP_PKEY") (pointer_declarator "*pkey" (* "*") (identifier "pkey")) (; ";")) (declaration "ASN1_OCTET_STRING *v;" (type_identifier "ASN1_OCTET_STRING") (pointer_declarator "*v" (* "*") (identifier "v")) (; ";")) (declaration "X509_NAME *pXVar31;" (type_identifier "X509_NAME") (pointer_declarator "*pXVar31" (* "*") (identifier "pXVar31")) (; ";")) (declaration "ASN1_GENERALIZEDTIME *pAVar32;" (type_identifier "ASN1_GENERALIZEDTIME") (pointer_declarator "*pAVar32" (* "*") (identifier "pAVar32")) (; ";")) (declaration "size_t sVar33;" (primitive_type "size_t") (identifier "sVar33") (; ";")) (declaration "X509_NAME_ENTRY *ne;" (type_identifier "X509_NAME_ENTRY") (pointer_declarator "*ne" (* "*") (identifier "ne")) (; ";")) (declaration "ASN1_STRING *pAVar34;" (type_identifier "ASN1_STRING") (pointer_declarator "*pAVar34" (* "*") (identifier "pAVar34")) (; ";")) (declaration "size_t sVar35;" (primitive_type "size_t") (identifier "sVar35") (; ";")) (declaration "ASN1_GENERALIZEDTIME *pAVar36;" (type_identifier "ASN1_GENERALIZEDTIME") (pointer_declarator "*pAVar36" (* "*") (identifier "pAVar36")) (; ";")) (declaration "void *pvVar37;" (primitive_type "void") (pointer_declarator "*pvVar37" (* "*") (identifier "pvVar37")) (; ";")) (declaration "ulong e;" (type_identifier "ulong") (identifier "e") (; ";")) (declaration "int iVar38;" (primitive_type "int") (identifier "iVar38") (; ";")) (declaration "uint uVar39;" (type_identifier "uint") (identifier "uVar39") (; ";")) (declaration "ASN1_GENERALIZEDTIME *extraout_EDX;" (type_identifier "ASN1_GENERALIZEDTIME") (pointer_declarator "*extraout_EDX" (* "*") (identifier "extraout_EDX")) (; ";")) (declaration "int unaff_EBX;" (primitive_type "int") (identifier "unaff_EBX") (; ";")) (declaration "undefined4 *puVar40;" (type_identifier "undefined4") (pointer_declarator "*puVar40" (* "*") (identifier "puVar40")) (; ";")) (declaration "char *pcVar41;" (primitive_type "char") (pointer_declarator "*pcVar41" (* "*") (identifier "pcVar41")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "byte bVar42;" (type_identifier "byte") (identifier "bVar42") (; ";")) (declaration "X509 *local_a48;" (type_identifier "X509") (pointer_declarator "*local_a48" (* "*") (identifier "local_a48")) (; ";")) (declaration "int local_a44;" (primitive_type "int") (identifier "local_a44") (; ";")) (declaration "char *local_a30;" (primitive_type "char") (pointer_declarator "*local_a30" (* "*") (identifier "local_a30")) (; ";")) (declaration "int local_a2c;" (primitive_type "int") (identifier "local_a2c") (; ";")) (declaration "char *local_a28;" (primitive_type "char") (pointer_declarator "*local_a28" (* "*") (identifier "local_a28")) (; ";")) (declaration "int local_a24;" (primitive_type "int") (identifier "local_a24") (; ";")) (declaration "ASN1_GENERALIZEDTIME *local_a20;" (type_identifier "ASN1_GENERALIZEDTIME") (pointer_declarator "*local_a20" (* "*") (identifier "local_a20")) (; ";")) (declaration "int local_a1c;" (primitive_type "int") (identifier "local_a1c") (; ";")) (declaration "ASN1_GENERALIZEDTIME *local_a14;" (type_identifier "ASN1_GENERALIZEDTIME") (pointer_declarator "*local_a14" (* "*") (identifier "local_a14")) (; ";")) (declaration "ASN1_GENERALIZEDTIME *local_a10;" (type_identifier "ASN1_GENERALIZEDTIME") (pointer_declarator "*local_a10" (* "*") (identifier "local_a10")) (; ";")) (declaration "long *local_9f8;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_9f8" (* "*") (identifier "local_9f8")) (; ";")) (declaration "ASN1_GENERALIZEDTIME *local_9d0;" (type_identifier "ASN1_GENERALIZEDTIME") (pointer_declarator "*local_9d0" (* "*") (identifier "local_9d0")) (; ";")) (declaration "int *local_9cc;" (primitive_type "int") (pointer_declarator "*local_9cc" (* "*") (identifier "local_9cc")) (; ";")) (declaration "int *local_9c8;" (primitive_type "int") (pointer_declarator "*local_9c8" (* "*") (identifier "local_9c8")) (; ";")) (declaration "long local_9c4;" (sized_type_specifier "long" (long "long")) (identifier "local_9c4") (; ";")) (declaration "ASN1_GENERALIZEDTIME *local_9c0;" (type_identifier "ASN1_GENERALIZEDTIME") (pointer_declarator "*local_9c0" (* "*") (identifier "local_9c0")) (; ";")) (declaration "BIGNUM *local_9bc;" (type_identifier "BIGNUM") (pointer_declarator "*local_9bc" (* "*") (identifier "local_9bc")) (; ";")) (declaration "ASN1_GENERALIZEDTIME *local_9b8;" (type_identifier "ASN1_GENERALIZEDTIME") (pointer_declarator "*local_9b8" (* "*") (identifier "local_9b8")) (; ";")) (declaration "char local_9b4 [16];" (primitive_type "char") (array_declarator "local_9b4 [16]" (identifier "local_9b4") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "char local_9a4 [128];" (primitive_type "char") (array_declarator "local_9a4 [128]" (identifier "local_9a4") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "char local_924 [4];" (primitive_type "char") (array_declarator "local_924 [4]" (identifier "local_924") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined4 local_920 [63];" (type_identifier "undefined4") (array_declarator "local_920 [63]" (identifier "local_920") ([ "[") (number_literal "63") (] "]")) (; ";")) (declaration "undefined1 local_824 [512];" (type_identifier "undefined1") (array_declarator "local_824 [512]" (identifier "local_824") ([ "[") (number_literal "512") (] "]")) (; ";")) (declaration "undefined1 auStack_624 [1536];" (type_identifier "undefined1") (array_declarator "auStack_624 [1536]" (identifier "auStack_624") ([ "[") (number_literal "1536") (] "]")) (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar42 = 0;" (assignment_expression "bVar42 = 0" (identifier "bVar42") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x77ef9;" (assignment_expression "uStack_14 = 0x77ef9" (identifier "uStack_14") (= "=") (number_literal "0x77ef9")) (; ";")) (expression_statement "piVar9 = (int *)entry();" (assignment_expression "piVar9 = (int *)entry()" (identifier "piVar9") (= "=") (cast_expression "(int *)entry()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "entry()" (identifier "entry") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar4 = *piVar9;" (assignment_expression "iVar4 = *piVar9" (identifier "iVar4") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (expression_statement "local_24 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_24 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_24") (= "=") (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 "puVar40 = local_920;" (assignment_expression "puVar40 = local_920" (identifier "puVar40") (= "=") (identifier "local_920")) (; ";")) (for_statement "for (iVar38 = 0x3f; iVar38 != 0; iVar38 = iVar38 + -1) {\n    *puVar40 = 0;\n    puVar40 = puVar40 + (uint)bVar42 * -2 + 1;\n  }" (for "for") (( "(") (assignment_expression "iVar38 = 0x3f" (identifier "iVar38") (= "=") (number_literal "0x3f")) (; ";") (binary_expression "iVar38 != 0" (identifier "iVar38") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar38 = iVar38 + -1" (identifier "iVar38") (= "=") (binary_expression "iVar38 + -1" (identifier "iVar38") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n    *puVar40 = 0;\n    puVar40 = puVar40 + (uint)bVar42 * -2 + 1;\n  }" ({ "{") (expression_statement "*puVar40 = 0;" (assignment_expression "*puVar40 = 0" (pointer_expression "*puVar40" (* "*") (identifier "puVar40")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar40 = puVar40 + (uint)bVar42 * -2 + 1;" (assignment_expression "puVar40 = puVar40 + (uint)bVar42 * -2 + 1" (identifier "puVar40") (= "=") (binary_expression "puVar40 + (uint)bVar42 * -2 + 1" (binary_expression "puVar40 + (uint)bVar42 * -2" (identifier "puVar40") (+ "+") (binary_expression "(uint)bVar42 * -2" (cast_expression "(uint)bVar42" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar42")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_924[0] = '\0';" (assignment_expression "local_924[0] = '\0'" (subscript_expression "local_924[0]" (identifier "local_924") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_924[1] = '\0';" (assignment_expression "local_924[1] = '\0'" (subscript_expression "local_924[1]" (identifier "local_924") ([ "[") (number_literal "1") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_924[2] = '\0';" (assignment_expression "local_924[2] = '\0'" (subscript_expression "local_924[2]" (identifier "local_924") ([ "[") (number_literal "2") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_924[3] = '\0';" (assignment_expression "local_924[3] = '\0'" (subscript_expression "local_924[3]" (identifier "local_924") ([ "[") (number_literal "3") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    local_9f8 = (long *)(iVar4 + 0x8b4);\n  }\n  else {\n    local_9f8 = (long *)(iVar4 + 0x850);\n  }" (if "if") (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" (( "(") (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" (( "(") (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" (identifier "piVar9") ([ "[") (number_literal "0x3a") (] "]")) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (( "(") (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" (identifier "piVar9") ([ "[") (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" (( "(") (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" (( "(") (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" (identifier "piVar9") ([ "[") (number_literal "0x65") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (+ "+") (number_literal "0x1d")) () ")")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n    local_9f8 = (long *)(iVar4 + 0x8b4);\n  }" ({ "{") (expression_statement "local_9f8 = (long *)(iVar4 + 0x8b4);" (assignment_expression "local_9f8 = (long *)(iVar4 + 0x8b4)" (identifier "local_9f8") (= "=") (cast_expression "(long *)(iVar4 + 0x8b4)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x8b4)" (( "(") (binary_expression "iVar4 + 0x8b4" (identifier "iVar4") (+ "+") (number_literal "0x8b4")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    local_9f8 = (long *)(iVar4 + 0x850);\n  }" (else "else") (compound_statement "{\n    local_9f8 = (long *)(iVar4 + 0x850);\n  }" ({ "{") (expression_statement "local_9f8 = (long *)(iVar4 + 0x850);" (assignment_expression "local_9f8 = (long *)(iVar4 + 0x850)" (identifier "local_9f8") (= "=") (cast_expression "(long *)(iVar4 + 0x850)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x850)" (( "(") (binary_expression "iVar4 + 0x850" (identifier "iVar4") (+ "+") (number_literal "0x850")) () ")")))) (; ";")) (} "}")))) (expression_statement "pBVar10 = BIO_s_mem();" (assignment_expression "pBVar10 = BIO_s_mem()" (identifier "pBVar10") (= "=") (call_expression "BIO_s_mem()" (identifier "BIO_s_mem") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pBVar11 = BIO_new(pBVar10);" (assignment_expression "pBVar11 = BIO_new(pBVar10)" (identifier "pBVar11") (= "=") (call_expression "BIO_new(pBVar10)" (identifier "BIO_new") (argument_list "(pBVar10)" (( "(") (identifier "pBVar10") () ")")))) (; ";")) (if_statement "if (*(char *)(iVar4 + 0x864) != '\0') {\n    iVar38 = *piVar9;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }\n  }" (if "if") (parenthesized_expression "(*(char *)(iVar4 + 0x864) != '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 0x864) != '\0'" (pointer_expression "*(char *)(iVar4 + 0x864)" (* "*") (cast_expression "(char *)(iVar4 + 0x864)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x864)" (( "(") (binary_expression "iVar4 + 0x864" (identifier "iVar4") (+ "+") (number_literal "0x864")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar38 = *piVar9;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }\n  }" ({ "{") (expression_statement "iVar38 = *piVar9;" (assignment_expression "iVar38 = *piVar9" (identifier "iVar38") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (expression_statement "psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));" (assignment_expression "psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" (identifier "psVar27") (= "=") (call_expression "SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" (identifier "SSL_get_peer_cert_chain") (argument_list "(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" (( "(") (pointer_expression "*(SSL **)(*(int *)(param_2 + 0xc) + 4)" (* "*") (cast_expression "(SSL **)(*(int *)(param_2 + 0xc) + 4)" (( "(") (type_descriptor "SSL **" (type_identifier "SSL") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 4" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (if_statement "if (psVar27 != (stack_st_X509 *)0x0) {\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }" (if "if") (parenthesized_expression "(psVar27 != (stack_st_X509 *)0x0)" (( "(") (binary_expression "psVar27 != (stack_st_X509 *)0x0" (identifier "psVar27") (!= "!=") (cast_expression "(stack_st_X509 *)0x0" (( "(") (type_descriptor "stack_st_X509 *" (type_identifier "stack_st_X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar19 = OPENSSL_sk_num(psVar27);\n      iVar28 = FUN_0007b4c0(iVar38,iVar19);\n      if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }\n    }" ({ "{") (expression_statement "iVar19 = OPENSSL_sk_num(psVar27);" (assignment_expression "iVar19 = OPENSSL_sk_num(psVar27)" (identifier "iVar19") (= "=") (call_expression "OPENSSL_sk_num(psVar27)" (identifier "OPENSSL_sk_num") (argument_list "(psVar27)" (( "(") (identifier "psVar27") () ")")))) (; ";")) (expression_statement "iVar28 = FUN_0007b4c0(iVar38,iVar19);" (assignment_expression "iVar28 = FUN_0007b4c0(iVar38,iVar19)" (identifier "iVar28") (= "=") (call_expression "FUN_0007b4c0(iVar38,iVar19)" (identifier "FUN_0007b4c0") (argument_list "(iVar38,iVar19)" (( "(") (identifier "iVar38") (, ",") (identifier "iVar19") () ")")))) (; ";")) (if_statement "if (iVar28 == 0) {\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }" (if "if") (parenthesized_expression "(iVar28 == 0)" (( "(") (binary_expression "iVar28 == 0" (identifier "iVar28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pBVar10 = BIO_s_mem();\n        out = BIO_new(pBVar10);\n        if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }\n        BIO_free(out);\n      }" ({ "{") (expression_statement "pBVar10 = BIO_s_mem();" (assignment_expression "pBVar10 = BIO_s_mem()" (identifier "pBVar10") (= "=") (call_expression "BIO_s_mem()" (identifier "BIO_s_mem") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "out = BIO_new(pBVar10);" (assignment_expression "out = BIO_new(pBVar10)" (identifier "out") (= "=") (call_expression "BIO_new(pBVar10)" (identifier "BIO_new") (argument_list "(pBVar10)" (( "(") (identifier "pBVar10") () ")")))) (; ";")) (if_statement "if (0 < iVar19) {\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }" (if "if") (parenthesized_expression "(0 < iVar19)" (( "(") (binary_expression "0 < iVar19" (number_literal "0") (< "<") (identifier "iVar19")) () ")")) (compound_statement "{\n          local_a44 = 0;\n          do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);\n        }" ({ "{") (expression_statement "local_a44 = 0;" (assignment_expression "local_a44 = 0" (identifier "local_a44") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          } while (iVar19 != local_a44);" (do "do") (compound_statement "{\n            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);\n            local_9c8 = (int *)0x0;\n            pXVar31 = X509_get_subject_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pXVar31 = X509_get_issuer_name(pXVar12);\n            X509_NAME_print_ex(out,pXVar31,0,0x82031f);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            uVar23 = X509_get_version(pXVar12);\n            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar24 = X509_get_serialNumber(pXVar12);\n            if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }\n            iVar28 = 0;\n            if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_9bc = (BIGNUM *)0x0;\n            pAVar34 = ASN1_STRING_new();\n            if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }\n            uVar23 = X509_get0_extensions(pXVar12);\n            iVar28 = OPENSSL_sk_num(uVar23);\n            local_a2c = 0;\n            if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }\n            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);\n            ASN1_TIME_print(out,pAVar14);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            pkey = X509_get_pubkey(pXVar12);\n            if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }\n            if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }\n            PEM_write_bio_X509(out,pXVar12);\n            lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);\n            BIO_ctrl(out,1,0,(void *)0x0);\n            local_a44 = local_a44 + 1;\n          }" ({ "{") (expression_statement "pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);" (assignment_expression "pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44)" (identifier "pXVar12") (= "=") (cast_expression "(X509 *)OPENSSL_sk_value(psVar27,local_a44)" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "OPENSSL_sk_value(psVar27,local_a44)" (identifier "OPENSSL_sk_value") (argument_list "(psVar27,local_a44)" (( "(") (identifier "psVar27") (, ",") (identifier "local_a44") () ")"))))) (; ";")) (expression_statement "local_9c8 = (int *)0x0;" (assignment_expression "local_9c8 = (int *)0x0" (identifier "local_9c8") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pXVar31 = X509_get_subject_name(pXVar12);" (assignment_expression "pXVar31 = X509_get_subject_name(pXVar12)" (identifier "pXVar31") (= "=") (call_expression "X509_get_subject_name(pXVar12)" (identifier "X509_get_subject_name") (argument_list "(pXVar12)" (( "(") (identifier "pXVar12") () ")")))) (; ";")) (expression_statement "X509_NAME_print_ex(out,pXVar31,0,0x82031f);" (call_expression "X509_NAME_print_ex(out,pXVar31,0,0x82031f)" (identifier "X509_NAME_print_ex") (argument_list "(out,pXVar31,0,0x82031f)" (( "(") (identifier "out") (, ",") (identifier "pXVar31") (, ",") (number_literal "0") (, ",") (number_literal "0x82031f") () ")"))) (; ";")) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" (identifier "lVar15") (= "=") (call_expression "BIO_ctrl(out,3,0,&local_9cc)" (identifier "BIO_ctrl") (argument_list "(out,3,0,&local_9cc)" (( "(") (identifier "out") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_9cc" (& "&") (identifier "local_9cc")) () ")")))) (; ";")) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15)" (identifier "FUN_0007b520") (argument_list "(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15)" (( "(") (identifier "iVar38") (, ",") (identifier "local_a44") (, ",") (binary_expression "unaff_EBX + 0x1043b" (identifier "unaff_EBX") (+ "+") (number_literal "0x1043b")) (, ",") (identifier "local_9cc") (, ",") (identifier "lVar15") () ")"))) (; ";")) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" (identifier "BIO_ctrl") (argument_list "(out,1,0,(void *)0x0)" (( "(") (identifier "out") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))) (; ";")) (expression_statement "pXVar31 = X509_get_issuer_name(pXVar12);" (assignment_expression "pXVar31 = X509_get_issuer_name(pXVar12)" (identifier "pXVar31") (= "=") (call_expression "X509_get_issuer_name(pXVar12)" (identifier "X509_get_issuer_name") (argument_list "(pXVar12)" (( "(") (identifier "pXVar12") () ")")))) (; ";")) (expression_statement "X509_NAME_print_ex(out,pXVar31,0,0x82031f);" (call_expression "X509_NAME_print_ex(out,pXVar31,0,0x82031f)" (identifier "X509_NAME_print_ex") (argument_list "(out,pXVar31,0,0x82031f)" (( "(") (identifier "out") (, ",") (identifier "pXVar31") (, ",") (number_literal "0") (, ",") (number_literal "0x82031f") () ")"))) (; ";")) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" (identifier "lVar15") (= "=") (call_expression "BIO_ctrl(out,3,0,&local_9cc)" (identifier "BIO_ctrl") (argument_list "(out,3,0,&local_9cc)" (( "(") (identifier "out") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_9cc" (& "&") (identifier "local_9cc")) () ")")))) (; ";")) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15)" (identifier "FUN_0007b520") (argument_list "(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15)" (( "(") (identifier "iVar38") (, ",") (identifier "local_a44") (, ",") (binary_expression "unaff_EBX + 0x10443" (identifier "unaff_EBX") (+ "+") (number_literal "0x10443")) (, ",") (identifier "local_9cc") (, ",") (identifier "lVar15") () ")"))) (; ";")) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" (identifier "BIO_ctrl") (argument_list "(out,1,0,(void *)0x0)" (( "(") (identifier "out") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))) (; ";")) (expression_statement "uVar23 = X509_get_version(pXVar12);" (assignment_expression "uVar23 = X509_get_version(pXVar12)" (identifier "uVar23") (= "=") (call_expression "X509_get_version(pXVar12)" (identifier "X509_get_version") (argument_list "(pXVar12)" (( "(") (identifier "pXVar12") () ")")))) (; ";")) (expression_statement "BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);" (call_expression "BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23)" (identifier "BIO_printf") (argument_list "(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23)" (( "(") (identifier "out") (, ",") (cast_expression "(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2)" (( "(") (binary_expression "(int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2" (binary_expression "(int)&__DT_SYMTAB[2].st_size + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[2].st_size" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&__DT_SYMTAB[2].st_size" (& "&") (field_expression "__DT_SYMTAB[2].st_size" (subscript_expression "__DT_SYMTAB[2]" (identifier "__DT_SYMTAB") ([ "[") (number_literal "2") (] "]")) (. ".") (field_identifier "st_size")))) (+ "+") (identifier "unaff_EBX")) (+ "+") (number_literal "2")) () ")"))) (, ",") (identifier "uVar23") () ")"))) (; ";")) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" (identifier "lVar15") (= "=") (call_expression "BIO_ctrl(out,3,0,&local_9cc)" (identifier "BIO_ctrl") (argument_list "(out,3,0,&local_9cc)" (( "(") (identifier "out") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_9cc" (& "&") (identifier "local_9cc")) () ")")))) (; ";")) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15)" (identifier "FUN_0007b520") (argument_list "(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15)" (( "(") (identifier "iVar38") (, ",") (identifier "local_a44") (, ",") (binary_expression "unaff_EBX + 0xd383" (identifier "unaff_EBX") (+ "+") (number_literal "0xd383")) (, ",") (identifier "local_9cc") (, ",") (identifier "lVar15") () ")"))) (; ";")) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" (identifier "BIO_ctrl") (argument_list "(out,1,0,(void *)0x0)" (( "(") (identifier "out") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))) (; ";")) (expression_statement "pAVar24 = X509_get_serialNumber(pXVar12);" (assignment_expression "pAVar24 = X509_get_serialNumber(pXVar12)" (identifier "pAVar24") (= "=") (call_expression "X509_get_serialNumber(pXVar12)" (identifier "X509_get_serialNumber") (argument_list "(pXVar12)" (( "(") (identifier "pXVar12") () ")")))) (; ";")) (if_statement "if (pAVar24->type == 0x102) {\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }" (if "if") (parenthesized_expression "(pAVar24->type == 0x102)" (( "(") (binary_expression "pAVar24->type == 0x102" (field_expression "pAVar24->type" (identifier "pAVar24") (-> "->") (field_identifier "type")) (== "==") (number_literal "0x102")) () ")")) (compound_statement "{\n              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));\n            }" ({ "{") (expression_statement "BIO_puts(out,(char *)(unaff_EBX + 0xf12d));" (call_expression "BIO_puts(out,(char *)(unaff_EBX + 0xf12d))" (identifier "BIO_puts") (argument_list "(out,(char *)(unaff_EBX + 0xf12d))" (( "(") (identifier "out") (, ",") (cast_expression "(char *)(unaff_EBX + 0xf12d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBX + 0xf12d)" (( "(") (binary_expression "unaff_EBX + 0xf12d" (identifier "unaff_EBX") (+ "+") (number_literal "0xf12d")) () ")"))) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" (identifier "iVar28") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < pAVar24->length) {\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }" (if "if") (parenthesized_expression "(0 < pAVar24->length)" (( "(") (binary_expression "0 < pAVar24->length" (number_literal "0") (< "<") (field_expression "pAVar24->length" (identifier "pAVar24") (-> "->") (field_identifier "length"))) () ")")) (compound_statement "{\n              do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);\n            }" ({ "{") (do_statement "do {\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              } while (iVar28 < pAVar24->length);" (do "do") (compound_statement "{\n                pbVar2 = pAVar24->data + iVar28;\n                iVar28 = iVar28 + 1;\n                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);\n              }" ({ "{") (expression_statement "pbVar2 = pAVar24->data + iVar28;" (assignment_expression "pbVar2 = pAVar24->data + iVar28" (identifier "pbVar2") (= "=") (binary_expression "pAVar24->data + iVar28" (field_expression "pAVar24->data" (identifier "pAVar24") (-> "->") (field_identifier "data")) (+ "+") (identifier "iVar28"))) (; ";")) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" (identifier "iVar28") (= "=") (binary_expression "iVar28 + 1" (identifier "iVar28") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);" (call_expression "BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2)" (identifier "BIO_printf") (argument_list "(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2)" (( "(") (identifier "out") (, ",") (cast_expression "(char *)(unaff_EBX + 0xf774)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBX + 0xf774)" (( "(") (binary_expression "unaff_EBX + 0xf774" (identifier "unaff_EBX") (+ "+") (number_literal "0xf774")) () ")"))) (, ",") (binary_expression "(uint)*pbVar2" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar2")) () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar28 < pAVar24->length)" (( "(") (binary_expression "iVar28 < pAVar24->length" (identifier "iVar28") (< "<") (field_expression "pAVar24->length" (identifier "pAVar24") (-> "->") (field_identifier "length"))) () ")")) (; ";")) (} "}"))) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" (identifier "lVar15") (= "=") (call_expression "BIO_ctrl(out,3,0,&local_9cc)" (identifier "BIO_ctrl") (argument_list "(out,3,0,&local_9cc)" (( "(") (identifier "out") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_9cc" (& "&") (identifier "local_9cc")) () ")")))) (; ";")) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15)" (identifier "FUN_0007b520") (argument_list "(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15)" (( "(") (identifier "iVar38") (, ",") (identifier "local_a44") (, ",") (binary_expression "unaff_EBX + 0x1044e" (identifier "unaff_EBX") (+ "+") (number_literal "0x1044e")) (, ",") (identifier "local_9cc") (, ",") (identifier "lVar15") () ")"))) (; ";")) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" (identifier "BIO_ctrl") (argument_list "(out,1,0,(void *)0x0)" (( "(") (identifier "out") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))) (; ";")) (expression_statement "local_9bc = (BIGNUM *)0x0;" (assignment_expression "local_9bc = (BIGNUM *)0x0" (identifier "local_9bc") (= "=") (cast_expression "(BIGNUM *)0x0" (( "(") (type_descriptor "BIGNUM *" (type_identifier "BIGNUM") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pAVar34 = ASN1_STRING_new();" (assignment_expression "pAVar34 = ASN1_STRING_new()" (identifier "pAVar34") (= "=") (call_expression "ASN1_STRING_new()" (identifier "ASN1_STRING_new") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (pAVar34 != (ASN1_STRING *)0x0) {\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }" (if "if") (parenthesized_expression "(pAVar34 != (ASN1_STRING *)0x0)" (( "(") (binary_expression "pAVar34 != (ASN1_STRING *)0x0" (identifier "pAVar34") (!= "!=") (cast_expression "(ASN1_STRING *)0x0" (( "(") (type_descriptor "ASN1_STRING *" (type_identifier "ASN1_STRING") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);\n              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);\n              ASN1_STRING_free(pAVar34);\n              if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }\n            }" ({ "{") (expression_statement "X509_get0_signature(&local_9c8,&local_9bc,pXVar12);" (call_expression "X509_get0_signature(&local_9c8,&local_9bc,pXVar12)" (identifier "X509_get0_signature") (argument_list "(&local_9c8,&local_9bc,pXVar12)" (( "(") (pointer_expression "&local_9c8" (& "&") (identifier "local_9c8")) (, ",") (pointer_expression "&local_9bc" (& "&") (identifier "local_9bc")) (, ",") (identifier "pXVar12") () ")"))) (; ";")) (expression_statement "X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);" (call_expression "X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34)" (identifier "X509_signature_print") (argument_list "(out,(X509_ALGOR *)local_9bc,pAVar34)" (( "(") (identifier "out") (, ",") (cast_expression "(X509_ALGOR *)local_9bc" (( "(") (type_descriptor "X509_ALGOR *" (type_identifier "X509_ALGOR") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_9bc")) (, ",") (identifier "pAVar34") () ")"))) (; ";")) (expression_statement "ASN1_STRING_free(pAVar34);" (call_expression "ASN1_STRING_free(pAVar34)" (identifier "ASN1_STRING_free") (argument_list "(pAVar34)" (( "(") (identifier "pAVar34") () ")"))) (; ";")) (if_statement "if (local_9bc != (BIGNUM *)0x0) {\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }" (if "if") (parenthesized_expression "(local_9bc != (BIGNUM *)0x0)" (( "(") (binary_expression "local_9bc != (BIGNUM *)0x0" (identifier "local_9bc") (!= "!=") (cast_expression "(BIGNUM *)0x0" (( "(") (type_descriptor "BIGNUM *" (type_identifier "BIGNUM") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);\n                lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);\n                BIO_ctrl(out,1,0,(void *)0x0);\n              }" ({ "{") (expression_statement "i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);" (call_expression "i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d)" (identifier "i2a_ASN1_OBJECT") (argument_list "(out,(ASN1_OBJECT *)local_9bc->d)" (( "(") (identifier "out") (, ",") (cast_expression "(ASN1_OBJECT *)local_9bc->d" (( "(") (type_descriptor "ASN1_OBJECT *" (type_identifier "ASN1_OBJECT") (abstract_pointer_declarator "*" (* "*"))) () ")") (field_expression "local_9bc->d" (identifier "local_9bc") (-> "->") (field_identifier "d"))) () ")"))) (; ";")) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" (identifier "lVar15") (= "=") (call_expression "BIO_ctrl(out,3,0,&local_9cc)" (identifier "BIO_ctrl") (argument_list "(out,3,0,&local_9cc)" (( "(") (identifier "out") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_9cc" (& "&") (identifier "local_9cc")) () ")")))) (; ";")) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15)" (identifier "FUN_0007b520") (argument_list "(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15)" (( "(") (identifier "iVar38") (, ",") (identifier "local_a44") (, ",") (binary_expression "unaff_EBX + 0x1045c" (identifier "unaff_EBX") (+ "+") (number_literal "0x1045c")) (, ",") (identifier "local_9cc") (, ",") (identifier "lVar15") () ")"))) (; ";")) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" (identifier "BIO_ctrl") (argument_list "(out,1,0,(void *)0x0)" (( "(") (identifier "out") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar23 = X509_get0_extensions(pXVar12);" (assignment_expression "uVar23 = X509_get0_extensions(pXVar12)" (identifier "uVar23") (= "=") (call_expression "X509_get0_extensions(pXVar12)" (identifier "X509_get0_extensions") (argument_list "(pXVar12)" (( "(") (identifier "pXVar12") () ")")))) (; ";")) (expression_statement "iVar28 = OPENSSL_sk_num(uVar23);" (assignment_expression "iVar28 = OPENSSL_sk_num(uVar23)" (identifier "iVar28") (= "=") (call_expression "OPENSSL_sk_num(uVar23)" (identifier "OPENSSL_sk_num") (argument_list "(uVar23)" (( "(") (identifier "uVar23") () ")")))) (; ";")) (expression_statement "local_a2c = 0;" (assignment_expression "local_a2c = 0" (identifier "local_a2c") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < iVar28) {\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }" (if "if") (parenthesized_expression "(0 < iVar28)" (( "(") (binary_expression "0 < iVar28" (number_literal "0") (< "<") (identifier "iVar28")) () ")")) (compound_statement "{\n              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }\n            }" ({ "{") (for_statement "for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)\n              {\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }" (for "for") (( "(") (; ";") (comma_expression "iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28" (assignment_expression "iVar28 = OPENSSL_sk_num(uVar23)" (identifier "iVar28") (= "=") (call_expression "OPENSSL_sk_num(uVar23)" (identifier "OPENSSL_sk_num") (argument_list "(uVar23)" (( "(") (identifier "uVar23") () ")")))) (, ",") (binary_expression "local_a2c < iVar28" (identifier "local_a2c") (< "<") (identifier "iVar28"))) (; ";") (assignment_expression "local_a2c = local_a2c + 1" (identifier "local_a2c") (= "=") (binary_expression "local_a2c + 1" (identifier "local_a2c") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);\n                pBVar10 = BIO_s_mem();\n                out_00 = BIO_new(pBVar10);\n                if (out_00 == (BIO *)0x0) break;\n                a_00 = X509_EXTENSION_get_object(ex);\n                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);\n                iVar28 = X509V3_EXT_print(out_00,ex,0,0);\n                if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }\n                BIO_ctrl(out_00,0x73,0,&local_9b8);\n                uVar25 = 0;\n                uVar39 = local_9b8->length;\n                pAVar16 = local_9b8;\n                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;\n                if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }\n                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);\n                BIO_free(out_00);\n              }" ({ "{") (expression_statement "ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);" (assignment_expression "ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c)" (identifier "ex") (= "=") (cast_expression "(X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c)" (( "(") (type_descriptor "X509_EXTENSION *" (type_identifier "X509_EXTENSION") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "OPENSSL_sk_value(uVar23,local_a2c)" (identifier "OPENSSL_sk_value") (argument_list "(uVar23,local_a2c)" (( "(") (identifier "uVar23") (, ",") (identifier "local_a2c") () ")"))))) (; ";")) (expression_statement "pBVar10 = BIO_s_mem();" (assignment_expression "pBVar10 = BIO_s_mem()" (identifier "pBVar10") (= "=") (call_expression "BIO_s_mem()" (identifier "BIO_s_mem") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "out_00 = BIO_new(pBVar10);" (assignment_expression "out_00 = BIO_new(pBVar10)" (identifier "out_00") (= "=") (call_expression "BIO_new(pBVar10)" (identifier "BIO_new") (argument_list "(pBVar10)" (( "(") (identifier "pBVar10") () ")")))) (; ";")) (if_statement "if (out_00 == (BIO *)0x0) break;" (if "if") (parenthesized_expression "(out_00 == (BIO *)0x0)" (( "(") (binary_expression "out_00 == (BIO *)0x0" (identifier "out_00") (== "==") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "a_00 = X509_EXTENSION_get_object(ex);" (assignment_expression "a_00 = X509_EXTENSION_get_object(ex)" (identifier "a_00") (= "=") (call_expression "X509_EXTENSION_get_object(ex)" (identifier "X509_EXTENSION_get_object") (argument_list "(ex)" (( "(") (identifier "ex") () ")")))) (; ";")) (expression_statement "i2t_ASN1_OBJECT(local_9a4,0x80,a_00);" (call_expression "i2t_ASN1_OBJECT(local_9a4,0x80,a_00)" (identifier "i2t_ASN1_OBJECT") (argument_list "(local_9a4,0x80,a_00)" (( "(") (identifier "local_9a4") (, ",") (number_literal "0x80") (, ",") (identifier "a_00") () ")"))) (; ";")) (expression_statement "iVar28 = X509V3_EXT_print(out_00,ex,0,0);" (assignment_expression "iVar28 = X509V3_EXT_print(out_00,ex,0,0)" (identifier "iVar28") (= "=") (call_expression "X509V3_EXT_print(out_00,ex,0,0)" (identifier "X509V3_EXT_print") (argument_list "(out_00,ex,0,0)" (( "(") (identifier "out_00") (, ",") (identifier "ex") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar28 == 0) {\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }" (if "if") (parenthesized_expression "(iVar28 == 0)" (( "(") (binary_expression "iVar28 == 0" (identifier "iVar28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  v = X509_EXTENSION_get_data(ex);\n                  ASN1_STRING_print(out_00,v);\n                }" ({ "{") (expression_statement "v = X509_EXTENSION_get_data(ex);" (assignment_expression "v = X509_EXTENSION_get_data(ex)" (identifier "v") (= "=") (call_expression "X509_EXTENSION_get_data(ex)" (identifier "X509_EXTENSION_get_data") (argument_list "(ex)" (( "(") (identifier "ex") () ")")))) (; ";")) (expression_statement "ASN1_STRING_print(out_00,v);" (call_expression "ASN1_STRING_print(out_00,v)" (identifier "ASN1_STRING_print") (argument_list "(out_00,v)" (( "(") (identifier "out_00") (, ",") (identifier "v") () ")"))) (; ";")) (} "}"))) (expression_statement "BIO_ctrl(out_00,0x73,0,&local_9b8);" (call_expression "BIO_ctrl(out_00,0x73,0,&local_9b8)" (identifier "BIO_ctrl") (argument_list "(out_00,0x73,0,&local_9b8)" (( "(") (identifier "out_00") (, ",") (number_literal "0x73") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_9b8" (& "&") (identifier "local_9b8")) () ")"))) (; ";")) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" (identifier "uVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar39 = local_9b8->length;" (assignment_expression "uVar39 = local_9b8->length" (identifier "uVar39") (= "=") (field_expression "local_9b8->length" (identifier "local_9b8") (-> "->") (field_identifier "length"))) (; ";")) (expression_statement "pAVar16 = local_9b8;" (assignment_expression "pAVar16 = local_9b8" (identifier "pAVar16") (= "=") (identifier "local_9b8")) (; ";")) (expression_statement "local_a20 = (ASN1_GENERALIZEDTIME *)local_824;" (assignment_expression "local_a20 = (ASN1_GENERALIZEDTIME *)local_824" (identifier "local_a20") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)local_824" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_824"))) (; ";")) (if_statement "if (uVar39 != 0) {\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }" (if "if") (parenthesized_expression "(uVar39 != 0)" (( "(") (binary_expression "uVar39 != 0" (identifier "uVar39") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);\n                }" ({ "{") (do_statement "do {\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  } while (uVar25 < uVar39);" (do "do") (compound_statement "{\n                    iVar28 = pAVar16->type;\n                    uVar26 = uVar25;\n                    uVar8 = uVar25 + 1;\n                    local_a24 = unaff_EBX + 0xfe77;\n                    if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }\n                    uVar25 = uVar8;\n                    if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }\nLAB_000789f7:\n                    uVar39 = pAVar16->length;\n                  }" ({ "{") (expression_statement "iVar28 = pAVar16->type;" (assignment_expression "iVar28 = pAVar16->type" (identifier "iVar28") (= "=") (field_expression "pAVar16->type" (identifier "pAVar16") (-> "->") (field_identifier "type"))) (; ";")) (expression_statement "uVar26 = uVar25;" (assignment_expression "uVar26 = uVar25" (identifier "uVar26") (= "=") (identifier "uVar25")) (; ";")) (expression_statement "uVar8 = uVar25 + 1;" (assignment_expression "uVar8 = uVar25 + 1" (identifier "uVar8") (= "=") (binary_expression "uVar25 + 1" (identifier "uVar25") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_a24 = unaff_EBX + 0xfe77;" (assignment_expression "local_a24 = unaff_EBX + 0xfe77" (identifier "local_a24") (= "=") (binary_expression "unaff_EBX + 0xfe77" (identifier "unaff_EBX") (+ "+") (number_literal "0xfe77"))) (; ";")) (if_statement "if (*(char *)(iVar28 + uVar25) == '\n') {\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }" (if "if") (parenthesized_expression "(*(char *)(iVar28 + uVar25) == '\n')" (( "(") (binary_expression "*(char *)(iVar28 + uVar25) == '\n'" (pointer_expression "*(char *)(iVar28 + uVar25)" (* "*") (cast_expression "(char *)(iVar28 + uVar25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar28 + uVar25)" (( "(") (binary_expression "iVar28 + uVar25" (identifier "iVar28") (+ "+") (identifier "uVar25")) () ")")))) (== "==") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) () ")")) (compound_statement "{\n                      uVar26 = uVar25 + 1;\n                      uVar8 = uVar25 + 2;\n                      local_a24 = unaff_EBX + 0x6071;\n                    }" ({ "{") (expression_statement "uVar26 = uVar25 + 1;" (assignment_expression "uVar26 = uVar25 + 1" (identifier "uVar26") (= "=") (binary_expression "uVar25 + 1" (identifier "uVar25") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar8 = uVar25 + 2;" (assignment_expression "uVar8 = uVar25 + 2" (identifier "uVar8") (= "=") (binary_expression "uVar25 + 2" (identifier "uVar25") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "local_a24 = unaff_EBX + 0x6071;" (assignment_expression "local_a24 = unaff_EBX + 0x6071" (identifier "local_a24") (= "=") (binary_expression "unaff_EBX + 0x6071" (identifier "unaff_EBX") (+ "+") (number_literal "0x6071"))) (; ";")) (} "}"))) (expression_statement "uVar25 = uVar8;" (assignment_expression "uVar25 = uVar8" (identifier "uVar25") (= "=") (identifier "uVar8")) (; ";")) (if_statement "if (uVar26 < uVar39) {\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }" (if "if") (parenthesized_expression "(uVar26 < uVar39)" (( "(") (binary_expression "uVar26 < uVar39" (identifier "uVar26") (< "<") (identifier "uVar39")) () ")")) (compound_statement "{\n                      cVar3 = *(char *)(iVar28 + uVar26);\n                      if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }\n                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);\n                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);\n                      pAVar16 = local_9b8;\n                    }" ({ "{") (expression_statement "cVar3 = *(char *)(iVar28 + uVar26);" (assignment_expression "cVar3 = *(char *)(iVar28 + uVar26)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(iVar28 + uVar26)" (* "*") (cast_expression "(char *)(iVar28 + uVar26)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar28 + uVar26)" (( "(") (binary_expression "iVar28 + uVar26" (identifier "iVar28") (+ "+") (identifier "uVar26")) () ")"))))) (; ";")) (if_statement "if (cVar3 == ' ') {\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }" (if "if") (parenthesized_expression "(cVar3 == ' ')" (( "(") (binary_expression "cVar3 == ' '" (identifier "cVar3") (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (compound_statement "{\n                        uVar26 = uVar26 + 2;\n                        do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');\n                      }" ({ "{") (expression_statement "uVar26 = uVar26 + 2;" (assignment_expression "uVar26 = uVar26 + 2" (identifier "uVar26") (= "=") (binary_expression "uVar26 + 2" (identifier "uVar26") (+ "+") (number_literal "2"))) (; ";")) (do_statement "do {\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        } while (cVar3 == ' ');" (do "do") (compound_statement "{\n                          uVar25 = uVar26;\n                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;\n                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);\n                          uVar26 = uVar25 + 1;\n                        }" ({ "{") (expression_statement "uVar25 = uVar26;" (assignment_expression "uVar25 = uVar26" (identifier "uVar25") (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (uVar39 + 1 == uVar25) goto LAB_000789f7;" (if "if") (parenthesized_expression "(uVar39 + 1 == uVar25)" (( "(") (binary_expression "uVar39 + 1 == uVar25" (binary_expression "uVar39 + 1" (identifier "uVar39") (+ "+") (number_literal "1")) (== "==") (identifier "uVar25")) () ")")) (goto_statement "goto LAB_000789f7;" (goto "goto") (statement_identifier "LAB_000789f7") (; ";"))) (expression_statement "cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);" (assignment_expression "cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(iVar28 + -2 + uVar25 + 1)" (* "*") (cast_expression "(char *)(iVar28 + -2 + uVar25 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar28 + -2 + uVar25 + 1)" (( "(") (binary_expression "iVar28 + -2 + uVar25 + 1" (binary_expression "iVar28 + -2 + uVar25" (binary_expression "iVar28 + -2" (identifier "iVar28") (+ "+") (number_literal "-2")) (+ "+") (identifier "uVar25")) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar26 = uVar25 + 1;" (assignment_expression "uVar26 = uVar25 + 1" (identifier "uVar26") (= "=") (binary_expression "uVar25 + 1" (identifier "uVar25") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar3 == ' ')" (( "(") (binary_expression "cVar3 == ' '" (identifier "cVar3") (== "==") (char_literal "' '" (' "'") (character " ") (' "'"))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);" (assignment_expression "iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3)" (identifier "iVar28") (= "=") (call_expression "curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3)" (identifier "curl_msnprintf") (argument_list "(local_a20,auStack_624 + -(int)local_a20,\n                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3)" (( "(") (identifier "local_a20") (, ",") (binary_expression "auStack_624 + -(int)local_a20" (identifier "auStack_624") (+ "+") (unary_expression "-(int)local_a20" (- "-") (cast_expression "(int)local_a20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a20")))) (, ",") (binary_expression "unaff_EBX + 0xb37b" (identifier "unaff_EBX") (+ "+") (number_literal "0xb37b")) (, ",") (identifier "local_a24") (, ",") (cast_expression "(int)cVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar3")) () ")")))) (; ";")) (expression_statement "local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);" (assignment_expression "local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28)" (identifier "local_a20") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28)" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_a20 + iVar28)" (( "(") (binary_expression "(int)local_a20 + iVar28" (cast_expression "(int)local_a20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a20")) (+ "+") (identifier "iVar28")) () ")")))) (; ";")) (expression_statement "pAVar16 = local_9b8;" (assignment_expression "pAVar16 = local_9b8" (identifier "pAVar16") (= "=") (identifier "local_9b8")) (; ";")) (} "}"))) (labeled_statement "LAB_000789f7:\n                    uVar39 = pAVar16->length;" (statement_identifier "LAB_000789f7") (: ":") (expression_statement "uVar39 = pAVar16->length;" (assignment_expression "uVar39 = pAVar16->length" (identifier "uVar39") (= "=") (field_expression "pAVar16->length" (identifier "pAVar16") (-> "->") (field_identifier "length"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(uVar25 < uVar39)" (( "(") (binary_expression "uVar25 < uVar39" (identifier "uVar25") (< "<") (identifier "uVar39")) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_0007b610(iVar38,local_a44,local_9a4,local_824);" (call_expression "FUN_0007b610(iVar38,local_a44,local_9a4,local_824)" (identifier "FUN_0007b610") (argument_list "(iVar38,local_a44,local_9a4,local_824)" (( "(") (identifier "iVar38") (, ",") (identifier "local_a44") (, ",") (identifier "local_9a4") (, ",") (identifier "local_824") () ")"))) (; ";")) (expression_statement "BIO_free(out_00);" (call_expression "BIO_free(out_00)" (identifier "BIO_free") (argument_list "(out_00)" (( "(") (identifier "out_00") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);" (assignment_expression "pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12)" (identifier "pAVar14") (= "=") (cast_expression "(ASN1_TIME *)X509_get0_notBefore(pXVar12)" (( "(") (type_descriptor "ASN1_TIME *" (type_identifier "ASN1_TIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_get0_notBefore(pXVar12)" (identifier "X509_get0_notBefore") (argument_list "(pXVar12)" (( "(") (identifier "pXVar12") () ")"))))) (; ";")) (expression_statement "ASN1_TIME_print(out,pAVar14);" (call_expression "ASN1_TIME_print(out,pAVar14)" (identifier "ASN1_TIME_print") (argument_list "(out,pAVar14)" (( "(") (identifier "out") (, ",") (identifier "pAVar14") () ")"))) (; ";")) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" (identifier "lVar15") (= "=") (call_expression "BIO_ctrl(out,3,0,&local_9cc)" (identifier "BIO_ctrl") (argument_list "(out,3,0,&local_9cc)" (( "(") (identifier "out") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_9cc" (& "&") (identifier "local_9cc")) () ")")))) (; ";")) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15)" (identifier "FUN_0007b520") (argument_list "(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15)" (( "(") (identifier "iVar38") (, ",") (identifier "local_a44") (, ",") (binary_expression "unaff_EBX + 0x10471" (identifier "unaff_EBX") (+ "+") (number_literal "0x10471")) (, ",") (identifier "local_9cc") (, ",") (identifier "lVar15") () ")"))) (; ";")) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" (identifier "BIO_ctrl") (argument_list "(out,1,0,(void *)0x0)" (( "(") (identifier "out") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))) (; ";")) (expression_statement "pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);" (assignment_expression "pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12)" (identifier "pAVar14") (= "=") (cast_expression "(ASN1_TIME *)X509_get0_notAfter(pXVar12)" (( "(") (type_descriptor "ASN1_TIME *" (type_identifier "ASN1_TIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_get0_notAfter(pXVar12)" (identifier "X509_get0_notAfter") (argument_list "(pXVar12)" (( "(") (identifier "pXVar12") () ")"))))) (; ";")) (expression_statement "ASN1_TIME_print(out,pAVar14);" (call_expression "ASN1_TIME_print(out,pAVar14)" (identifier "ASN1_TIME_print") (argument_list "(out,pAVar14)" (( "(") (identifier "out") (, ",") (identifier "pAVar14") () ")"))) (; ";")) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" (identifier "lVar15") (= "=") (call_expression "BIO_ctrl(out,3,0,&local_9cc)" (identifier "BIO_ctrl") (argument_list "(out,3,0,&local_9cc)" (( "(") (identifier "out") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_9cc" (& "&") (identifier "local_9cc")) () ")")))) (; ";")) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15)" (identifier "FUN_0007b520") (argument_list "(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15)" (( "(") (identifier "iVar38") (, ",") (identifier "local_a44") (, ",") (binary_expression "unaff_EBX + 0x1047c" (identifier "unaff_EBX") (+ "+") (number_literal "0x1047c")) (, ",") (identifier "local_9cc") (, ",") (identifier "lVar15") () ")"))) (; ";")) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" (identifier "BIO_ctrl") (argument_list "(out,1,0,(void *)0x0)" (( "(") (identifier "out") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))) (; ";")) (expression_statement "pkey = X509_get_pubkey(pXVar12);" (assignment_expression "pkey = X509_get_pubkey(pXVar12)" (identifier "pkey") (= "=") (call_expression "X509_get_pubkey(pXVar12)" (identifier "X509_get_pubkey") (argument_list "(pXVar12)" (( "(") (identifier "pXVar12") () ")")))) (; ";")) (if_statement "if (pkey == (EVP_PKEY *)0x0) {\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }\n            else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }" (if "if") (parenthesized_expression "(pkey == (EVP_PKEY *)0x0)" (( "(") (binary_expression "pkey == (EVP_PKEY *)0x0" (identifier "pkey") (== "==") (cast_expression "(EVP_PKEY *)0x0" (( "(") (type_descriptor "EVP_PKEY *" (type_identifier "EVP_PKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              FUN_00027140(iVar38,unaff_EBX + 0x10488);\n            }" ({ "{") (expression_statement "FUN_00027140(iVar38,unaff_EBX + 0x10488);" (call_expression "FUN_00027140(iVar38,unaff_EBX + 0x10488)" (identifier "FUN_00027140") (argument_list "(iVar38,unaff_EBX + 0x10488)" (( "(") (identifier "iVar38") (, ",") (binary_expression "unaff_EBX + 0x10488" (identifier "unaff_EBX") (+ "+") (number_literal "0x10488")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }" (else "else") (compound_statement "{\n              iVar28 = EVP_PKEY_id(pkey);\n              if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }\n              EVP_PKEY_free(pkey);\n            }" ({ "{") (expression_statement "iVar28 = EVP_PKEY_id(pkey);" (assignment_expression "iVar28 = EVP_PKEY_id(pkey)" (identifier "iVar28") (= "=") (call_expression "EVP_PKEY_id(pkey)" (identifier "EVP_PKEY_id") (argument_list "(pkey)" (( "(") (identifier "pkey") () ")")))) (; ";")) (if_statement "if (iVar28 == 0x1c) {\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }\n              else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }" (if "if") (parenthesized_expression "(iVar28 == 0x1c)" (( "(") (binary_expression "iVar28 == 0x1c" (identifier "iVar28") (== "==") (number_literal "0x1c")) () ")")) (compound_statement "{\n                uVar23 = EVP_PKEY_get0_DH(pkey);\n                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                iVar28 = unaff_EBX + 0x544b;\n                DH_get0_key(uVar23,&local_9b8,0);\nLAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);\n                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);\n                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);\n                iVar29 = unaff_EBX + 0x104b5;\nLAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);\n              }" ({ "{") (expression_statement "uVar23 = EVP_PKEY_get0_DH(pkey);" (assignment_expression "uVar23 = EVP_PKEY_get0_DH(pkey)" (identifier "uVar23") (= "=") (call_expression "EVP_PKEY_get0_DH(pkey)" (identifier "EVP_PKEY_get0_DH") (argument_list "(pkey)" (( "(") (identifier "pkey") () ")")))) (; ";")) (expression_statement "DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);" (call_expression "DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc)" (identifier "DH_get0_pqg") (argument_list "(uVar23,&local_9c4,&local_9c0,&local_9bc)" (( "(") (identifier "uVar23") (, ",") (pointer_expression "&local_9c4" (& "&") (identifier "local_9c4")) (, ",") (pointer_expression "&local_9c0" (& "&") (identifier "local_9c0")) (, ",") (pointer_expression "&local_9bc" (& "&") (identifier "local_9bc")) () ")"))) (; ";")) (expression_statement "iVar28 = unaff_EBX + 0x544b;" (assignment_expression "iVar28 = unaff_EBX + 0x544b" (identifier "iVar28") (= "=") (binary_expression "unaff_EBX + 0x544b" (identifier "unaff_EBX") (+ "+") (number_literal "0x544b"))) (; ";")) (expression_statement "DH_get0_key(uVar23,&local_9b8,0);" (call_expression "DH_get0_key(uVar23,&local_9b8,0)" (identifier "DH_get0_key") (argument_list "(uVar23,&local_9b8,0)" (( "(") (identifier "uVar23") (, ",") (pointer_expression "&local_9b8" (& "&") (identifier "local_9b8")) (, ",") (number_literal "0") () ")"))) (; ";")) (labeled_statement "LAB_0007922b:\n                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);" (statement_identifier "LAB_0007922b") (: ":") (expression_statement "FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);" (call_expression "FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4)" (identifier "FUN_00075190") (argument_list "(iVar28,unaff_EBX + 0x7c87,local_9c4)" (( "(") (identifier "iVar28") (, ",") (binary_expression "unaff_EBX + 0x7c87" (identifier "unaff_EBX") (+ "+") (number_literal "0x7c87")) (, ",") (identifier "local_9c4") () ")"))) (; ";"))) (expression_statement "FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);" (call_expression "FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0)" (identifier "FUN_00075190") (argument_list "(iVar28,unaff_EBX + 0xdee9,local_9c0)" (( "(") (identifier "iVar28") (, ",") (binary_expression "unaff_EBX + 0xdee9" (identifier "unaff_EBX") (+ "+") (number_literal "0xdee9")) (, ",") (identifier "local_9c0") () ")"))) (; ";")) (expression_statement "FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);" (call_expression "FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc)" (identifier "FUN_00075190") (argument_list "(iVar28,unaff_EBX + 0xf20b,local_9bc)" (( "(") (identifier "iVar28") (, ",") (binary_expression "unaff_EBX + 0xf20b" (identifier "unaff_EBX") (+ "+") (number_literal "0xf20b")) (, ",") (identifier "local_9bc") () ")"))) (; ";")) (expression_statement "iVar29 = unaff_EBX + 0x104b5;" (assignment_expression "iVar29 = unaff_EBX + 0x104b5" (identifier "iVar29") (= "=") (binary_expression "unaff_EBX + 0x104b5" (identifier "unaff_EBX") (+ "+") (number_literal "0x104b5"))) (; ";")) (labeled_statement "LAB_000791bc:\n                FUN_00075190(iVar28,iVar29,local_9b8);" (statement_identifier "LAB_000791bc") (: ":") (expression_statement "FUN_00075190(iVar28,iVar29,local_9b8);" (call_expression "FUN_00075190(iVar28,iVar29,local_9b8)" (identifier "FUN_00075190") (argument_list "(iVar28,iVar29,local_9b8)" (( "(") (identifier "iVar28") (, ",") (identifier "iVar29") (, ",") (identifier "local_9b8") () ")"))) (; ";"))) (} "}")) (else_clause "else {\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }" (else "else") (compound_statement "{\n                if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }\n                if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }\n              }" ({ "{") (if_statement "if (iVar28 == 0x74) {\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }" (if "if") (parenthesized_expression "(iVar28 == 0x74)" (( "(") (binary_expression "iVar28 == 0x74" (identifier "iVar28") (== "==") (number_literal "0x74")) () ")")) (compound_statement "{\n                  uVar23 = EVP_PKEY_get0_DSA(pkey);\n                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);\n                  iVar28 = unaff_EBX + 0xc090;\n                  DSA_get0_key(uVar23,&local_9b8,0);\n                  goto LAB_0007922b;\n                }" ({ "{") (expression_statement "uVar23 = EVP_PKEY_get0_DSA(pkey);" (assignment_expression "uVar23 = EVP_PKEY_get0_DSA(pkey)" (identifier "uVar23") (= "=") (call_expression "EVP_PKEY_get0_DSA(pkey)" (identifier "EVP_PKEY_get0_DSA") (argument_list "(pkey)" (( "(") (identifier "pkey") () ")")))) (; ";")) (expression_statement "DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);" (call_expression "DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc)" (identifier "DSA_get0_pqg") (argument_list "(uVar23,&local_9c4,&local_9c0,&local_9bc)" (( "(") (identifier "uVar23") (, ",") (pointer_expression "&local_9c4" (& "&") (identifier "local_9c4")) (, ",") (pointer_expression "&local_9c0" (& "&") (identifier "local_9c0")) (, ",") (pointer_expression "&local_9bc" (& "&") (identifier "local_9bc")) () ")"))) (; ";")) (expression_statement "iVar28 = unaff_EBX + 0xc090;" (assignment_expression "iVar28 = unaff_EBX + 0xc090" (identifier "iVar28") (= "=") (binary_expression "unaff_EBX + 0xc090" (identifier "unaff_EBX") (+ "+") (number_literal "0xc090"))) (; ";")) (expression_statement "DSA_get0_key(uVar23,&local_9b8,0);" (call_expression "DSA_get0_key(uVar23,&local_9b8,0)" (identifier "DSA_get0_key") (argument_list "(uVar23,&local_9b8,0)" (( "(") (identifier "uVar23") (, ",") (pointer_expression "&local_9b8" (& "&") (identifier "local_9b8")) (, ",") (number_literal "0") () ")"))) (; ";")) (goto_statement "goto LAB_0007922b;" (goto "goto") (statement_identifier "LAB_0007922b") (; ";")) (} "}"))) (if_statement "if (iVar28 == 6) {\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }" (if "if") (parenthesized_expression "(iVar28 == 6)" (( "(") (binary_expression "iVar28 == 6" (identifier "iVar28") (== "==") (number_literal "6")) () ")")) (compound_statement "{\n                  iVar28 = unaff_EBX + 0xc081;\n                  uVar23 = EVP_PKEY_get0_RSA(pkey);\n                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);\n                  BN_print(out,local_9bc);\n                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);\n                  BIO_ctrl(out,1,0,(void *)0x0);\n                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);\n                  iVar29 = unaff_EBX + 0x102a0;\n                  goto LAB_000791bc;\n                }" ({ "{") (expression_statement "iVar28 = unaff_EBX + 0xc081;" (assignment_expression "iVar28 = unaff_EBX + 0xc081" (identifier "iVar28") (= "=") (binary_expression "unaff_EBX + 0xc081" (identifier "unaff_EBX") (+ "+") (number_literal "0xc081"))) (; ";")) (expression_statement "uVar23 = EVP_PKEY_get0_RSA(pkey);" (assignment_expression "uVar23 = EVP_PKEY_get0_RSA(pkey)" (identifier "uVar23") (= "=") (call_expression "EVP_PKEY_get0_RSA(pkey)" (identifier "EVP_PKEY_get0_RSA") (argument_list "(pkey)" (( "(") (identifier "pkey") () ")")))) (; ";")) (expression_statement "RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);" (call_expression "RSA_get0_key(uVar23,&local_9bc,&local_9b8,0)" (identifier "RSA_get0_key") (argument_list "(uVar23,&local_9bc,&local_9b8,0)" (( "(") (identifier "uVar23") (, ",") (pointer_expression "&local_9bc" (& "&") (identifier "local_9bc")) (, ",") (pointer_expression "&local_9b8" (& "&") (identifier "local_9b8")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "BN_print(out,local_9bc);" (call_expression "BN_print(out,local_9bc)" (identifier "BN_print") (argument_list "(out,local_9bc)" (( "(") (identifier "out") (, ",") (identifier "local_9bc") () ")"))) (; ";")) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" (identifier "lVar15") (= "=") (call_expression "BIO_ctrl(out,3,0,&local_9cc)" (identifier "BIO_ctrl") (argument_list "(out,3,0,&local_9cc)" (( "(") (identifier "out") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_9cc" (& "&") (identifier "local_9cc")) () ")")))) (; ";")) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15)" (identifier "FUN_0007b520") (argument_list "(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15)" (( "(") (identifier "iVar38") (, ",") (identifier "local_a44") (, ",") (binary_expression "unaff_EBX + 0x104a6" (identifier "unaff_EBX") (+ "+") (number_literal "0x104a6")) (, ",") (identifier "local_9cc") (, ",") (identifier "lVar15") () ")"))) (; ";")) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" (identifier "BIO_ctrl") (argument_list "(out,1,0,(void *)0x0)" (( "(") (identifier "out") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))) (; ";")) (expression_statement "FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);" (call_expression "FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc)" (identifier "FUN_00075190") (argument_list "(iVar28,unaff_EBX + 0xf7bd,local_9bc)" (( "(") (identifier "iVar28") (, ",") (binary_expression "unaff_EBX + 0xf7bd" (identifier "unaff_EBX") (+ "+") (number_literal "0xf7bd")) (, ",") (identifier "local_9bc") () ")"))) (; ";")) (expression_statement "iVar29 = unaff_EBX + 0x102a0;" (assignment_expression "iVar29 = unaff_EBX + 0x102a0" (identifier "iVar29") (= "=") (binary_expression "unaff_EBX + 0x102a0" (identifier "unaff_EBX") (+ "+") (number_literal "0x102a0"))) (; ";")) (goto_statement "goto LAB_000791bc;" (goto "goto") (statement_identifier "LAB_000791bc") (; ";")) (} "}"))) (} "}")))) (expression_statement "EVP_PKEY_free(pkey);" (call_expression "EVP_PKEY_free(pkey)" (identifier "EVP_PKEY_free") (argument_list "(pkey)" (( "(") (identifier "pkey") () ")"))) (; ";")) (} "}")))) (if_statement "if (local_9c8 != (int *)0x0) {\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }" (if "if") (parenthesized_expression "(local_9c8 != (int *)0x0)" (( "(") (binary_expression "local_9c8 != (int *)0x0" (identifier "local_9c8") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              iVar28 = 0;\n              if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }\n              lVar15 = BIO_ctrl(out,3,0,&local_9cc);\n              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);\n              BIO_ctrl(out,1,0,(void *)0x0);\n            }" ({ "{") (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" (identifier "iVar28") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < *local_9c8) {\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }" (if "if") (parenthesized_expression "(0 < *local_9c8)" (( "(") (binary_expression "0 < *local_9c8" (number_literal "0") (< "<") (pointer_expression "*local_9c8" (* "*") (identifier "local_9c8"))) () ")")) (compound_statement "{\n                do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);\n              }" ({ "{") (do_statement "do {\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                } while (iVar28 < *local_9c8);" (do "do") (compound_statement "{\n                  pbVar2 = (byte *)(local_9c8[2] + iVar28);\n                  iVar28 = iVar28 + 1;\n                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);\n                }" ({ "{") (expression_statement "pbVar2 = (byte *)(local_9c8[2] + iVar28);" (assignment_expression "pbVar2 = (byte *)(local_9c8[2] + iVar28)" (identifier "pbVar2") (= "=") (cast_expression "(byte *)(local_9c8[2] + iVar28)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_9c8[2] + iVar28)" (( "(") (binary_expression "local_9c8[2] + iVar28" (subscript_expression "local_9c8[2]" (identifier "local_9c8") ([ "[") (number_literal "2") (] "]")) (+ "+") (identifier "iVar28")) () ")")))) (; ";")) (expression_statement "iVar28 = iVar28 + 1;" (assignment_expression "iVar28 = iVar28 + 1" (identifier "iVar28") (= "=") (binary_expression "iVar28 + 1" (identifier "iVar28") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2);" (call_expression "BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2)" (identifier "BIO_printf") (argument_list "(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),\n                             (uint)*pbVar2)" (( "(") (identifier "out") (, ",") (cast_expression "(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3)" (( "(") (binary_expression "(int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3" (binary_expression "(int)&__DT_SYMTAB[10].st_value + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[10].st_value" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&__DT_SYMTAB[10].st_value" (& "&") (field_expression "__DT_SYMTAB[10].st_value" (subscript_expression "__DT_SYMTAB[10]" (identifier "__DT_SYMTAB") ([ "[") (number_literal "10") (] "]")) (. ".") (field_identifier "st_value")))) (+ "+") (identifier "unaff_EBX")) (+ "+") (number_literal "3")) () ")"))) (, ",") (binary_expression "(uint)*pbVar2" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar2")) () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar28 < *local_9c8)" (( "(") (binary_expression "iVar28 < *local_9c8" (identifier "iVar28") (< "<") (pointer_expression "*local_9c8" (* "*") (identifier "local_9c8"))) () ")")) (; ";")) (} "}"))) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" (identifier "lVar15") (= "=") (call_expression "BIO_ctrl(out,3,0,&local_9cc)" (identifier "BIO_ctrl") (argument_list "(out,3,0,&local_9cc)" (( "(") (identifier "out") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_9cc" (& "&") (identifier "local_9cc")) () ")")))) (; ";")) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15)" (identifier "FUN_0007b520") (argument_list "(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15)" (( "(") (identifier "iVar38") (, ",") (identifier "local_a44") (, ",") (binary_expression "unaff_EBX + 0x104bd" (identifier "unaff_EBX") (+ "+") (number_literal "0x104bd")) (, ",") (identifier "local_9cc") (, ",") (identifier "lVar15") () ")"))) (; ";")) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" (identifier "BIO_ctrl") (argument_list "(out,1,0,(void *)0x0)" (( "(") (identifier "out") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))) (; ";")) (} "}"))) (expression_statement "PEM_write_bio_X509(out,pXVar12);" (call_expression "PEM_write_bio_X509(out,pXVar12)" (identifier "PEM_write_bio_X509") (argument_list "(out,pXVar12)" (( "(") (identifier "out") (, ",") (identifier "pXVar12") () ")"))) (; ";")) (expression_statement "lVar15 = BIO_ctrl(out,3,0,&local_9cc);" (assignment_expression "lVar15 = BIO_ctrl(out,3,0,&local_9cc)" (identifier "lVar15") (= "=") (call_expression "BIO_ctrl(out,3,0,&local_9cc)" (identifier "BIO_ctrl") (argument_list "(out,3,0,&local_9cc)" (( "(") (identifier "out") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_9cc" (& "&") (identifier "local_9cc")) () ")")))) (; ";")) (expression_statement "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);" (call_expression "FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15)" (identifier "FUN_0007b520") (argument_list "(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15)" (( "(") (identifier "iVar38") (, ",") (identifier "local_a44") (, ",") (binary_expression "unaff_EBX + 0x104cd" (identifier "unaff_EBX") (+ "+") (number_literal "0x104cd")) (, ",") (identifier "local_9cc") (, ",") (identifier "lVar15") () ")"))) (; ";")) (expression_statement "BIO_ctrl(out,1,0,(void *)0x0);" (call_expression "BIO_ctrl(out,1,0,(void *)0x0)" (identifier "BIO_ctrl") (argument_list "(out,1,0,(void *)0x0)" (( "(") (identifier "out") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))) (; ";")) (expression_statement "local_a44 = local_a44 + 1;" (assignment_expression "local_a44 = local_a44 + 1" (identifier "local_a44") (= "=") (binary_expression "local_a44 + 1" (identifier "local_a44") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar19 != local_a44)" (( "(") (binary_expression "iVar19 != local_a44" (identifier "iVar19") (!= "!=") (identifier "local_a44")) () ")")) (; ";")) (} "}"))) (expression_statement "BIO_free(out);" (call_expression "BIO_free(out)" (identifier "BIO_free") (argument_list "(out)" (( "(") (identifier "out") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "iVar38 = *(int *)(param_2 + 0xc);" (assignment_expression "iVar38 = *(int *)(param_2 + 0xc)" (identifier "iVar38") (= "=") (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "pXVar12 = SSL_get_peer_certificate(*(SSL **)(iVar38 + 4));" (assignment_expression "pXVar12 = SSL_get_peer_certificate(*(SSL **)(iVar38 + 4))" (identifier "pXVar12") (= "=") (call_expression "SSL_get_peer_certificate(*(SSL **)(iVar38 + 4))" (identifier "SSL_get_peer_certificate") (argument_list "(*(SSL **)(iVar38 + 4))" (( "(") (pointer_expression "*(SSL **)(iVar38 + 4)" (* "*") (cast_expression "(SSL **)(iVar38 + 4)" (( "(") (type_descriptor "SSL **" (type_identifier "SSL") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar38 + 4)" (( "(") (binary_expression "iVar38 + 4" (identifier "iVar38") (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (expression_statement "*(X509 **)(iVar38 + 8) = pXVar12;" (assignment_expression "*(X509 **)(iVar38 + 8) = pXVar12" (pointer_expression "*(X509 **)(iVar38 + 8)" (* "*") (cast_expression "(X509 **)(iVar38 + 8)" (( "(") (type_descriptor "X509 **" (type_identifier "X509") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar38 + 8)" (( "(") (binary_expression "iVar38 + 8" (identifier "iVar38") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "pXVar12")) (; ";")) (if_statement "if (*(int *)(*(int *)(param_2 + 0xc) + 8) == 0) {\n    iVar38 = 0;\n    BIO_free(pBVar11);\n    if (param_3 != '\0') {\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }\n    goto LAB_00078251;\n  }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(param_2 + 0xc) + 8) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_2 + 0xc) + 8) == 0" (pointer_expression "*(int *)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(int *)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar38 = 0;\n    BIO_free(pBVar11);\n    if (param_3 != '\0') {\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }\n    goto LAB_00078251;\n  }" ({ "{") (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" (identifier "iVar38") (= "=") (number_literal "0")) (; ";")) (expression_statement "BIO_free(pBVar11);" (call_expression "BIO_free(pBVar11)" (identifier "BIO_free") (argument_list "(pBVar11)" (( "(") (identifier "pBVar11") () ")"))) (; ";")) (if_statement "if (param_3 != '\0') {\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }" (if "if") (parenthesized_expression "(param_3 != '\0')" (( "(") (binary_expression "param_3 != '\0'" (identifier "param_3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar38 = 0x3c;\n      FUN_00027240(iVar4,unaff_EBX + 0x1122f);\n    }" ({ "{") (expression_statement "iVar38 = 0x3c;" (assignment_expression "iVar38 = 0x3c" (identifier "iVar38") (= "=") (number_literal "0x3c")) (; ";")) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x1122f);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x1122f)" (identifier "FUN_00027240") (argument_list "(iVar4,unaff_EBX + 0x1122f)" (( "(") (identifier "iVar4") (, ",") (binary_expression "unaff_EBX + 0x1122f" (identifier "unaff_EBX") (+ "+") (number_literal "0x1122f")) () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00078251;" (goto "goto") (statement_identifier "LAB_00078251") (; ";")) (} "}"))) (expression_statement "iVar38 = unaff_EBX + 0x5eef;" (assignment_expression "iVar38 = unaff_EBX + 0x5eef" (identifier "iVar38") (= "=") (binary_expression "unaff_EBX + 0x5eef" (identifier "unaff_EBX") (+ "+") (number_literal "0x5eef"))) (; ";")) (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    iVar38 = unaff_EBX + 0x5ee9;\n  }" (if "if") (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" (( "(") (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" (( "(") (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" (identifier "piVar9") ([ "[") (number_literal "0x3a") (] "]")) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (( "(") (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" (identifier "piVar9") ([ "[") (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" (( "(") (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" (( "(") (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" (identifier "piVar9") ([ "[") (number_literal "0x65") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (+ "+") (number_literal "0x1d")) () ")")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n    iVar38 = unaff_EBX + 0x5ee9;\n  }" ({ "{") (expression_statement "iVar38 = unaff_EBX + 0x5ee9;" (assignment_expression "iVar38 = unaff_EBX + 0x5ee9" (identifier "iVar38") (= "=") (binary_expression "unaff_EBX + 0x5ee9" (identifier "unaff_EBX") (+ "+") (number_literal "0x5ee9"))) (; ";")) (} "}"))) (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x104d2,iVar38);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x104d2,iVar38)" (identifier "FUN_00027140") (argument_list "(iVar4,unaff_EBX + 0x104d2,iVar38)" (( "(") (identifier "iVar4") (, ",") (binary_expression "unaff_EBX + 0x104d2" (identifier "unaff_EBX") (+ "+") (number_literal "0x104d2")) (, ",") (identifier "iVar38") () ")"))) (; ";")) (expression_statement "X509_get_subject_name(*(X509 **)(*(int *)(param_2 + 0xc) + 8));" (call_expression "X509_get_subject_name(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" (identifier "X509_get_subject_name") (argument_list "(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" (( "(") (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "X509 **" (type_identifier "X509") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (expression_statement "puVar22 = local_824;" (assignment_expression "puVar22 = local_824" (identifier "puVar22") (= "=") (identifier "local_824")) (; ";")) (expression_statement "iVar38 = FUN_00077df0();" (assignment_expression "iVar38 = FUN_00077df0()" (identifier "iVar38") (= "=") (call_expression "FUN_00077df0()" (identifier "FUN_00077df0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar13 = (undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX);" (assignment_expression "puVar13 = (undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX)" (identifier "puVar13") (= "=") (cast_expression "(undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&__DT_SYMTAB[1].st_value + unaff_EBX)" (( "(") (binary_expression "(int)&__DT_SYMTAB[1].st_value + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[1].st_value" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&__DT_SYMTAB[1].st_value" (& "&") (field_expression "__DT_SYMTAB[1].st_value" (subscript_expression "__DT_SYMTAB[1]" (identifier "__DT_SYMTAB") ([ "[") (number_literal "1") (] "]")) (. ".") (field_identifier "st_value")))) (+ "+") (identifier "unaff_EBX")) () ")")))) (; ";")) (if_statement "if (iVar38 == 0) {\n    puVar13 = puVar22;\n  }" (if "if") (parenthesized_expression "(iVar38 == 0)" (( "(") (binary_expression "iVar38 == 0" (identifier "iVar38") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    puVar13 = puVar22;\n  }" ({ "{") (expression_statement "puVar13 = puVar22;" (assignment_expression "puVar13 = puVar22" (identifier "puVar13") (= "=") (identifier "puVar22")) (; ";")) (} "}"))) (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x104e3,puVar13);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x104e3,puVar13)" (identifier "FUN_00027140") (argument_list "(iVar4,unaff_EBX + 0x104e3,puVar13)" (( "(") (identifier "iVar4") (, ",") (binary_expression "unaff_EBX + 0x104e3" (identifier "unaff_EBX") (+ "+") (number_literal "0x104e3")) (, ",") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "pAVar14 = (ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));" (assignment_expression "pAVar14 = (ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" (identifier "pAVar14") (= "=") (cast_expression "(ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" (( "(") (type_descriptor "ASN1_TIME *" (type_identifier "ASN1_TIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" (identifier "X509_get0_notBefore") (argument_list "(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")")))) () ")"))))) (; ";")) (expression_statement "ASN1_TIME_print(pBVar11,pAVar14);" (call_expression "ASN1_TIME_print(pBVar11,pAVar14)" (identifier "ASN1_TIME_print") (argument_list "(pBVar11,pAVar14)" (( "(") (identifier "pBVar11") (, ",") (identifier "pAVar14") () ")"))) (; ";")) (expression_statement "lVar15 = BIO_ctrl(pBVar11,3,0,&local_9d0);" (assignment_expression "lVar15 = BIO_ctrl(pBVar11,3,0,&local_9d0)" (identifier "lVar15") (= "=") (call_expression "BIO_ctrl(pBVar11,3,0,&local_9d0)" (identifier "BIO_ctrl") (argument_list "(pBVar11,3,0,&local_9d0)" (( "(") (identifier "pBVar11") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_9d0" (& "&") (identifier "local_9d0")) () ")")))) (; ";")) (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0)" (identifier "FUN_00027140") (argument_list "(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0)" (( "(") (identifier "iVar4") (, ",") (binary_expression "unaff_EBX + 0x104f1" (identifier "unaff_EBX") (+ "+") (number_literal "0x104f1")) (, ",") (identifier "lVar15") (, ",") (identifier "local_9d0") () ")"))) (; ";")) (expression_statement "BIO_ctrl(pBVar11,1,0,(void *)0x0);" (call_expression "BIO_ctrl(pBVar11,1,0,(void *)0x0)" (identifier "BIO_ctrl") (argument_list "(pBVar11,1,0,(void *)0x0)" (( "(") (identifier "pBVar11") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))) (; ";")) (expression_statement "pAVar14 = (ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));" (assignment_expression "pAVar14 = (ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" (identifier "pAVar14") (= "=") (cast_expression "(ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" (( "(") (type_descriptor "ASN1_TIME *" (type_identifier "ASN1_TIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" (identifier "X509_get0_notAfter") (argument_list "(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8))" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")")))) () ")"))))) (; ";")) (expression_statement "ASN1_TIME_print(pBVar11,pAVar14);" (call_expression "ASN1_TIME_print(pBVar11,pAVar14)" (identifier "ASN1_TIME_print") (argument_list "(pBVar11,pAVar14)" (( "(") (identifier "pBVar11") (, ",") (identifier "pAVar14") () ")"))) (; ";")) (expression_statement "pAVar16 = (ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0);" (assignment_expression "pAVar16 = (ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0)" (identifier "pAVar16") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0)" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "BIO_ctrl(pBVar11,3,0,&local_9d0)" (identifier "BIO_ctrl") (argument_list "(pBVar11,3,0,&local_9d0)" (( "(") (identifier "pBVar11") (, ",") (number_literal "3") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_9d0" (& "&") (identifier "local_9d0")) () ")"))))) (; ";")) (expression_statement "pcVar30 = (char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX);" (assignment_expression "pcVar30 = (char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX)" (identifier "pcVar30") (= "=") (cast_expression "(char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX)" (( "(") (binary_expression "(int)&__DT_SYMTAB[0xe].st_value + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[0xe].st_value" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&__DT_SYMTAB[0xe].st_value" (& "&") (field_expression "__DT_SYMTAB[0xe].st_value" (subscript_expression "__DT_SYMTAB[0xe]" (identifier "__DT_SYMTAB") ([ "[") (number_literal "0xe") (] "]")) (. ".") (field_identifier "st_value")))) (+ "+") (identifier "unaff_EBX")) () ")")))) (; ";")) (expression_statement "local_a10 = local_9d0;" (assignment_expression "local_a10 = local_9d0" (identifier "local_a10") (= "=") (identifier "local_9d0")) (; ";")) (expression_statement "FUN_00027140(iVar4,pcVar30,pAVar16,local_9d0);" (call_expression "FUN_00027140(iVar4,pcVar30,pAVar16,local_9d0)" (identifier "FUN_00027140") (argument_list "(iVar4,pcVar30,pAVar16,local_9d0)" (( "(") (identifier "iVar4") (, ",") (identifier "pcVar30") (, ",") (identifier "pAVar16") (, ",") (identifier "local_9d0") () ")"))) (; ";")) (expression_statement "BIO_ctrl(pBVar11,1,0,(void *)0x0);" (call_expression "BIO_ctrl(pBVar11,1,0,(void *)0x0)" (identifier "BIO_ctrl") (argument_list "(pBVar11,1,0,(void *)0x0)" (( "(") (identifier "pBVar11") (, ",") (number_literal "1") (, ",") (number_literal "0") (, ",") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))) (; ";")) (expression_statement "BIO_free(pBVar11);" (call_expression "BIO_free(pBVar11)" (identifier "BIO_free") (argument_list "(pBVar11)" (( "(") (identifier "pBVar11") () ")"))) (; ";")) (expression_statement "local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" (identifier "local_a48") (= "=") (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "X509 **" (type_identifier "X509") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (piVar9[0x3a] != 2) {\n    if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;\n    local_a1c = *piVar9;\nLAB_00078282:\n    local_a30 = (char *)piVar9[0x25];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];\nLAB_0007829a:\n    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }\n    local_a28 = local_9b4;\n    pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;\n    pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);\n    local_a10 = pAVar18;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\n    else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_000794d2:\n    iVar38 = 0x3c;\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    goto LAB_00078251;\n  }" (if "if") (parenthesized_expression "(piVar9[0x3a] != 2)" (( "(") (binary_expression "piVar9[0x3a] != 2" (subscript_expression "piVar9[0x3a]" (identifier "piVar9") ([ "[") (number_literal "0x3a") (] "]")) (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n    if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;\n    local_a1c = *piVar9;\nLAB_00078282:\n    local_a30 = (char *)piVar9[0x25];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];\nLAB_0007829a:\n    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }\n    local_a28 = local_9b4;\n    pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;\n    pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;\n    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);\n    local_a10 = pAVar18;\n    if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\n    else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_000794d2:\n    iVar38 = 0x3c;\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    goto LAB_00078251;\n  }" ({ "{") (if_statement "if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;" (if "if") (parenthesized_expression "(*(char *)((int)piVar9 + 0x201) == '\0')" (( "(") (binary_expression "*(char *)((int)piVar9 + 0x201) == '\0'" (pointer_expression "*(char *)((int)piVar9 + 0x201)" (* "*") (cast_expression "(char *)((int)piVar9 + 0x201)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar9 + 0x201)" (( "(") (binary_expression "(int)piVar9 + 0x201" (cast_expression "(int)piVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar9")) (+ "+") (number_literal "0x201")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000780f3;" (goto "goto") (statement_identifier "LAB_000780f3") (; ";"))) (expression_statement "local_a1c = *piVar9;" (assignment_expression "local_a1c = *piVar9" (identifier "local_a1c") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (labeled_statement "LAB_00078282:\n    local_a30 = (char *)piVar9[0x25];" (statement_identifier "LAB_00078282") (: ":") (expression_statement "local_a30 = (char *)piVar9[0x25];" (assignment_expression "local_a30 = (char *)piVar9[0x25]" (identifier "local_a30") (= "=") (cast_expression "(char *)piVar9[0x25]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar9[0x25]" (identifier "piVar9") ([ "[") (number_literal "0x25") (] "]")))) (; ";"))) (expression_statement "local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];" (assignment_expression "local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26]" (identifier "local_a14") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)piVar9[0x26]" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar9[0x26]" (identifier "piVar9") ([ "[") (number_literal "0x26") (] "]")))) (; ";")) (labeled_statement "LAB_0007829a:\n    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }" (statement_identifier "LAB_0007829a") (: ":") (if_statement "if ((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }\n    else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }" (if "if") (parenthesized_expression "((*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0))" (( "(") (binary_expression "(*(char *)((int)piVar9 + 0x252) == '\0') ||\n       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)" (parenthesized_expression "(*(char *)((int)piVar9 + 0x252) == '\0')" (( "(") (binary_expression "*(char *)((int)piVar9 + 0x252) == '\0'" (pointer_expression "*(char *)((int)piVar9 + 0x252)" (* "*") (cast_expression "(char *)((int)piVar9 + 0x252)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar9 + 0x252)" (( "(") (binary_expression "(int)piVar9 + 0x252" (cast_expression "(int)piVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar9")) (+ "+") (number_literal "0x252")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)" (( "(") (comma_expression "iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0" (assignment_expression "iVar38 = inet_pton(10,local_a30,local_9b4)" (identifier "iVar38") (= "=") (call_expression "inet_pton(10,local_a30,local_9b4)" (identifier "inet_pton") (argument_list "(10,local_a30,local_9b4)" (( "(") (number_literal "10") (, ",") (identifier "local_a30") (, ",") (identifier "local_9b4") () ")")))) (, ",") (binary_expression "iVar38 == 0" (identifier "iVar38") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      local_a28 = local_9b4;\n      iVar38 = inet_pton(2,local_a30,local_a28);\n      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);\n      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;\n    }" ({ "{") (expression_statement "local_a28 = local_9b4;" (assignment_expression "local_a28 = local_9b4" (identifier "local_a28") (= "=") (identifier "local_9b4")) (; ";")) (expression_statement "iVar38 = inet_pton(2,local_a30,local_a28);" (assignment_expression "iVar38 = inet_pton(2,local_a30,local_a28)" (identifier "iVar38") (= "=") (call_expression "inet_pton(2,local_a30,local_a28)" (identifier "inet_pton") (argument_list "(2,local_a30,local_a28)" (( "(") (number_literal "2") (, ",") (identifier "local_a30") (, ",") (identifier "local_a28") () ")")))) (; ";")) (expression_statement "local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);" (assignment_expression "local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4)" (identifier "local_a20") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4)" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(~-(uint)(iVar38 == 0) & 4)" (( "(") (binary_expression "~-(uint)(iVar38 == 0) & 4" (unary_expression "~-(uint)(iVar38 == 0)" (~ "~") (unary_expression "-(uint)(iVar38 == 0)" (- "-") (call_expression "(uint)(iVar38 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar38 == 0)" (( "(") (binary_expression "iVar38 == 0" (identifier "iVar38") (== "==") (number_literal "0")) () ")"))))) (& "&") (number_literal "4")) () ")")))) (; ";")) (expression_statement "iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;" (assignment_expression "iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7" (identifier "iVar38") (= "=") (binary_expression "(-(uint)(iVar38 == 0) & 0xfffffffb) + 7" (parenthesized_expression "(-(uint)(iVar38 == 0) & 0xfffffffb)" (( "(") (binary_expression "-(uint)(iVar38 == 0) & 0xfffffffb" (unary_expression "-(uint)(iVar38 == 0)" (- "-") (call_expression "(uint)(iVar38 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar38 == 0)" (( "(") (binary_expression "iVar38 == 0" (identifier "iVar38") (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xfffffffb")) () ")")) (+ "+") (number_literal "7"))) (; ";")) (} "}")) (else_clause "else {\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }" (else "else") (compound_statement "{\n      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;\n      iVar38 = 7;\n    }" ({ "{") (expression_statement "local_a20 = (ASN1_GENERALIZEDTIME *)0x10;" (assignment_expression "local_a20 = (ASN1_GENERALIZEDTIME *)0x10" (identifier "local_a20") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)0x10" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x10"))) (; ";")) (expression_statement "iVar38 = 7;" (assignment_expression "iVar38 = 7" (identifier "iVar38") (= "=") (number_literal "7")) (; ";")) (} "}"))))) (expression_statement "local_a28 = local_9b4;" (assignment_expression "local_a28 = local_9b4" (identifier "local_a28") (= "=") (identifier "local_9b4")) (; ";")) (expression_statement "pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;" (assignment_expression "pAVar18 = (ASN1_GENERALIZEDTIME *)0x0" (identifier "pAVar18") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;" (assignment_expression "pAVar16 = (ASN1_GENERALIZEDTIME *)0x0" (identifier "pAVar16") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);" (assignment_expression "a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0)" (identifier "a") (= "=") (cast_expression "(GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0)" (( "(") (type_descriptor "GENERAL_NAMES *" (type_identifier "GENERAL_NAMES") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0)" (identifier "X509_get_ext_d2i") (argument_list "(local_a48,0x55,(int *)0x0,(int *)0x0)" (( "(") (identifier "local_a48") (, ",") (number_literal "0x55") (, ",") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")"))))) (; ";")) (expression_statement "local_a10 = pAVar18;" (assignment_expression "local_a10 = pAVar18" (identifier "local_a10") (= "=") (identifier "pAVar18")) (; ";")) (if_statement "if (a == (GENERAL_NAMES *)0x0) {\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\n    else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }" (if "if") (parenthesized_expression "(a == (GENERAL_NAMES *)0x0)" (( "(") (binary_expression "a == (GENERAL_NAMES *)0x0" (identifier "a") (== "==") (cast_expression "(GENERAL_NAMES *)0x0" (( "(") (type_descriptor "GENERAL_NAMES *" (type_identifier "GENERAL_NAMES") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);\n      local_9b8 = pAVar18;\n      pXVar31 = X509_get_subject_name(local_a48);\n      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;\n      if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }" ({ "{") (labeled_statement "LAB_00079040:\n      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);" (statement_identifier "LAB_00079040") (: ":") (expression_statement "pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);" (assignment_expression "pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77)" (identifier "pAVar18") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77)" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBX + 0xfe77)" (( "(") (binary_expression "unaff_EBX + 0xfe77" (identifier "unaff_EBX") (+ "+") (number_literal "0xfe77")) () ")")))) (; ";"))) (expression_statement "local_9b8 = pAVar18;" (assignment_expression "local_9b8 = pAVar18" (identifier "local_9b8") (= "=") (identifier "pAVar18")) (; ";")) (expression_statement "pXVar31 = X509_get_subject_name(local_a48);" (assignment_expression "pXVar31 = X509_get_subject_name(local_a48)" (identifier "pXVar31") (= "=") (call_expression "X509_get_subject_name(local_a48)" (identifier "X509_get_subject_name") (argument_list "(local_a48)" (( "(") (identifier "local_a48") () ")")))) (; ";")) (expression_statement "pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;" (assignment_expression "pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff" (identifier "pAVar32") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)0xffffffff" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (if_statement "if (pXVar31 == (X509_NAME *)0x0) {\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }\n      else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }" (if "if") (parenthesized_expression "(pXVar31 == (X509_NAME *)0x0)" (( "(") (binary_expression "pXVar31 == (X509_NAME *)0x0" (identifier "pXVar31") (== "==") (cast_expression "(X509_NAME *)0x0" (( "(") (type_descriptor "X509_NAME *" (type_identifier "X509_NAME") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }\n        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);\nLAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }\n      }" ({ "{") (labeled_statement "LAB_0007908e:\n        if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }" (statement_identifier "LAB_0007908e") (: ":") (if_statement "if (local_9b8 == pAVar18) {\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }\n        else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }" (if "if") (parenthesized_expression "(local_9b8 == pAVar18)" (( "(") (binary_expression "local_9b8 == pAVar18" (identifier "local_9b8") (== "==") (identifier "pAVar18")) () ")")) (compound_statement "{\n          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\nLAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;\n          local_a14 = local_a10;\n        }" ({ "{") (expression_statement "local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;" (assignment_expression "local_9b8 = (ASN1_GENERALIZEDTIME *)0x0" (identifier "local_9b8") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0007950b:\n          unaff_EBX = unaff_EBX + 0x1132b;" (statement_identifier "LAB_0007950b") (: ":") (expression_statement "unaff_EBX = unaff_EBX + 0x1132b;" (assignment_expression "unaff_EBX = unaff_EBX + 0x1132b" (identifier "unaff_EBX") (= "=") (binary_expression "unaff_EBX + 0x1132b" (identifier "unaff_EBX") (+ "+") (number_literal "0x1132b"))) (; ";"))) (expression_statement "local_a14 = local_a10;" (assignment_expression "local_a14 = local_a10" (identifier "local_a14") (= "=") (identifier "local_a10")) (; ";")) (} "}")) (else_clause "else {\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }" (else "else") (compound_statement "{\n          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n          iVar38 = FUN_000602e0(local_9b8,local_a30);\n          pAVar16 = local_9b8;\n          if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }\n          unaff_EBX = unaff_EBX + 0x11363;\n        }" ({ "{") (if_statement "if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;" (if "if") (parenthesized_expression "(local_9b8 == (ASN1_GENERALIZEDTIME *)0x0)" (( "(") (binary_expression "local_9b8 == (ASN1_GENERALIZEDTIME *)0x0" (identifier "local_9b8") (== "==") (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0007950b;" (goto "goto") (statement_identifier "LAB_0007950b") (; ";"))) (expression_statement "iVar38 = FUN_000602e0(local_9b8,local_a30);" (assignment_expression "iVar38 = FUN_000602e0(local_9b8,local_a30)" (identifier "iVar38") (= "=") (call_expression "FUN_000602e0(local_9b8,local_a30)" (identifier "FUN_000602e0") (argument_list "(local_9b8,local_a30)" (( "(") (identifier "local_9b8") (, ",") (identifier "local_a30") () ")")))) (; ";")) (expression_statement "pAVar16 = local_9b8;" (assignment_expression "pAVar16 = local_9b8" (identifier "pAVar16") (= "=") (identifier "local_9b8")) (; ";")) (if_statement "if (iVar38 != 0) {\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }" (if "if") (parenthesized_expression "(iVar38 != 0)" (( "(") (binary_expression "iVar38 != 0" (identifier "iVar38") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);\n            FUN_00027140(local_a1c,pcVar30,local_9b8);\n            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;\n            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);\n            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;\n            local_a10 = extraout_EDX;\n            CRYPTO_free(local_9b8);\n            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n            goto LAB_000780f3;\n          }" ({ "{") (expression_statement "pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);" (assignment_expression "pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX)" (identifier "pcVar30") (= "=") (cast_expression "(char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX)" (( "(") (binary_expression "(int)&__DT_SYMTAB[0x12].st_value + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[0x12].st_value" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&__DT_SYMTAB[0x12].st_value" (& "&") (field_expression "__DT_SYMTAB[0x12].st_value" (subscript_expression "__DT_SYMTAB[0x12]" (identifier "__DT_SYMTAB") ([ "[") (number_literal "0x12") (] "]")) (. ".") (field_identifier "st_value")))) (+ "+") (identifier "unaff_EBX")) () ")")))) (; ";")) (expression_statement "FUN_00027140(local_a1c,pcVar30,local_9b8);" (call_expression "FUN_00027140(local_a1c,pcVar30,local_9b8)" (identifier "FUN_00027140") (argument_list "(local_a1c,pcVar30,local_9b8)" (( "(") (identifier "local_a1c") (, ",") (identifier "pcVar30") (, ",") (identifier "local_9b8") () ")"))) (; ";")) (if_statement "if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;" (if "if") (parenthesized_expression "(local_9b8 == (ASN1_GENERALIZEDTIME *)0x0)" (( "(") (binary_expression "local_9b8 == (ASN1_GENERALIZEDTIME *)0x0" (identifier "local_9b8") (== "==") (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000783a8;" (goto "goto") (statement_identifier "LAB_000783a8") (; ";"))) (expression_statement "pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);" (assignment_expression "pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX)" (identifier "pcVar30") (= "=") (cast_expression "(char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX)" (( "(") (binary_expression "(int)&__DT_SYMTAB[0xf].st_size + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[0xf].st_size" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&__DT_SYMTAB[0xf].st_size" (& "&") (field_expression "__DT_SYMTAB[0xf].st_size" (subscript_expression "__DT_SYMTAB[0xf]" (identifier "__DT_SYMTAB") ([ "[") (number_literal "0xf") (] "]")) (. ".") (field_identifier "st_size")))) (+ "+") (identifier "unaff_EBX")) () ")")))) (; ";")) (expression_statement "pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;" (assignment_expression "pAVar16 = (ASN1_GENERALIZEDTIME *)0x693" (identifier "pAVar16") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)0x693" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x693"))) (; ";")) (expression_statement "local_a10 = extraout_EDX;" (assignment_expression "local_a10 = extraout_EDX" (identifier "local_a10") (= "=") (identifier "extraout_EDX")) (; ";")) (expression_statement "CRYPTO_free(local_9b8);" (call_expression "CRYPTO_free(local_9b8)" (identifier "CRYPTO_free") (argument_list "(local_9b8)" (( "(") (identifier "local_9b8") () ")"))) (; ";")) (expression_statement "local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" (identifier "local_a48") (= "=") (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "X509 **" (type_identifier "X509") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (goto_statement "goto LAB_000780f3;" (goto "goto") (statement_identifier "LAB_000780f3") (; ";")) (} "}"))) (expression_statement "unaff_EBX = unaff_EBX + 0x11363;" (assignment_expression "unaff_EBX = unaff_EBX + 0x11363" (identifier "unaff_EBX") (= "=") (binary_expression "unaff_EBX + 0x11363" (identifier "unaff_EBX") (+ "+") (number_literal "0x11363"))) (; ";")) (} "}"))))) (expression_statement "FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);" (call_expression "FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14)" (identifier "FUN_00027240") (argument_list "(local_a1c,unaff_EBX,pAVar16,local_a14)" (( "(") (identifier "local_a1c") (, ",") (identifier "unaff_EBX") (, ",") (identifier "pAVar16") (, ",") (identifier "local_a14") () ")"))) (; ";")) (labeled_statement "LAB_000790e4:\n        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }" (statement_identifier "LAB_000790e4") (: ":") (if_statement "if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }" (if "if") (parenthesized_expression "(local_9b8 != (ASN1_GENERALIZEDTIME *)0x0)" (( "(") (binary_expression "local_9b8 != (ASN1_GENERALIZEDTIME *)0x0" (identifier "local_9b8") (!= "!=") (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          CRYPTO_free(local_9b8);\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_000794d2;\n        }" ({ "{") (expression_statement "CRYPTO_free(local_9b8);" (call_expression "CRYPTO_free(local_9b8)" (identifier "CRYPTO_free") (argument_list "(local_9b8)" (( "(") (identifier "local_9b8") () ")"))) (; ";")) (expression_statement "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" (identifier "pXVar12") (= "=") (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "X509 **" (type_identifier "X509") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (goto_statement "goto LAB_000794d2;" (goto "goto") (statement_identifier "LAB_000794d2") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }" (else "else") (compound_statement "{\n        do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);\n        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;\n        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);\n        pAVar34 = X509_NAME_ENTRY_get_data(ne);\n        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;\n        iVar38 = ASN1_STRING_type(pAVar34);\n        if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }\n        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);\nLAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;\n        sVar35 = strlen((char *)local_9b8);\n        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);\n        if (pAVar36 == pAVar32) goto LAB_0007908e;\n        FUN_00027240(local_a1c,unaff_EBX + 0x10527);\n        if (local_9b8 != pAVar18) goto LAB_000790e4;\n      }" ({ "{") (do_statement "do {\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        } while (-1 < (int)pAVar32);" (do "do") (compound_statement "{\n          pAVar36 = pAVar32;\n          pAVar16 = pAVar36;\n          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);\n        }" ({ "{") (expression_statement "pAVar36 = pAVar32;" (assignment_expression "pAVar36 = pAVar32" (identifier "pAVar36") (= "=") (identifier "pAVar32")) (; ";")) (expression_statement "pAVar16 = pAVar36;" (assignment_expression "pAVar16 = pAVar36" (identifier "pAVar16") (= "=") (identifier "pAVar36")) (; ";")) (expression_statement "pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);" (assignment_expression "pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36)" (identifier "pAVar32") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36)" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36)" (identifier "X509_NAME_get_index_by_NID") (argument_list "(pXVar31,0xd,(int)pAVar36)" (( "(") (identifier "pXVar31") (, ",") (number_literal "0xd") (, ",") (cast_expression "(int)pAVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pAVar36")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(-1 < (int)pAVar32)" (( "(") (binary_expression "-1 < (int)pAVar32" (number_literal "-1") (< "<") (cast_expression "(int)pAVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pAVar32"))) () ")")) (; ";")) (if_statement "if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;" (if "if") (parenthesized_expression "(pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff)" (( "(") (binary_expression "pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff" (identifier "pAVar36") (== "==") (cast_expression "(ASN1_GENERALIZEDTIME *)0xffffffff" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (goto_statement "goto LAB_0007908e;" (goto "goto") (statement_identifier "LAB_0007908e") (; ";"))) (expression_statement "ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);" (assignment_expression "ne = X509_NAME_get_entry(pXVar31,(int)pAVar36)" (identifier "ne") (= "=") (call_expression "X509_NAME_get_entry(pXVar31,(int)pAVar36)" (identifier "X509_NAME_get_entry") (argument_list "(pXVar31,(int)pAVar36)" (( "(") (identifier "pXVar31") (, ",") (cast_expression "(int)pAVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pAVar36")) () ")")))) (; ";")) (expression_statement "pAVar34 = X509_NAME_ENTRY_get_data(ne);" (assignment_expression "pAVar34 = X509_NAME_ENTRY_get_data(ne)" (identifier "pAVar34") (= "=") (call_expression "X509_NAME_ENTRY_get_data(ne)" (identifier "X509_NAME_ENTRY_get_data") (argument_list "(ne)" (( "(") (identifier "ne") () ")")))) (; ";")) (if_statement "if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;" (if "if") (parenthesized_expression "(pAVar34 == (ASN1_STRING *)0x0)" (( "(") (binary_expression "pAVar34 == (ASN1_STRING *)0x0" (identifier "pAVar34") (== "==") (cast_expression "(ASN1_STRING *)0x0" (( "(") (type_descriptor "ASN1_STRING *" (type_identifier "ASN1_STRING") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0007908e;" (goto "goto") (statement_identifier "LAB_0007908e") (; ";"))) (expression_statement "iVar38 = ASN1_STRING_type(pAVar34);" (assignment_expression "iVar38 = ASN1_STRING_type(pAVar34)" (identifier "iVar38") (= "=") (call_expression "ASN1_STRING_type(pAVar34)" (identifier "ASN1_STRING_type") (argument_list "(pAVar34)" (( "(") (identifier "pAVar34") () ")")))) (; ";")) (if_statement "if (iVar38 == 0xc) {\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }" (if "if") (parenthesized_expression "(iVar38 == 0xc)" (( "(") (binary_expression "iVar38 == 0xc" (identifier "iVar38") (== "==") (number_literal "0xc")) () ")")) (compound_statement "{\n          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);\n          if ((int)pAVar32 < 0) goto LAB_0007969a;\n          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;\n          local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);\n          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }\n          goto LAB_0007950b;\n        }" ({ "{") (expression_statement "pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);" (assignment_expression "pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34)" (identifier "pAVar32") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34)" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "ASN1_STRING_length(pAVar34)" (identifier "ASN1_STRING_length") (argument_list "(pAVar34)" (( "(") (identifier "pAVar34") () ")"))))) (; ";")) (if_statement "if ((int)pAVar32 < 0) goto LAB_0007969a;" (if "if") (parenthesized_expression "((int)pAVar32 < 0)" (( "(") (binary_expression "(int)pAVar32 < 0" (cast_expression "(int)pAVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pAVar32")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007969a;" (goto "goto") (statement_identifier "LAB_0007969a") (; ";"))) (expression_statement "pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;" (assignment_expression "pAVar16 = (ASN1_GENERALIZEDTIME *)0x662" (identifier "pAVar16") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)0x662" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x662"))) (; ";")) (expression_statement "local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);" (assignment_expression "local_9b8 = (ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662)" (identifier "local_9b8") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)\n                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662)" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CRYPTO_malloc((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662)" (identifier "CRYPTO_malloc") (argument_list "((int)((int)&pAVar32->length + 1),\n                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662)" (( "(") (cast_expression "(int)((int)&pAVar32->length + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)&pAVar32->length + 1)" (( "(") (binary_expression "(int)&pAVar32->length + 1" (cast_expression "(int)&pAVar32->length" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pAVar32->length" (& "&") (field_expression "pAVar32->length" (identifier "pAVar32") (-> "->") (field_identifier "length")))) (+ "+") (number_literal "1")) () ")"))) (, ",") (cast_expression "(char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX)" (( "(") (binary_expression "(int)&__DT_SYMTAB[0xf].st_size + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[0xf].st_size" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&__DT_SYMTAB[0xf].st_size" (& "&") (field_expression "__DT_SYMTAB[0xf].st_size" (subscript_expression "__DT_SYMTAB[0xf]" (identifier "__DT_SYMTAB") ([ "[") (number_literal "0xf") (] "]")) (. ".") (field_identifier "st_size")))) (+ "+") (identifier "unaff_EBX")) () ")"))) (, ",") (number_literal "0x662") () ")"))))) (; ";")) (if_statement "if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }" (if "if") (parenthesized_expression "(local_9b8 != (ASN1_GENERALIZEDTIME *)0x0)" (( "(") (binary_expression "local_9b8 != (ASN1_GENERALIZEDTIME *)0x0" (identifier "local_9b8") (!= "!=") (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);\n            pAVar16 = pAVar32;\n            memcpy(local_9b8,pvVar37,(size_t)pAVar32);\n            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';\n            goto LAB_0007969a;\n          }" ({ "{") (expression_statement "pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);" (assignment_expression "pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34)" (identifier "pvVar37") (= "=") (cast_expression "(void *)ASN1_STRING_get0_data(pAVar34)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "ASN1_STRING_get0_data(pAVar34)" (identifier "ASN1_STRING_get0_data") (argument_list "(pAVar34)" (( "(") (identifier "pAVar34") () ")"))))) (; ";")) (expression_statement "pAVar16 = pAVar32;" (assignment_expression "pAVar16 = pAVar32" (identifier "pAVar16") (= "=") (identifier "pAVar32")) (; ";")) (expression_statement "memcpy(local_9b8,pvVar37,(size_t)pAVar32);" (call_expression "memcpy(local_9b8,pvVar37,(size_t)pAVar32)" (identifier "memcpy") (argument_list "(local_9b8,pvVar37,(size_t)pAVar32)" (( "(") (identifier "local_9b8") (, ",") (identifier "pvVar37") (, ",") (cast_expression "(size_t)pAVar32" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "pAVar32")) () ")"))) (; ";")) (expression_statement "*(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';" (assignment_expression "*(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0'" (pointer_expression "*(char *)((int)&pAVar32->length + (int)&local_9b8->length)" (* "*") (cast_expression "(char *)((int)&pAVar32->length + (int)&local_9b8->length)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&pAVar32->length + (int)&local_9b8->length)" (( "(") (binary_expression "(int)&pAVar32->length + (int)&local_9b8->length" (cast_expression "(int)&pAVar32->length" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&pAVar32->length" (& "&") (field_expression "pAVar32->length" (identifier "pAVar32") (-> "->") (field_identifier "length")))) (+ "+") (cast_expression "(int)&local_9b8->length" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&local_9b8->length" (& "&") (field_expression "local_9b8->length" (identifier "local_9b8") (-> "->") (field_identifier "length"))))) () ")")))) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (goto_statement "goto LAB_0007969a;" (goto "goto") (statement_identifier "LAB_0007969a") (; ";")) (} "}"))) (goto_statement "goto LAB_0007950b;" (goto "goto") (statement_identifier "LAB_0007950b") (; ";")) (} "}"))) (expression_statement "pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);" (assignment_expression "pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34)" (identifier "pAVar32") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34)" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34)" (identifier "ASN1_STRING_to_UTF8") (argument_list "((uchar **)&local_9b8,pAVar34)" (( "(") (cast_expression "(uchar **)&local_9b8" (( "(") (type_descriptor "uchar **" (type_identifier "uchar") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&local_9b8" (& "&") (identifier "local_9b8"))) (, ",") (identifier "pAVar34") () ")"))))) (; ";")) (labeled_statement "LAB_0007969a:\n        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;" (statement_identifier "LAB_0007969a") (: ":") (if_statement "if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;" (if "if") (parenthesized_expression "(local_9b8 == (ASN1_GENERALIZEDTIME *)0x0)" (( "(") (binary_expression "local_9b8 == (ASN1_GENERALIZEDTIME *)0x0" (identifier "local_9b8") (== "==") (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0007950b;" (goto "goto") (statement_identifier "LAB_0007950b") (; ";")))) (expression_statement "sVar35 = strlen((char *)local_9b8);" (assignment_expression "sVar35 = strlen((char *)local_9b8)" (identifier "sVar35") (= "=") (call_expression "strlen((char *)local_9b8)" (identifier "strlen") (argument_list "((char *)local_9b8)" (( "(") (cast_expression "(char *)local_9b8" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_9b8")) () ")")))) (; ";")) (expression_statement "pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);" (assignment_expression "pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35)" (identifier "pAVar36") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35)" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0005a1d0(sVar35)" (identifier "FUN_0005a1d0") (argument_list "(sVar35)" (( "(") (identifier "sVar35") () ")"))))) (; ";")) (if_statement "if (pAVar36 == pAVar32) goto LAB_0007908e;" (if "if") (parenthesized_expression "(pAVar36 == pAVar32)" (( "(") (binary_expression "pAVar36 == pAVar32" (identifier "pAVar36") (== "==") (identifier "pAVar32")) () ")")) (goto_statement "goto LAB_0007908e;" (goto "goto") (statement_identifier "LAB_0007908e") (; ";"))) (expression_statement "FUN_00027240(local_a1c,unaff_EBX + 0x10527);" (call_expression "FUN_00027240(local_a1c,unaff_EBX + 0x10527)" (identifier "FUN_00027240") (argument_list "(local_a1c,unaff_EBX + 0x10527)" (( "(") (identifier "local_a1c") (, ",") (binary_expression "unaff_EBX + 0x10527" (identifier "unaff_EBX") (+ "+") (number_literal "0x10527")) () ")"))) (; ";")) (if_statement "if (local_9b8 != pAVar18) goto LAB_000790e4;" (if "if") (parenthesized_expression "(local_9b8 != pAVar18)" (( "(") (binary_expression "local_9b8 != pAVar18" (identifier "local_9b8") (!= "!=") (identifier "pAVar18")) () ")")) (goto_statement "goto LAB_000790e4;" (goto "goto") (statement_identifier "LAB_000790e4") (; ";"))) (} "}")))) (expression_statement "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" (identifier "pXVar12") (= "=") (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "X509 **" (type_identifier "X509") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }" (else "else") (compound_statement "{\n      pcVar20 = (char *)OPENSSL_sk_num(a);\n      if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }\n      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);\n      bVar5 = false;\n      pcVar41 = (char *)0x0;\n      bVar6 = false;\n      bVar7 = false;\n      do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);\nLAB_0007838a:\n      GENERAL_NAMES_free(a);\n      if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }\n      if ((!bVar6) && (!bVar7)) goto LAB_00079040;\n      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);\n      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }" ({ "{") (expression_statement "pcVar20 = (char *)OPENSSL_sk_num(a);" (assignment_expression "pcVar20 = (char *)OPENSSL_sk_num(a)" (identifier "pcVar20") (= "=") (cast_expression "(char *)OPENSSL_sk_num(a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "OPENSSL_sk_num(a)" (identifier "OPENSSL_sk_num") (argument_list "(a)" (( "(") (identifier "a") () ")"))))) (; ";")) (if_statement "if ((int)pcVar20 < 1) {\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }" (if "if") (parenthesized_expression "((int)pcVar20 < 1)" (( "(") (binary_expression "(int)pcVar20 < 1" (cast_expression "(int)pcVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar20")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        GENERAL_NAMES_free(a);\n        local_a10 = pAVar18;\n        goto LAB_00079040;\n      }" ({ "{") (expression_statement "GENERAL_NAMES_free(a);" (call_expression "GENERAL_NAMES_free(a)" (identifier "GENERAL_NAMES_free") (argument_list "(a)" (( "(") (identifier "a") () ")"))) (; ";")) (expression_statement "local_a10 = pAVar18;" (assignment_expression "local_a10 = pAVar18" (identifier "local_a10") (= "=") (identifier "pAVar18")) (; ";")) (goto_statement "goto LAB_00079040;" (goto "goto") (statement_identifier "LAB_00079040") (; ";")) (} "}"))) (expression_statement "pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);" (assignment_expression "pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3)" (identifier "pcVar1") (= "=") (cast_expression "(char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3)" (( "(") (binary_expression "(int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3" (binary_expression "(int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[0xe6].st_name" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&__DT_SYMTAB[0xe6].st_name" (& "&") (field_expression "__DT_SYMTAB[0xe6].st_name" (subscript_expression "__DT_SYMTAB[0xe6]" (identifier "__DT_SYMTAB") ([ "[") (number_literal "0xe6") (] "]")) (. ".") (field_identifier "st_name")))) (+ "+") (identifier "unaff_EBX")) (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" (identifier "bVar5") (= "=") (false "false")) (; ";")) (expression_statement "pcVar41 = (char *)0x0;" (assignment_expression "pcVar41 = (char *)0x0" (identifier "pcVar41") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" (identifier "bVar6") (= "=") (false "false")) (; ";")) (expression_statement "bVar7 = false;" (assignment_expression "bVar7 = false" (identifier "bVar7") (= "=") (false "false")) (; ";")) (do_statement "do {\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      } while (pcVar20 != pcVar41);" (do "do") (compound_statement "{\n        while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }\n        if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }\n        bVar7 = true;\n        pcVar41 = pcVar41 + 1;\n        local_a10 = pAVar18;\n      }" ({ "{") (while_statement "while( true ) {\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          pcVar30 = pcVar41;\n          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);\n          iVar19 = *piVar21;\n          if (iVar19 == 2) break;\n          if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }\nLAB_00078351:\n          pcVar41 = pcVar41 + 1;\n          local_a10 = pAVar18;\n          if (pcVar20 == pcVar41) goto LAB_0007838a;\n        }" ({ "{") (expression_statement "pcVar30 = pcVar41;" (assignment_expression "pcVar30 = pcVar41" (identifier "pcVar30") (= "=") (identifier "pcVar41")) (; ";")) (expression_statement "piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);" (assignment_expression "piVar21 = (int *)OPENSSL_sk_value(a,pcVar41)" (identifier "piVar21") (= "=") (cast_expression "(int *)OPENSSL_sk_value(a,pcVar41)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "OPENSSL_sk_value(a,pcVar41)" (identifier "OPENSSL_sk_value") (argument_list "(a,pcVar41)" (( "(") (identifier "a") (, ",") (identifier "pcVar41") () ")"))))) (; ";")) (expression_statement "iVar19 = *piVar21;" (assignment_expression "iVar19 = *piVar21" (identifier "iVar19") (= "=") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) (; ";")) (if_statement "if (iVar19 == 2) break;" (if "if") (parenthesized_expression "(iVar19 == 2)" (( "(") (binary_expression "iVar19 == 2" (identifier "iVar19") (== "==") (number_literal "2")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (iVar19 == 7) {\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }\n          else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }" (if "if") (parenthesized_expression "(iVar19 == 7)" (( "(") (binary_expression "iVar19 == 7" (identifier "iVar19") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n            if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }\n            bVar6 = true;\n          }" ({ "{") (if_statement "if (iVar38 == 7) {\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }" (if "if") (parenthesized_expression "(iVar38 == 7)" (( "(") (binary_expression "iVar38 == 7" (identifier "iVar38") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);\n              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n              if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }\n            }" ({ "{") (expression_statement "pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);" (assignment_expression "pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1])" (identifier "pvVar37") (= "=") (cast_expression "(void *)ASN1_STRING_get0_data(piVar21[1])" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "ASN1_STRING_get0_data(piVar21[1])" (identifier "ASN1_STRING_get0_data") (argument_list "(piVar21[1])" (( "(") (subscript_expression "piVar21[1]" (identifier "piVar21") ([ "[") (number_literal "1") (] "]")) () ")"))))) (; ";")) (expression_statement "pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);" (assignment_expression "pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1])" (identifier "pAVar32") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1])" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "ASN1_STRING_length((ASN1_STRING *)piVar21[1])" (identifier "ASN1_STRING_length") (argument_list "((ASN1_STRING *)piVar21[1])" (( "(") (cast_expression "(ASN1_STRING *)piVar21[1]" (( "(") (type_descriptor "ASN1_STRING *" (type_identifier "ASN1_STRING") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar21[1]" (identifier "piVar21") ([ "[") (number_literal "1") (] "]"))) () ")"))))) (; ";")) (if_statement "if (local_a20 == pAVar32) {\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }" (if "if") (parenthesized_expression "(local_a20 == pAVar32)" (( "(") (binary_expression "local_a20 == pAVar32" (identifier "local_a20") (== "==") (identifier "pAVar32")) () ")")) (compound_statement "{\n                pcVar30 = local_a28;\n                pAVar16 = local_a20;\n                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);\n                bVar6 = true;\n                if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }\n                goto LAB_00078351;\n              }" ({ "{") (expression_statement "pcVar30 = local_a28;" (assignment_expression "pcVar30 = local_a28" (identifier "pcVar30") (= "=") (identifier "local_a28")) (; ";")) (expression_statement "pAVar16 = local_a20;" (assignment_expression "pAVar16 = local_a20" (identifier "pAVar16") (= "=") (identifier "local_a20")) (; ";")) (expression_statement "iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);" (assignment_expression "iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20)" (identifier "iVar19") (= "=") (call_expression "memcmp(pvVar37,local_a28,(size_t)local_a20)" (identifier "memcmp") (argument_list "(pvVar37,local_a28,(size_t)local_a20)" (( "(") (identifier "pvVar37") (, ",") (identifier "local_a28") (, ",") (cast_expression "(size_t)local_a20" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "local_a20")) () ")")))) (; ";")) (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" (identifier "bVar6") (= "=") (true "true")) (; ";")) (if_statement "if (iVar19 == 0) {\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  pcVar30 = pcVar1;\n                  pAVar16 = local_a14;\n                  FUN_00027140(local_a1c,pcVar1,local_a14);\n                  bVar5 = true;\n                }" ({ "{") (expression_statement "pcVar30 = pcVar1;" (assignment_expression "pcVar30 = pcVar1" (identifier "pcVar30") (= "=") (identifier "pcVar1")) (; ";")) (expression_statement "pAVar16 = local_a14;" (assignment_expression "pAVar16 = local_a14" (identifier "pAVar16") (= "=") (identifier "local_a14")) (; ";")) (expression_statement "FUN_00027140(local_a1c,pcVar1,local_a14);" (call_expression "FUN_00027140(local_a1c,pcVar1,local_a14)" (identifier "FUN_00027140") (argument_list "(local_a1c,pcVar1,local_a14)" (( "(") (identifier "local_a1c") (, ",") (identifier "pcVar1") (, ",") (identifier "local_a14") () ")"))) (; ";")) (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" (identifier "bVar5") (= "=") (true "true")) (; ";")) (} "}"))) (goto_statement "goto LAB_00078351;" (goto "goto") (statement_identifier "LAB_00078351") (; ";")) (} "}"))) (} "}"))) (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" (identifier "bVar6") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }" (else "else") (if_statement "if (iVar19 == iVar38) {\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }" (if "if") (parenthesized_expression "(iVar19 == iVar38)" (( "(") (binary_expression "iVar19 == iVar38" (identifier "iVar19") (== "==") (identifier "iVar38")) () ")")) (compound_statement "{\n            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n            if (iVar38 == 2) goto LAB_00079422;\n          }" ({ "{") (expression_statement "local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);" (assignment_expression "local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1])" (identifier "local_a10") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1])" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "ASN1_STRING_get0_data(piVar21[1])" (identifier "ASN1_STRING_get0_data") (argument_list "(piVar21[1])" (( "(") (subscript_expression "piVar21[1]" (identifier "piVar21") ([ "[") (number_literal "1") (] "]")) () ")"))))) (; ";")) (expression_statement "sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);" (assignment_expression "sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1])" (identifier "sVar35") (= "=") (call_expression "ASN1_STRING_length((ASN1_STRING *)piVar21[1])" (identifier "ASN1_STRING_length") (argument_list "((ASN1_STRING *)piVar21[1])" (( "(") (cast_expression "(ASN1_STRING *)piVar21[1]" (( "(") (type_descriptor "ASN1_STRING *" (type_identifier "ASN1_STRING") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar21[1]" (identifier "piVar21") ([ "[") (number_literal "1") (] "]"))) () ")")))) (; ";")) (if_statement "if (iVar38 == 2) goto LAB_00079422;" (if "if") (parenthesized_expression "(iVar38 == 2)" (( "(") (binary_expression "iVar38 == 2" (identifier "iVar38") (== "==") (number_literal "2")) () ")")) (goto_statement "goto LAB_00079422;" (goto "goto") (statement_identifier "LAB_00079422") (; ";"))) (} "}"))))) (labeled_statement "LAB_00078351:\n          pcVar41 = pcVar41 + 1;" (statement_identifier "LAB_00078351") (: ":") (expression_statement "pcVar41 = pcVar41 + 1;" (assignment_expression "pcVar41 = pcVar41 + 1" (identifier "pcVar41") (= "=") (binary_expression "pcVar41 + 1" (identifier "pcVar41") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "local_a10 = pAVar18;" (assignment_expression "local_a10 = pAVar18" (identifier "local_a10") (= "=") (identifier "pAVar18")) (; ";")) (if_statement "if (pcVar20 == pcVar41) goto LAB_0007838a;" (if "if") (parenthesized_expression "(pcVar20 == pcVar41)" (( "(") (binary_expression "pcVar20 == pcVar41" (identifier "pcVar20") (== "==") (identifier "pcVar41")) () ")")) (goto_statement "goto LAB_0007838a;" (goto "goto") (statement_identifier "LAB_0007838a") (; ";"))) (} "}"))) (if_statement "if (iVar38 == 2) {\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }" (if "if") (parenthesized_expression "(iVar38 == 2)" (( "(") (binary_expression "iVar38 == 2" (identifier "iVar38") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);\n          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);\n          bVar7 = true;\nLAB_00079422:\n          sVar33 = strlen((char *)local_a10);\n          if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;\n          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);\n          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);\n          GENERAL_NAMES_free(a);\n          pAVar16 = local_a14;\n          goto LAB_000783a8;\n        }" ({ "{") (expression_statement "local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);" (assignment_expression "local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1])" (identifier "local_a10") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1])" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "ASN1_STRING_get0_data(piVar21[1])" (identifier "ASN1_STRING_get0_data") (argument_list "(piVar21[1])" (( "(") (subscript_expression "piVar21[1]" (identifier "piVar21") ([ "[") (number_literal "1") (] "]")) () ")"))))) (; ";")) (expression_statement "sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);" (assignment_expression "sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1])" (identifier "sVar35") (= "=") (call_expression "ASN1_STRING_length((ASN1_STRING *)piVar21[1])" (identifier "ASN1_STRING_length") (argument_list "((ASN1_STRING *)piVar21[1])" (( "(") (cast_expression "(ASN1_STRING *)piVar21[1]" (( "(") (type_descriptor "ASN1_STRING *" (type_identifier "ASN1_STRING") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar21[1]" (identifier "piVar21") ([ "[") (number_literal "1") (] "]"))) () ")")))) (; ";")) (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" (identifier "bVar7") (= "=") (true "true")) (; ";")) (labeled_statement "LAB_00079422:\n          sVar33 = strlen((char *)local_a10);" (statement_identifier "LAB_00079422") (: ":") (expression_statement "sVar33 = strlen((char *)local_a10);" (assignment_expression "sVar33 = strlen((char *)local_a10)" (identifier "sVar33") (= "=") (call_expression "strlen((char *)local_a10)" (identifier "strlen") (argument_list "((char *)local_a10)" (( "(") (cast_expression "(char *)local_a10" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_a10")) () ")")))) (; ";"))) (if_statement "if ((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))\n          goto LAB_00078351;" (if "if") (parenthesized_expression "((sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))" (( "(") (binary_expression "(sVar33 != sVar35) ||\n             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0)" (parenthesized_expression "(sVar33 != sVar35)" (( "(") (binary_expression "sVar33 != sVar35" (identifier "sVar33") (!= "!=") (identifier "sVar35")) () ")")) (|| "||") (parenthesized_expression "(pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0)" (( "(") (comma_expression "pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0" (assignment_expression "pcVar30 = local_a30" (identifier "pcVar30") (= "=") (identifier "local_a30")) (, ",") (comma_expression "iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0" (assignment_expression "iVar19 = FUN_000602e0(local_a10,local_a30)" (identifier "iVar19") (= "=") (call_expression "FUN_000602e0(local_a10,local_a30)" (identifier "FUN_000602e0") (argument_list "(local_a10,local_a30)" (( "(") (identifier "local_a10") (, ",") (identifier "local_a30") () ")")))) (, ",") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")))) () ")"))) () ")")) (goto_statement "goto LAB_00078351;" (goto "goto") (statement_identifier "LAB_00078351") (; ";"))) (expression_statement "pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);" (assignment_expression "pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3)" (identifier "pcVar30") (= "=") (cast_expression "(char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3)" (( "(") (binary_expression "(int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3" (binary_expression "(int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX" (cast_expression "(int)&__DT_SYMTAB[0xe3].st_name" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&__DT_SYMTAB[0xe3].st_name" (& "&") (field_expression "__DT_SYMTAB[0xe3].st_name" (subscript_expression "__DT_SYMTAB[0xe3]" (identifier "__DT_SYMTAB") ([ "[") (number_literal "0xe3") (] "]")) (. ".") (field_identifier "st_name")))) (+ "+") (identifier "unaff_EBX")) (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);" (call_expression "FUN_00027140(local_a1c,pcVar30,local_a14,local_a10)" (identifier "FUN_00027140") (argument_list "(local_a1c,pcVar30,local_a14,local_a10)" (( "(") (identifier "local_a1c") (, ",") (identifier "pcVar30") (, ",") (identifier "local_a14") (, ",") (identifier "local_a10") () ")"))) (; ";")) (expression_statement "GENERAL_NAMES_free(a);" (call_expression "GENERAL_NAMES_free(a)" (identifier "GENERAL_NAMES_free") (argument_list "(a)" (( "(") (identifier "a") () ")"))) (; ";")) (expression_statement "pAVar16 = local_a14;" (assignment_expression "pAVar16 = local_a14" (identifier "pAVar16") (= "=") (identifier "local_a14")) (; ";")) (goto_statement "goto LAB_000783a8;" (goto "goto") (statement_identifier "LAB_000783a8") (; ";")) (} "}"))) (expression_statement "bVar7 = true;" (assignment_expression "bVar7 = true" (identifier "bVar7") (= "=") (true "true")) (; ";")) (expression_statement "pcVar41 = pcVar41 + 1;" (assignment_expression "pcVar41 = pcVar41 + 1" (identifier "pcVar41") (= "=") (binary_expression "pcVar41 + 1" (identifier "pcVar41") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_a10 = pAVar18;" (assignment_expression "local_a10 = pAVar18" (identifier "local_a10") (= "=") (identifier "pAVar18")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar20 != pcVar41)" (( "(") (binary_expression "pcVar20 != pcVar41" (identifier "pcVar20") (!= "!=") (identifier "pcVar41")) () ")")) (; ";")) (labeled_statement "LAB_0007838a:\n      GENERAL_NAMES_free(a);" (statement_identifier "LAB_0007838a") (: ":") (expression_statement "GENERAL_NAMES_free(a);" (call_expression "GENERAL_NAMES_free(a)" (identifier "GENERAL_NAMES_free") (argument_list "(a)" (( "(") (identifier "a") () ")"))) (; ";"))) (if_statement "if (bVar5) {\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }" (if "if") (parenthesized_expression "(bVar5)" (( "(") (identifier "bVar5") () ")")) (compound_statement "{\nLAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n        goto LAB_000780f3;\n      }" ({ "{") (labeled_statement "LAB_000783a8:\n        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (statement_identifier "LAB_000783a8") (: ":") (expression_statement "local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" (identifier "local_a48") (= "=") (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "X509 **" (type_identifier "X509") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (goto_statement "goto LAB_000780f3;" (goto "goto") (statement_identifier "LAB_000780f3") (; ";")) (} "}"))) (if_statement "if ((!bVar6) && (!bVar7)) goto LAB_00079040;" (if "if") (parenthesized_expression "((!bVar6) && (!bVar7))" (( "(") (binary_expression "(!bVar6) && (!bVar7)" (parenthesized_expression "(!bVar6)" (( "(") (unary_expression "!bVar6" (! "!") (identifier "bVar6")) () ")")) (&& "&&") (parenthesized_expression "(!bVar7)" (( "(") (unary_expression "!bVar7" (! "!") (identifier "bVar7")) () ")"))) () ")")) (goto_statement "goto LAB_00079040;" (goto "goto") (statement_identifier "LAB_00079040") (; ";"))) (expression_statement "FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);" (call_expression "FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14)" (identifier "FUN_00027140") (argument_list "(local_a1c,unaff_EBX + 0x112bb,local_a14)" (( "(") (identifier "local_a1c") (, ",") (binary_expression "unaff_EBX + 0x112bb" (identifier "unaff_EBX") (+ "+") (number_literal "0x112bb")) (, ",") (identifier "local_a14") () ")"))) (; ";")) (expression_statement "FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);" (call_expression "FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14)" (identifier "FUN_00027240") (argument_list "(local_a1c,unaff_EBX + 0x112df,local_a14)" (( "(") (identifier "local_a1c") (, ",") (binary_expression "unaff_EBX + 0x112df" (identifier "unaff_EBX") (+ "+") (number_literal "0x112df")) (, ",") (identifier "local_a14") () ")"))) (; ";")) (expression_statement "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" (identifier "pXVar12") (= "=") (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "X509 **" (type_identifier "X509") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")))) (labeled_statement "LAB_000794d2:\n    iVar38 = 0x3c;" (statement_identifier "LAB_000794d2") (: ":") (expression_statement "iVar38 = 0x3c;" (assignment_expression "iVar38 = 0x3c" (identifier "iVar38") (= "=") (number_literal "0x3c")) (; ";"))) (expression_statement "X509_free(pXVar12);" (call_expression "X509_free(pXVar12)" (identifier "X509_free") (argument_list "(pXVar12)" (( "(") (identifier "pXVar12") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00078251;" (goto "goto") (statement_identifier "LAB_00078251") (; ";")) (} "}"))) (if_statement "if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) {\n    if (*(char *)((int)piVar9 + 0x201) != '\0') {\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }\n  else if (*(char *)((int)piVar9 + 0x229) != '\0') {\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }" (if "if") (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2)" (( "(") (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" (identifier "piVar9") ([ "[") (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" (( "(") (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" (( "(") (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" (identifier "piVar9") ([ "[") (number_literal "0x65") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (+ "+") (number_literal "0x1d")) () ")")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    if (*(char *)((int)piVar9 + 0x201) != '\0') {\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }\n  }" ({ "{") (if_statement "if (*(char *)((int)piVar9 + 0x201) != '\0') {\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }" (if "if") (parenthesized_expression "(*(char *)((int)piVar9 + 0x201) != '\0')" (( "(") (binary_expression "*(char *)((int)piVar9 + 0x201) != '\0'" (pointer_expression "*(char *)((int)piVar9 + 0x201)" (* "*") (cast_expression "(char *)((int)piVar9 + 0x201)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar9 + 0x201)" (( "(") (binary_expression "(int)piVar9 + 0x201" (cast_expression "(int)piVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar9")) (+ "+") (number_literal "0x201")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      local_a1c = *piVar9;\n      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;\n      goto LAB_00078a68;\n    }" ({ "{") (expression_statement "local_a1c = *piVar9;" (assignment_expression "local_a1c = *piVar9" (identifier "local_a1c") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (if_statement "if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;" (if "if") (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2)" (( "(") (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" (identifier "piVar9") ([ "[") (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" (( "(") (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" (( "(") (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" (identifier "piVar9") ([ "[") (number_literal "0x65") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (+ "+") (number_literal "0x1d")) () ")")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]")) (== "==") (number_literal "2")) () ")")) (goto_statement "goto LAB_00078282;" (goto "goto") (statement_identifier "LAB_00078282") (; ";"))) (goto_statement "goto LAB_00078a68;" (goto "goto") (statement_identifier "LAB_00078a68") (; ";")) (} "}"))) (} "}")) (else_clause "else if (*(char *)((int)piVar9 + 0x229) != '\0') {\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }" (else "else") (if_statement "if (*(char *)((int)piVar9 + 0x229) != '\0') {\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }" (if "if") (parenthesized_expression "(*(char *)((int)piVar9 + 0x229) != '\0')" (( "(") (binary_expression "*(char *)((int)piVar9 + 0x229) != '\0'" (pointer_expression "*(char *)((int)piVar9 + 0x229)" (* "*") (cast_expression "(char *)((int)piVar9 + 0x229)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar9 + 0x229)" (( "(") (binary_expression "(int)piVar9 + 0x229" (cast_expression "(int)piVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar9")) (+ "+") (number_literal "0x229")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    local_a1c = *piVar9;\nLAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];\n    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];\n    goto LAB_0007829a;\n  }" ({ "{") (expression_statement "local_a1c = *piVar9;" (assignment_expression "local_a1c = *piVar9" (identifier "local_a1c") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (labeled_statement "LAB_00078a68:\n    local_a30 = (char *)piVar9[0x37];" (statement_identifier "LAB_00078a68") (: ":") (expression_statement "local_a30 = (char *)piVar9[0x37];" (assignment_expression "local_a30 = (char *)piVar9[0x37]" (identifier "local_a30") (= "=") (cast_expression "(char *)piVar9[0x37]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar9[0x37]" (identifier "piVar9") ([ "[") (number_literal "0x37") (] "]")))) (; ";"))) (expression_statement "local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];" (assignment_expression "local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38]" (identifier "local_a14") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)piVar9[0x38]" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar9[0x38]" (identifier "piVar9") ([ "[") (number_literal "0x38") (] "]")))) (; ";")) (goto_statement "goto LAB_0007829a;" (goto "goto") (statement_identifier "LAB_0007829a") (; ";")) (} "}"))))) (labeled_statement "LAB_000780f3:\n  X509_get_issuer_name(local_a48);" (statement_identifier "LAB_000780f3") (: ":") (expression_statement "X509_get_issuer_name(local_a48);" (call_expression "X509_get_issuer_name(local_a48)" (identifier "X509_get_issuer_name") (argument_list "(local_a48)" (( "(") (identifier "local_a48") () ")"))) (; ";"))) (expression_statement "iVar38 = FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10);" (assignment_expression "iVar38 = FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10)" (identifier "iVar38") (= "=") (call_expression "FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10)" (identifier "FUN_00077df0") (argument_list "(local_a48,pcVar30,pAVar16,local_a10)" (( "(") (identifier "local_a48") (, ",") (identifier "pcVar30") (, ",") (identifier "pAVar16") (, ",") (identifier "local_a10") () ")")))) (; ";")) (if_statement "if (iVar38 == 0) {\n    FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);\n    if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }\n    else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }\n    if (iVar38 != 0) {\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    *local_9f8 = lVar15;\n    if (lVar15 == 0) {\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }\n    else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }\n  }\n  else if (param_3 == '\0') {\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }\n  else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }" (if "if") (parenthesized_expression "(iVar38 == 0)" (( "(") (binary_expression "iVar38 == 0" (identifier "iVar38") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);\n    if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }\n    else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }\n    if (iVar38 != 0) {\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }\nLAB_000784c4:\n    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    *local_9f8 = lVar15;\n    if (lVar15 == 0) {\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }\n    else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22)" (identifier "FUN_00027140") (argument_list "(iVar4,unaff_EBX + 0x10560,puVar22)" (( "(") (identifier "iVar4") (, ",") (binary_expression "unaff_EBX + 0x10560" (identifier "unaff_EBX") (+ "+") (number_literal "0x10560")) (, ",") (identifier "puVar22") () ")"))) (; ";")) (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }\n    else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }" (if "if") (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" (( "(") (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" (( "(") (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" (identifier "piVar9") ([ "[") (number_literal "0x3a") (] "]")) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (( "(") (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" (identifier "piVar9") ([ "[") (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" (( "(") (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" (( "(") (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" (identifier "piVar9") ([ "[") (number_literal "0x65") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (+ "+") (number_literal "0x1d")) () ")")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n      iVar38 = *(int *)(iVar4 + 0x8bc);\n    }" ({ "{") (expression_statement "iVar38 = *(int *)(iVar4 + 0x8bc);" (assignment_expression "iVar38 = *(int *)(iVar4 + 0x8bc)" (identifier "iVar38") (= "=") (pointer_expression "*(int *)(iVar4 + 0x8bc)" (* "*") (cast_expression "(int *)(iVar4 + 0x8bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x8bc)" (( "(") (binary_expression "iVar4 + 0x8bc" (identifier "iVar4") (+ "+") (number_literal "0x8bc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }" (else "else") (compound_statement "{\n      iVar38 = *(int *)(iVar4 + 0x858);\n    }" ({ "{") (expression_statement "iVar38 = *(int *)(iVar4 + 0x858);" (assignment_expression "iVar38 = *(int *)(iVar4 + 0x858)" (identifier "iVar38") (= "=") (pointer_expression "*(int *)(iVar4 + 0x858)" (* "*") (cast_expression "(int *)(iVar4 + 0x858)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x858)" (( "(") (binary_expression "iVar4 + 0x858" (identifier "iVar4") (+ "+") (number_literal "0x858")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (iVar38 != 0) {\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }" (if "if") (parenthesized_expression "(iVar38 != 0)" (( "(") (binary_expression "iVar38 != 0" (identifier "iVar38") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pBVar10 = BIO_s_file();\n      pBVar11 = BIO_new(pBVar10);\n      if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }\n      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }\n      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);\n      if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }\n      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n      iVar38 = 0x53;\n      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n      goto LAB_00078251;\n    }" ({ "{") (expression_statement "pBVar10 = BIO_s_file();" (assignment_expression "pBVar10 = BIO_s_file()" (identifier "pBVar10") (= "=") (call_expression "BIO_s_file()" (identifier "BIO_s_file") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pBVar11 = BIO_new(pBVar10);" (assignment_expression "pBVar11 = BIO_new(pBVar10)" (identifier "pBVar11") (= "=") (call_expression "BIO_new(pBVar10)" (identifier "BIO_new") (argument_list "(pBVar10)" (( "(") (identifier "pBVar10") () ")")))) (; ";")) (if_statement "if (pBVar11 == (BIO *)0x0) {\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }" (if "if") (parenthesized_expression "(pBVar11 == (BIO *)0x0)" (( "(") (binary_expression "pBVar11 == (BIO *)0x0" (identifier "pBVar11") (== "==") (cast_expression "(BIO *)0x0" (( "(") (type_descriptor "BIO *" (type_identifier "BIO") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        e = ERR_get_error();\n        ERR_error_string_n(e,local_924,0x100);\n        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);\n        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n        iVar38 = 0x1b;\n        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n        goto LAB_00078251;\n      }" ({ "{") (expression_statement "e = ERR_get_error();" (assignment_expression "e = ERR_get_error()" (identifier "e") (= "=") (call_expression "ERR_get_error()" (identifier "ERR_get_error") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "ERR_error_string_n(e,local_924,0x100);" (call_expression "ERR_error_string_n(e,local_924,0x100)" (identifier "ERR_error_string_n") (argument_list "(e,local_924,0x100)" (( "(") (identifier "e") (, ",") (identifier "local_924") (, ",") (number_literal "0x100") () ")"))) (; ";")) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924)" (identifier "FUN_00027240") (argument_list "(iVar4,unaff_EBX + 0x10c77,local_924)" (( "(") (identifier "iVar4") (, ",") (binary_expression "unaff_EBX + 0x10c77" (identifier "unaff_EBX") (+ "+") (number_literal "0x10c77")) (, ",") (identifier "local_924") () ")"))) (; ";")) (expression_statement "X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));" (call_expression "X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" (identifier "X509_free") (argument_list "(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" (( "(") (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "X509 **" (type_identifier "X509") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar38 = 0x1b;" (assignment_expression "iVar38 = 0x1b" (identifier "iVar38") (= "=") (number_literal "0x1b")) (; ";")) (expression_statement "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00078251;" (goto "goto") (statement_identifier "LAB_00078251") (; ";")) (} "}"))) (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }\n      else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }" (if "if") (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" (( "(") (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" (( "(") (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" (identifier "piVar9") ([ "[") (number_literal "0x3a") (] "]")) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (( "(") (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" (identifier "piVar9") ([ "[") (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" (( "(") (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" (( "(") (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" (identifier "piVar9") ([ "[") (number_literal "0x65") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (+ "+") (number_literal "0x1d")) () ")")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n        pvVar37 = *(void **)(iVar4 + 0x8bc);\n      }" ({ "{") (expression_statement "pvVar37 = *(void **)(iVar4 + 0x8bc);" (assignment_expression "pvVar37 = *(void **)(iVar4 + 0x8bc)" (identifier "pvVar37") (= "=") (pointer_expression "*(void **)(iVar4 + 0x8bc)" (* "*") (cast_expression "(void **)(iVar4 + 0x8bc)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x8bc)" (( "(") (binary_expression "iVar4 + 0x8bc" (identifier "iVar4") (+ "+") (number_literal "0x8bc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }" (else "else") (compound_statement "{\n        pvVar37 = *(void **)(iVar4 + 0x858);\n      }" ({ "{") (expression_statement "pvVar37 = *(void **)(iVar4 + 0x858);" (assignment_expression "pvVar37 = *(void **)(iVar4 + 0x858)" (identifier "pvVar37") (= "=") (pointer_expression "*(void **)(iVar4 + 0x858)" (* "*") (cast_expression "(void **)(iVar4 + 0x858)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x858)" (( "(") (binary_expression "iVar4 + 0x858" (identifier "iVar4") (+ "+") (number_literal "0x858")) () ")"))))) (; ";")) (} "}")))) (expression_statement "lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);" (assignment_expression "lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37)" (identifier "lVar15") (= "=") (call_expression "BIO_ctrl(pBVar11,0x6c,3,pvVar37)" (identifier "BIO_ctrl") (argument_list "(pBVar11,0x6c,3,pvVar37)" (( "(") (identifier "pBVar11") (, ",") (number_literal "0x6c") (, ",") (number_literal "3") (, ",") (identifier "pvVar37") () ")")))) (; ";")) (if_statement "if (lVar15 < 1) {\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }\n      else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }" (if "if") (parenthesized_expression "(lVar15 < 1)" (( "(") (binary_expression "lVar15 < 1" (identifier "lVar15") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }\n        BIO_free(pBVar11);\n      }" ({ "{") (if_statement "if (param_3 != '\0') {\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }" (if "if") (parenthesized_expression "(param_3 != '\0')" (( "(") (binary_expression "param_3 != '\0'" (identifier "param_3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }\n          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);\n        }" ({ "{") (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }\n          else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }" (if "if") (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" (( "(") (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" (( "(") (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" (identifier "piVar9") ([ "[") (number_literal "0x3a") (] "]")) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (( "(") (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" (identifier "piVar9") ([ "[") (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" (( "(") (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" (( "(") (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" (identifier "piVar9") ([ "[") (number_literal "0x65") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (+ "+") (number_literal "0x1d")) () ")")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n          }" ({ "{") (expression_statement "uVar23 = *(undefined4 *)(iVar4 + 0x8bc);" (assignment_expression "uVar23 = *(undefined4 *)(iVar4 + 0x8bc)" (identifier "uVar23") (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 0x8bc)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x8bc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x8bc)" (( "(") (binary_expression "iVar4 + 0x8bc" (identifier "iVar4") (+ "+") (number_literal "0x8bc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }" (else "else") (compound_statement "{\n            uVar23 = *(undefined4 *)(iVar4 + 0x858);\n          }" ({ "{") (expression_statement "uVar23 = *(undefined4 *)(iVar4 + 0x858);" (assignment_expression "uVar23 = *(undefined4 *)(iVar4 + 0x858)" (identifier "uVar23") (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 0x858)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x858)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x858)" (( "(") (binary_expression "iVar4 + 0x858" (identifier "iVar4") (+ "+") (number_literal "0x858")) () ")"))))) (; ";")) (} "}")))) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23)" (identifier "FUN_00027240") (argument_list "(iVar4,unaff_EBX + 0x113cf,uVar23)" (( "(") (identifier "iVar4") (, ",") (binary_expression "unaff_EBX + 0x113cf" (identifier "unaff_EBX") (+ "+") (number_literal "0x113cf")) (, ",") (identifier "uVar23") () ")"))) (; ";")) (} "}"))) (expression_statement "BIO_free(pBVar11);" (call_expression "BIO_free(pBVar11)" (identifier "BIO_free") (argument_list "(pBVar11)" (( "(") (identifier "pBVar11") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }" (else "else") (compound_statement "{\n        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);\n        if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }\n        X509_free(pXVar12);\n      }" ({ "{") (expression_statement "pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);" (assignment_expression "pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0)" (identifier "pXVar12") (= "=") (call_expression "PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0)" (identifier "PEM_read_bio_X509") (argument_list "(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0)" (( "(") (identifier "pBVar11") (, ",") (cast_expression "(X509 **)0x0" (( "(") (type_descriptor "X509 **" (type_identifier "X509") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) () ")")))) (; ";")) (if_statement "if (pXVar12 == (X509 *)0x0) {\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }\n        else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }" (if "if") (parenthesized_expression "(pXVar12 == (X509 *)0x0)" (( "(") (binary_expression "pXVar12 == (X509 *)0x0" (identifier "pXVar12") (== "==") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }\n          BIO_free(pBVar11);\n          pXVar12 = (X509 *)0x0;\n        }" ({ "{") (if_statement "if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }" (if "if") (parenthesized_expression "(param_3 != '\0')" (( "(") (binary_expression "param_3 != '\0'" (identifier "param_3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);\n          }" ({ "{") (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }" (if "if") (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" (( "(") (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" (( "(") (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" (identifier "piVar9") ([ "[") (number_literal "0x3a") (] "]")) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (( "(") (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" (identifier "piVar9") ([ "[") (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" (( "(") (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" (( "(") (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" (identifier "piVar9") ([ "[") (number_literal "0x65") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (+ "+") (number_literal "0x1d")) () ")")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }" ({ "{") (expression_statement "uVar23 = *(undefined4 *)(iVar4 + 0x8bc);" (assignment_expression "uVar23 = *(undefined4 *)(iVar4 + 0x8bc)" (identifier "uVar23") (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 0x8bc)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x8bc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x8bc)" (( "(") (binary_expression "iVar4 + 0x8bc" (identifier "iVar4") (+ "+") (number_literal "0x8bc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }" (else "else") (compound_statement "{\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }" ({ "{") (expression_statement "uVar23 = *(undefined4 *)(iVar4 + 0x858);" (assignment_expression "uVar23 = *(undefined4 *)(iVar4 + 0x858)" (identifier "uVar23") (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 0x858)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x858)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x858)" (( "(") (binary_expression "iVar4 + 0x858" (identifier "iVar4") (+ "+") (number_literal "0x858")) () ")"))))) (; ";")) (} "}")))) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23)" (identifier "FUN_00027240") (argument_list "(iVar4,unaff_EBX + 0x113f7,uVar23)" (( "(") (identifier "iVar4") (, ",") (binary_expression "unaff_EBX + 0x113f7" (identifier "unaff_EBX") (+ "+") (number_literal "0x113f7")) (, ",") (identifier "uVar23") () ")"))) (; ";")) (} "}"))) (expression_statement "BIO_free(pBVar11);" (call_expression "BIO_free(pBVar11)" (identifier "BIO_free") (argument_list "(pBVar11)" (( "(") (identifier "pBVar11") () ")"))) (; ";")) (expression_statement "pXVar12 = (X509 *)0x0;" (assignment_expression "pXVar12 = (X509 *)0x0" (identifier "pXVar12") (= "=") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }" (else "else") (compound_statement "{\n          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n          if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }\n          if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }\n          BIO_free(pBVar11);\n        }" ({ "{") (expression_statement "iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));" (assignment_expression "iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8))" (identifier "iVar38") (= "=") (call_expression "X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8))" (identifier "X509_check_issued") (argument_list "(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8))" (( "(") (identifier "pXVar12") (, ",") (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "X509 **" (type_identifier "X509") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar38 == 0) {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }" (if "if") (parenthesized_expression "(iVar38 == 0)" (( "(") (binary_expression "iVar38 == 0" (identifier "iVar38") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }\n            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);\n            BIO_free(pBVar11);\n            X509_free(pXVar12);\n            goto LAB_000784c4;\n          }" ({ "{") (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }\n            else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }" (if "if") (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" (( "(") (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" (( "(") (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" (identifier "piVar9") ([ "[") (number_literal "0x3a") (] "]")) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (( "(") (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" (identifier "piVar9") ([ "[") (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" (( "(") (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" (( "(") (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" (identifier "piVar9") ([ "[") (number_literal "0x65") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (+ "+") (number_literal "0x1d")) () ")")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);\n            }" ({ "{") (expression_statement "puVar22 = *(undefined1 **)(iVar4 + 0x8bc);" (assignment_expression "puVar22 = *(undefined1 **)(iVar4 + 0x8bc)" (identifier "puVar22") (= "=") (pointer_expression "*(undefined1 **)(iVar4 + 0x8bc)" (* "*") (cast_expression "(undefined1 **)(iVar4 + 0x8bc)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x8bc)" (( "(") (binary_expression "iVar4 + 0x8bc" (identifier "iVar4") (+ "+") (number_literal "0x8bc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }" (else "else") (compound_statement "{\n              puVar22 = *(undefined1 **)(iVar4 + 0x858);\n            }" ({ "{") (expression_statement "puVar22 = *(undefined1 **)(iVar4 + 0x858);" (assignment_expression "puVar22 = *(undefined1 **)(iVar4 + 0x858)" (identifier "puVar22") (= "=") (pointer_expression "*(undefined1 **)(iVar4 + 0x858)" (* "*") (cast_expression "(undefined1 **)(iVar4 + 0x858)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x858)" (( "(") (binary_expression "iVar4 + 0x858" (identifier "iVar4") (+ "+") (number_literal "0x858")) () ")"))))) (; ";")) (} "}")))) (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22)" (identifier "FUN_00027140") (argument_list "(iVar4,unaff_EBX + 0x1144b,puVar22)" (( "(") (identifier "iVar4") (, ",") (binary_expression "unaff_EBX + 0x1144b" (identifier "unaff_EBX") (+ "+") (number_literal "0x1144b")) (, ",") (identifier "puVar22") () ")"))) (; ";")) (expression_statement "BIO_free(pBVar11);" (call_expression "BIO_free(pBVar11)" (identifier "BIO_free") (argument_list "(pBVar11)" (( "(") (identifier "pBVar11") () ")"))) (; ";")) (expression_statement "X509_free(pXVar12);" (call_expression "X509_free(pXVar12)" (identifier "X509_free") (argument_list "(pXVar12)" (( "(") (identifier "pXVar12") () ")"))) (; ";")) (goto_statement "goto LAB_000784c4;" (goto "goto") (statement_identifier "LAB_000784c4") (; ";")) (} "}"))) (if_statement "if (param_3 != '\0') {\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }" (if "if") (parenthesized_expression "(param_3 != '\0')" (( "(") (binary_expression "param_3 != '\0'" (identifier "param_3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }\n            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);\n          }" ({ "{") (if_statement "if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }\n            else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }" (if "if") (parenthesized_expression "((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" (( "(") (binary_expression "(piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(piVar9[0x3a] == 2)" (( "(") (binary_expression "piVar9[0x3a] == 2" (subscript_expression "piVar9[0x3a]" (identifier "piVar9") ([ "[") (number_literal "0x3a") (] "]")) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (( "(") (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" (identifier "piVar9") ([ "[") (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" (( "(") (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" (( "(") (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" (identifier "piVar9") ([ "[") (number_literal "0x65") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (+ "+") (number_literal "0x1d")) () ")")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);\n            }" ({ "{") (expression_statement "uVar23 = *(undefined4 *)(iVar4 + 0x8bc);" (assignment_expression "uVar23 = *(undefined4 *)(iVar4 + 0x8bc)" (identifier "uVar23") (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 0x8bc)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x8bc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x8bc)" (( "(") (binary_expression "iVar4 + 0x8bc" (identifier "iVar4") (+ "+") (number_literal "0x8bc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }" (else "else") (compound_statement "{\n              uVar23 = *(undefined4 *)(iVar4 + 0x858);\n            }" ({ "{") (expression_statement "uVar23 = *(undefined4 *)(iVar4 + 0x858);" (assignment_expression "uVar23 = *(undefined4 *)(iVar4 + 0x858)" (identifier "uVar23") (= "=") (pointer_expression "*(undefined4 *)(iVar4 + 0x858)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x858)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x858)" (( "(") (binary_expression "iVar4 + 0x858" (identifier "iVar4") (+ "+") (number_literal "0x858")) () ")"))))) (; ";")) (} "}")))) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23)" (identifier "FUN_00027240") (argument_list "(iVar4,unaff_EBX + 0x1141f,uVar23)" (( "(") (identifier "iVar4") (, ",") (binary_expression "unaff_EBX + 0x1141f" (identifier "unaff_EBX") (+ "+") (number_literal "0x1141f")) (, ",") (identifier "uVar23") () ")"))) (; ";")) (} "}"))) (expression_statement "BIO_free(pBVar11);" (call_expression "BIO_free(pBVar11)" (identifier "BIO_free") (argument_list "(pBVar11)" (( "(") (identifier "pBVar11") () ")"))) (; ";")) (} "}")))) (expression_statement "X509_free(pXVar12);" (call_expression "X509_free(pXVar12)" (identifier "X509_free") (argument_list "(pXVar12)" (( "(") (identifier "pXVar12") () ")"))) (; ";")) (} "}")))) (expression_statement "X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));" (call_expression "X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" (identifier "X509_free") (argument_list "(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" (( "(") (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "X509 **" (type_identifier "X509") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar38 = 0x53;" (assignment_expression "iVar38 = 0x53" (identifier "iVar38") (= "=") (number_literal "0x53")) (; ";")) (expression_statement "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00078251;" (goto "goto") (statement_identifier "LAB_00078251") (; ";")) (} "}"))) (labeled_statement "LAB_000784c4:\n    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));" (statement_identifier "LAB_000784c4") (: ":") (expression_statement "lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));" (assignment_expression "lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" (identifier "lVar15") (= "=") (call_expression "SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" (identifier "SSL_get_verify_result") (argument_list "(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" (( "(") (pointer_expression "*(SSL **)(*(int *)(param_2 + 0xc) + 4)" (* "*") (cast_expression "(SSL **)(*(int *)(param_2 + 0xc) + 4)" (( "(") (type_descriptor "SSL **" (type_identifier "SSL") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 4" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";"))) (expression_statement "*local_9f8 = lVar15;" (assignment_expression "*local_9f8 = lVar15" (pointer_expression "*local_9f8" (* "*") (identifier "local_9f8")) (= "=") (identifier "lVar15")) (; ";")) (if_statement "if (lVar15 == 0) {\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }\n    else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }" (if "if") (parenthesized_expression "(lVar15 == 0)" (( "(") (binary_expression "lVar15 == 0" (identifier "lVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar38 = 0;\n      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);\n      iVar19 = piVar9[0x3a];\n    }" ({ "{") (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" (identifier "iVar38") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22)" (identifier "FUN_00027140") (argument_list "(iVar4,unaff_EBX + 0x1056d,puVar22)" (( "(") (identifier "iVar4") (, ",") (binary_expression "unaff_EBX + 0x1056d" (identifier "unaff_EBX") (+ "+") (number_literal "0x1056d")) (, ",") (identifier "puVar22") () ")"))) (; ";")) (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" (identifier "iVar19") (= "=") (subscript_expression "piVar9[0x3a]" (identifier "piVar9") ([ "[") (number_literal "0x3a") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }" (else "else") (compound_statement "{\n      iVar19 = piVar9[0x3a];\n      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }\n      if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }\n    }" ({ "{") (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" (identifier "iVar19") (= "=") (subscript_expression "piVar9[0x3a]" (identifier "piVar9") ([ "[") (number_literal "0x3a") (] "]"))) (; ";")) (if_statement "if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n        cVar3 = (char)piVar9[0x8a];\n      }\n      else {\n        cVar3 = (char)piVar9[0x80];\n      }" (if "if") (parenthesized_expression "((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" (( "(") (binary_expression "(iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(iVar19 == 2)" (( "(") (binary_expression "iVar19 == 2" (identifier "iVar19") (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (( "(") (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" (identifier "piVar9") ([ "[") (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" (( "(") (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" (( "(") (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" (identifier "piVar9") ([ "[") (number_literal "0x65") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (+ "+") (number_literal "0x1d")) () ")")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n        cVar3 = (char)piVar9[0x8a];\n      }" ({ "{") (expression_statement "cVar3 = (char)piVar9[0x8a];" (assignment_expression "cVar3 = (char)piVar9[0x8a]" (identifier "cVar3") (= "=") (cast_expression "(char)piVar9[0x8a]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar9[0x8a]" (identifier "piVar9") ([ "[") (number_literal "0x8a") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n        cVar3 = (char)piVar9[0x80];\n      }" (else "else") (compound_statement "{\n        cVar3 = (char)piVar9[0x80];\n      }" ({ "{") (expression_statement "cVar3 = (char)piVar9[0x80];" (assignment_expression "cVar3 = (char)piVar9[0x80]" (identifier "cVar3") (= "=") (cast_expression "(char)piVar9[0x80]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar9[0x80]" (identifier "piVar9") ([ "[") (number_literal "0x80") (] "]")))) (; ";")) (} "}")))) (if_statement "if (cVar3 == '\0') {\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }\n      else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        iVar38 = 0;\n        pcVar30 = X509_verify_cert_error_string(lVar15);\n        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);\n        iVar19 = piVar9[0x3a];\n      }" ({ "{") (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" (identifier "iVar38") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar30 = X509_verify_cert_error_string(lVar15);" (assignment_expression "pcVar30 = X509_verify_cert_error_string(lVar15)" (identifier "pcVar30") (= "=") (call_expression "X509_verify_cert_error_string(lVar15)" (identifier "X509_verify_cert_error_string") (argument_list "(lVar15)" (( "(") (identifier "lVar15") () ")")))) (; ";")) (expression_statement "FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);" (call_expression "FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15)" (identifier "FUN_00027140") (argument_list "(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15)" (( "(") (identifier "iVar4") (, ",") (binary_expression "unaff_EBX + 0x1149b" (identifier "unaff_EBX") (+ "+") (number_literal "0x1149b")) (, ",") (identifier "pcVar30") (, ",") (identifier "lVar15") () ")"))) (; ";")) (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" (identifier "iVar19") (= "=") (subscript_expression "piVar9[0x3a]" (identifier "piVar9") ([ "[") (number_literal "0x3a") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }" (else "else") (compound_statement "{\n        iVar38 = 0x3c;\n        if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }\n      }" ({ "{") (expression_statement "iVar38 = 0x3c;" (assignment_expression "iVar38 = 0x3c" (identifier "iVar38") (= "=") (number_literal "0x3c")) (; ";")) (if_statement "if (param_3 != '\0') {\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }" (if "if") (parenthesized_expression "(param_3 != '\0')" (( "(") (binary_expression "param_3 != '\0'" (identifier "param_3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          pcVar30 = X509_verify_cert_error_string(lVar15);\n          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);\n          iVar19 = piVar9[0x3a];\n        }" ({ "{") (expression_statement "pcVar30 = X509_verify_cert_error_string(lVar15);" (assignment_expression "pcVar30 = X509_verify_cert_error_string(lVar15)" (identifier "pcVar30") (= "=") (call_expression "X509_verify_cert_error_string(lVar15)" (identifier "X509_verify_cert_error_string") (argument_list "(lVar15)" (( "(") (identifier "lVar15") () ")")))) (; ";")) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15)" (identifier "FUN_00027240") (argument_list "(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15)" (( "(") (identifier "iVar4") (, ",") (binary_expression "unaff_EBX + 0x11473" (identifier "unaff_EBX") (+ "+") (number_literal "0x11473")) (, ",") (identifier "pcVar30") (, ",") (identifier "lVar15") () ")"))) (; ";")) (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" (identifier "iVar19") (= "=") (subscript_expression "piVar9[0x3a]" (identifier "piVar9") ([ "[") (number_literal "0x3a") (] "]"))) (; ";")) (} "}"))) (} "}")))) (} "}")))) (} "}")) (else_clause "else if (param_3 == '\0') {\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }\n  else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }" (else "else") (if_statement "if (param_3 == '\0') {\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }\n  else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }" (if "if") (parenthesized_expression "(param_3 == '\0')" (( "(") (binary_expression "param_3 == '\0'" (identifier "param_3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar38 = 0x3c;\n    iVar19 = piVar9[0x3a];\n  }" ({ "{") (expression_statement "iVar38 = 0x3c;" (assignment_expression "iVar38 = 0x3c" (identifier "iVar38") (= "=") (number_literal "0x3c")) (; ";")) (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" (identifier "iVar19") (= "=") (subscript_expression "piVar9[0x3a]" (identifier "piVar9") ([ "[") (number_literal "0x3a") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }" (else "else") (compound_statement "{\n    iVar38 = 0x3c;\n    FUN_00027240(iVar4,unaff_EBX + 0x113ab);\n    iVar19 = piVar9[0x3a];\n  }" ({ "{") (expression_statement "iVar38 = 0x3c;" (assignment_expression "iVar38 = 0x3c" (identifier "iVar38") (= "=") (number_literal "0x3c")) (; ";")) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x113ab);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x113ab)" (identifier "FUN_00027240") (argument_list "(iVar4,unaff_EBX + 0x113ab)" (( "(") (identifier "iVar4") (, ",") (binary_expression "unaff_EBX + 0x113ab" (identifier "unaff_EBX") (+ "+") (number_literal "0x113ab")) () ")"))) (; ";")) (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" (identifier "iVar19") (= "=") (subscript_expression "piVar9[0x3a]" (identifier "piVar9") ([ "[") (number_literal "0x3a") (] "]"))) (; ";")) (} "}")))))) (if_statement "if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n    cVar3 = *(char *)((int)piVar9 + 0x22a);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }\n  else {\n    cVar3 = *(char *)((int)piVar9 + 0x202);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }" (if "if") (parenthesized_expression "((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" (( "(") (binary_expression "(iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(iVar19 == 2)" (( "(") (binary_expression "iVar19 == 2" (identifier "iVar19") (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (( "(") (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" (identifier "piVar9") ([ "[") (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" (( "(") (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" (( "(") (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" (identifier "piVar9") ([ "[") (number_literal "0x65") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (+ "+") (number_literal "0x1d")) () ")")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n    cVar3 = *(char *)((int)piVar9 + 0x22a);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }" ({ "{") (expression_statement "cVar3 = *(char *)((int)piVar9 + 0x22a);" (assignment_expression "cVar3 = *(char *)((int)piVar9 + 0x22a)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)((int)piVar9 + 0x22a)" (* "*") (cast_expression "(char *)((int)piVar9 + 0x22a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar9 + 0x22a)" (( "(") (binary_expression "(int)piVar9 + 0x22a" (cast_expression "(int)piVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar9")) (+ "+") (number_literal "0x22a")) () ")"))))) (; ";")) (expression_statement "iVar28 = *(int *)(param_2 + 0xc);" (assignment_expression "iVar28 = *(int *)(param_2 + 0xc)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    cVar3 = *(char *)((int)piVar9 + 0x202);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }" (else "else") (compound_statement "{\n    cVar3 = *(char *)((int)piVar9 + 0x202);\n    iVar28 = *(int *)(param_2 + 0xc);\n  }" ({ "{") (expression_statement "cVar3 = *(char *)((int)piVar9 + 0x202);" (assignment_expression "cVar3 = *(char *)((int)piVar9 + 0x202)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)((int)piVar9 + 0x202)" (* "*") (cast_expression "(char *)((int)piVar9 + 0x202)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar9 + 0x202)" (( "(") (binary_expression "(int)piVar9 + 0x202" (cast_expression "(int)piVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar9")) (+ "+") (number_literal "0x202")) () ")"))))) (; ";")) (expression_statement "iVar28 = *(int *)(param_2 + 0xc);" (assignment_expression "iVar28 = *(int *)(param_2 + 0xc)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (cVar3 == '\0') {\nLAB_0007814e:\n    if (param_3 == '\0') {\n      iVar38 = 0;\n    }\n    if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }\n    else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }\n    pXVar12 = *(X509 **)(iVar28 + 8);\n    local_9d0 = pAVar16;\n    if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_00078230:\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    *(undefined4 *)(param_2 + 8) = 5;\n    goto LAB_00078251;\n  }" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0007814e:\n    if (param_3 == '\0') {\n      iVar38 = 0;\n    }\n    if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }\n    else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }\n    pXVar12 = *(X509 **)(iVar28 + 8);\n    local_9d0 = pAVar16;\n    if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }\nLAB_00078230:\n    X509_free(pXVar12);\n    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\n    *(undefined4 *)(param_2 + 8) = 5;\n    goto LAB_00078251;\n  }" ({ "{") (labeled_statement "LAB_0007814e:\n    if (param_3 == '\0') {\n      iVar38 = 0;\n    }" (statement_identifier "LAB_0007814e") (: ":") (if_statement "if (param_3 == '\0') {\n      iVar38 = 0;\n    }" (if "if") (parenthesized_expression "(param_3 == '\0')" (( "(") (binary_expression "param_3 == '\0'" (identifier "param_3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar38 = 0;\n    }" ({ "{") (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" (identifier "iVar38") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }\n    else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }" (if "if") (parenthesized_expression "((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2))" (( "(") (binary_expression "(iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (parenthesized_expression "(iVar19 == 2)" (( "(") (binary_expression "iVar19 == 2" (identifier "iVar19") (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)" (( "(") (binary_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2" (subscript_expression "piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2]" (identifier "piVar9") ([ "[") (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4 + 2" (binary_expression "((piVar9[0x65] != -1) + 0x1d) * 4" (parenthesized_expression "((piVar9[0x65] != -1) + 0x1d)" (( "(") (binary_expression "(piVar9[0x65] != -1) + 0x1d" (parenthesized_expression "(piVar9[0x65] != -1)" (( "(") (binary_expression "piVar9[0x65] != -1" (subscript_expression "piVar9[0x65]" (identifier "piVar9") ([ "[") (number_literal "0x65") (] "]")) (!= "!=") (number_literal "-1")) () ")")) (+ "+") (number_literal "0x1d")) () ")")) (* "*") (number_literal "4")) (+ "+") (number_literal "2")) (] "]")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);\n    }" ({ "{") (expression_statement "pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);" (assignment_expression "pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8)" (identifier "pAVar16") (= "=") (pointer_expression "*(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8)" (* "*") (cast_expression "(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8)" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME **" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x9e8)" (( "(") (binary_expression "iVar4 + 0x9e8" (identifier "iVar4") (+ "+") (number_literal "0x9e8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }" (else "else") (compound_statement "{\n      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);\n    }" ({ "{") (expression_statement "pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);" (assignment_expression "pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4)" (identifier "pAVar16") (= "=") (pointer_expression "*(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4)" (* "*") (cast_expression "(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4)" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME **" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x9e4)" (( "(") (binary_expression "iVar4 + 0x9e4" (identifier "iVar4") (+ "+") (number_literal "0x9e4")) () ")"))))) (; ";")) (} "}")))) (expression_statement "pXVar12 = *(X509 **)(iVar28 + 8);" (assignment_expression "pXVar12 = *(X509 **)(iVar28 + 8)" (identifier "pXVar12") (= "=") (pointer_expression "*(X509 **)(iVar28 + 8)" (* "*") (cast_expression "(X509 **)(iVar28 + 8)" (( "(") (type_descriptor "X509 **" (type_identifier "X509") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar28 + 8)" (( "(") (binary_expression "iVar28 + 8" (identifier "iVar28") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_9d0 = pAVar16;" (assignment_expression "local_9d0 = pAVar16" (identifier "local_9d0") (= "=") (identifier "pAVar16")) (; ";")) (if_statement "if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }" (if "if") (parenthesized_expression "((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0))" (( "(") (binary_expression "(iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)" (parenthesized_expression "(iVar38 == 0)" (( "(") (binary_expression "iVar38 == 0" (identifier "iVar38") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)" (( "(") (binary_expression "pAVar16 != (ASN1_GENERALIZEDTIME *)0x0" (identifier "pAVar16") (!= "!=") (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;\n      if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }\n      FUN_00027240(iVar4,unaff_EBX + 0x11577);\n      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n    }" ({ "{") (expression_statement "local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;" (assignment_expression "local_9b8 = (ASN1_GENERALIZEDTIME *)0x0" (identifier "local_9b8") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (pXVar12 == (X509 *)0x0) {\nLAB_00078208:\n        iVar38 = 0x5a;\n      }\n      else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }" (if "if") (parenthesized_expression "(pXVar12 == (X509 *)0x0)" (( "(") (binary_expression "pXVar12 == (X509 *)0x0" (identifier "pXVar12") (== "==") (cast_expression "(X509 *)0x0" (( "(") (type_descriptor "X509 *" (type_identifier "X509") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00078208:\n        iVar38 = 0x5a;\n      }" ({ "{") (labeled_statement "LAB_00078208:\n        iVar38 = 0x5a;" (statement_identifier "LAB_00078208") (: ":") (expression_statement "iVar38 = 0x5a;" (assignment_expression "iVar38 = 0x5a" (identifier "iVar38") (= "=") (number_literal "0x5a")) (; ";"))) (} "}")) (else_clause "else {\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }" (else "else") (compound_statement "{\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);\n        if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;\n        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);\n        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);\n        if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }\n        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);\n        (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n        if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }\n      }" ({ "{") (expression_statement "pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);" (assignment_expression "pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12)" (identifier "pXVar17") (= "=") (cast_expression "(X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12)" (( "(") (type_descriptor "X509_PUBKEY *" (type_identifier "X509_PUBKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_get_X509_PUBKEY(pXVar12)" (identifier "X509_get_X509_PUBKEY") (argument_list "(pXVar12)" (( "(") (identifier "pXVar12") () ")"))))) (; ";")) (expression_statement "iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);" (assignment_expression "iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0)" (identifier "iVar38") (= "=") (call_expression "i2d_X509_PUBKEY(pXVar17,(uchar **)0x0)" (identifier "i2d_X509_PUBKEY") (argument_list "(pXVar17,(uchar **)0x0)" (( "(") (identifier "pXVar17") (, ",") (cast_expression "(uchar **)0x0" (( "(") (type_descriptor "uchar **" (type_identifier "uchar") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")) () ")")))) (; ";")) (if_statement "if ((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;" (if "if") (parenthesized_expression "((iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0))" (( "(") (binary_expression "(iVar38 < 1) ||\n           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)" (parenthesized_expression "(iVar38 < 1)" (( "(") (binary_expression "iVar38 < 1" (identifier "iVar38") (< "<") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)" (( "(") (comma_expression "pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),\n           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0" (assignment_expression "pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38)" (identifier "pAVar18") (= "=") (cast_expression "(ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38)" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(unaff_EBX + 0x39177))(iVar38)" (parenthesized_expression "(**(code **)(unaff_EBX + 0x39177))" (( "(") (pointer_expression "**(code **)(unaff_EBX + 0x39177)" (* "*") (pointer_expression "*(code **)(unaff_EBX + 0x39177)" (* "*") (cast_expression "(code **)(unaff_EBX + 0x39177)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBX + 0x39177)" (( "(") (binary_expression "unaff_EBX + 0x39177" (identifier "unaff_EBX") (+ "+") (number_literal "0x39177")) () ")"))))) () ")")) (argument_list "(iVar38)" (( "(") (identifier "iVar38") () ")"))))) (, ",") (comma_expression "local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0" (assignment_expression "local_9b8 = pAVar18" (identifier "local_9b8") (= "=") (identifier "pAVar18")) (, ",") (binary_expression "pAVar18 == (ASN1_GENERALIZEDTIME *)0x0" (identifier "pAVar18") (== "==") (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))) () ")"))) () ")")) (goto_statement "goto LAB_00078208;" (goto "goto") (statement_identifier "LAB_00078208") (; ";"))) (expression_statement "pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);" (assignment_expression "pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12)" (identifier "pXVar17") (= "=") (cast_expression "(X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12)" (( "(") (type_descriptor "X509_PUBKEY *" (type_identifier "X509_PUBKEY") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "X509_get_X509_PUBKEY(pXVar12)" (identifier "X509_get_X509_PUBKEY") (argument_list "(pXVar12)" (( "(") (identifier "pXVar12") () ")"))))) (; ";")) (expression_statement "iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);" (assignment_expression "iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8)" (identifier "iVar19") (= "=") (call_expression "i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8)" (identifier "i2d_X509_PUBKEY") (argument_list "(pXVar17,(uchar **)&local_9b8)" (( "(") (identifier "pXVar17") (, ",") (cast_expression "(uchar **)&local_9b8" (( "(") (type_descriptor "uchar **" (type_identifier "uchar") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&local_9b8" (& "&") (identifier "local_9b8"))) () ")")))) (; ";")) (if_statement "if ((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           ) {\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }" (if "if") (parenthesized_expression "((iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))\n           )" (( "(") (binary_expression "(iVar38 != iVar19) ||\n           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))" (parenthesized_expression "(iVar38 != iVar19)" (( "(") (binary_expression "iVar38 != iVar19" (identifier "iVar38") (!= "!=") (identifier "iVar19")) () ")")) (|| "||") (parenthesized_expression "((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))" (( "(") (parenthesized_expression "(local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18))" (( "(") (binary_expression "local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)" (binary_expression "local_9b8 == (ASN1_GENERALIZEDTIME *)0x0" (identifier "local_9b8") (== "==") (cast_expression "(ASN1_GENERALIZEDTIME *)0x0" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (parenthesized_expression "(iVar38 != (int)local_9b8 - (int)pAVar18)" (( "(") (binary_expression "iVar38 != (int)local_9b8 - (int)pAVar18" (identifier "iVar38") (!= "!=") (binary_expression "(int)local_9b8 - (int)pAVar18" (cast_expression "(int)local_9b8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_9b8")) (- "-") (cast_expression "(int)pAVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pAVar18")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          (**(code **)(unaff_EBX + 0x39173))(pAVar18);\n          goto LAB_00078208;\n        }" ({ "{") (expression_statement "(**(code **)(unaff_EBX + 0x39173))(pAVar18);" (call_expression "(**(code **)(unaff_EBX + 0x39173))(pAVar18)" (parenthesized_expression "(**(code **)(unaff_EBX + 0x39173))" (( "(") (pointer_expression "**(code **)(unaff_EBX + 0x39173)" (* "*") (pointer_expression "*(code **)(unaff_EBX + 0x39173)" (* "*") (cast_expression "(code **)(unaff_EBX + 0x39173)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBX + 0x39173)" (( "(") (binary_expression "unaff_EBX + 0x39173" (identifier "unaff_EBX") (+ "+") (number_literal "0x39173")) () ")"))))) () ")")) (argument_list "(pAVar18)" (( "(") (identifier "pAVar18") () ")"))) (; ";")) (goto_statement "goto LAB_00078208;" (goto "goto") (statement_identifier "LAB_00078208") (; ";")) (} "}"))) (expression_statement "iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);" (assignment_expression "iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38)" (identifier "iVar38") (= "=") (call_expression "FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38)" (identifier "FUN_0007b670") (argument_list "(iVar4,pAVar16,pAVar18,iVar38)" (( "(") (identifier "iVar4") (, ",") (identifier "pAVar16") (, ",") (identifier "pAVar18") (, ",") (identifier "iVar38") () ")")))) (; ";")) (expression_statement "(**(code **)(unaff_EBX + 0x39173))(pAVar18);" (call_expression "(**(code **)(unaff_EBX + 0x39173))(pAVar18)" (parenthesized_expression "(**(code **)(unaff_EBX + 0x39173))" (( "(") (pointer_expression "**(code **)(unaff_EBX + 0x39173)" (* "*") (pointer_expression "*(code **)(unaff_EBX + 0x39173)" (* "*") (cast_expression "(code **)(unaff_EBX + 0x39173)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_EBX + 0x39173)" (( "(") (binary_expression "unaff_EBX + 0x39173" (identifier "unaff_EBX") (+ "+") (number_literal "0x39173")) () ")"))))) () ")")) (argument_list "(pAVar18)" (( "(") (identifier "pAVar18") () ")"))) (; ";")) (if_statement "if (iVar38 == 0) {\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }" (if "if") (parenthesized_expression "(iVar38 == 0)" (( "(") (binary_expression "iVar38 == 0" (identifier "iVar38") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);\n          goto LAB_00078230;\n        }" ({ "{") (expression_statement "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" (identifier "pXVar12") (= "=") (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "X509 **" (type_identifier "X509") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (goto_statement "goto LAB_00078230;" (goto "goto") (statement_identifier "LAB_00078230") (; ";")) (} "}"))) (} "}")))) (expression_statement "FUN_00027240(iVar4,unaff_EBX + 0x11577);" (call_expression "FUN_00027240(iVar4,unaff_EBX + 0x11577)" (identifier "FUN_00027240") (argument_list "(iVar4,unaff_EBX + 0x11577)" (( "(") (identifier "iVar4") (, ",") (binary_expression "unaff_EBX + 0x11577" (identifier "unaff_EBX") (+ "+") (number_literal "0x11577")) () ")"))) (; ";")) (expression_statement "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);" (assignment_expression "pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8)" (identifier "pXVar12") (= "=") (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "X509 **" (type_identifier "X509") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}"))) (labeled_statement "LAB_00078230:\n    X509_free(pXVar12);" (statement_identifier "LAB_00078230") (: ":") (expression_statement "X509_free(pXVar12);" (call_expression "X509_free(pXVar12)" (identifier "X509_free") (argument_list "(pXVar12)" (( "(") (identifier "pXVar12") () ")"))) (; ";"))) (expression_statement "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_2 + 8) = 5;" (assignment_expression "*(undefined4 *)(param_2 + 8) = 5" (pointer_expression "*(undefined4 *)(param_2 + 8)" (* "*") (cast_expression "(undefined4 *)(param_2 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "5")) (; ";")) (goto_statement "goto LAB_00078251;" (goto "goto") (statement_identifier "LAB_00078251") (; ";")) (} "}"))) (expression_statement "iVar38 = *piVar9;" (assignment_expression "iVar38 = *piVar9" (identifier "iVar38") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (expression_statement "lVar15 = SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc);" (assignment_expression "lVar15 = SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc)" (identifier "lVar15") (= "=") (call_expression "SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc)" (identifier "SSL_ctrl") (argument_list "(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc)" (( "(") (pointer_expression "*(SSL **)(iVar28 + 4)" (* "*") (cast_expression "(SSL **)(iVar28 + 4)" (( "(") (type_descriptor "SSL **" (type_identifier "SSL") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar28 + 4)" (( "(") (binary_expression "iVar28 + 4" (identifier "iVar28") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0x46") (, ",") (number_literal "0") (, ",") (pointer_expression "&local_9cc" (& "&") (identifier "local_9cc")) () ")")))) (; ";")) (if_statement "if (local_9cc == (int *)0x0) {\n    FUN_00027240(iVar38,unaff_EBX + 0x1058a);\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }\n  else {\n    local_9c8 = local_9cc;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }\n    iVar19 = OCSP_response_status(resp);\n    if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));\n    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  iVar38 = 0x5b;\n  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\nLAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }\n                    \n  FUN_0007c1a0();\n}" (if "if") (parenthesized_expression "(local_9cc == (int *)0x0)" (( "(") (binary_expression "local_9cc == (int *)0x0" (identifier "local_9cc") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_00027240(iVar38,unaff_EBX + 0x1058a);\n    resp = (OCSP_RESPONSE *)0x0;\nLAB_000795a6:\n    OCSP_RESPONSE_free(resp);\n  }" ({ "{") (expression_statement "FUN_00027240(iVar38,unaff_EBX + 0x1058a);" (call_expression "FUN_00027240(iVar38,unaff_EBX + 0x1058a)" (identifier "FUN_00027240") (argument_list "(iVar38,unaff_EBX + 0x1058a)" (( "(") (identifier "iVar38") (, ",") (binary_expression "unaff_EBX + 0x1058a" (identifier "unaff_EBX") (+ "+") (number_literal "0x1058a")) () ")"))) (; ";")) (expression_statement "resp = (OCSP_RESPONSE *)0x0;" (assignment_expression "resp = (OCSP_RESPONSE *)0x0" (identifier "resp") (= "=") (cast_expression "(OCSP_RESPONSE *)0x0" (( "(") (type_descriptor "OCSP_RESPONSE *" (type_identifier "OCSP_RESPONSE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_000795a6:\n    OCSP_RESPONSE_free(resp);" (statement_identifier "LAB_000795a6") (: ":") (expression_statement "OCSP_RESPONSE_free(resp);" (call_expression "OCSP_RESPONSE_free(resp)" (identifier "OCSP_RESPONSE_free") (argument_list "(resp)" (( "(") (identifier "resp") () ")"))) (; ";"))) (} "}")) (else_clause "else {\n    local_9c8 = local_9cc;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }\n    iVar19 = OCSP_response_status(resp);\n    if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));\n    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  iVar38 = 0x5b;\n  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\nLAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }\n                    \n  FUN_0007c1a0();\n}" (else "else") (compound_statement "{\n    local_9c8 = local_9cc;\n    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);\n    if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }\n    iVar19 = OCSP_response_status(resp);\n    if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }\n    bs = OCSP_response_get1_basic(resp);\n    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;\n    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));\n    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));\n    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);\n    if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }\nLAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));\n  iVar38 = 0x5b;\n  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;\nLAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }\n                    \n  FUN_0007c1a0();\n}" ({ "{") (expression_statement "local_9c8 = local_9cc;" (assignment_expression "local_9c8 = local_9cc" (identifier "local_9c8") (= "=") (identifier "local_9cc")) (; ";")) (expression_statement "resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);" (assignment_expression "resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15)" (identifier "resp") (= "=") (call_expression "d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15)" (identifier "d2i_OCSP_RESPONSE") (argument_list "((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15)" (( "(") (cast_expression "(OCSP_RESPONSE **)0x0" (( "(") (type_descriptor "OCSP_RESPONSE **" (type_identifier "OCSP_RESPONSE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")) (, ",") (cast_expression "(uchar **)&local_9c8" (( "(") (type_descriptor "uchar **" (type_identifier "uchar") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&local_9c8" (& "&") (identifier "local_9c8"))) (, ",") (identifier "lVar15") () ")")))) (; ";")) (if_statement "if (resp == (OCSP_RESPONSE *)0x0) {\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }" (if "if") (parenthesized_expression "(resp == (OCSP_RESPONSE *)0x0)" (( "(") (binary_expression "resp == (OCSP_RESPONSE *)0x0" (identifier "resp") (== "==") (cast_expression "(OCSP_RESPONSE *)0x0" (( "(") (type_descriptor "OCSP_RESPONSE *" (type_identifier "OCSP_RESPONSE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);\n      goto LAB_000795a6;\n    }" ({ "{") (labeled_statement "LAB_00079758:\n      FUN_00027240(iVar38,unaff_EBX + 0x105a4);" (statement_identifier "LAB_00079758") (: ":") (expression_statement "FUN_00027240(iVar38,unaff_EBX + 0x105a4);" (call_expression "FUN_00027240(iVar38,unaff_EBX + 0x105a4)" (identifier "FUN_00027240") (argument_list "(iVar38,unaff_EBX + 0x105a4)" (( "(") (identifier "iVar38") (, ",") (binary_expression "unaff_EBX + 0x105a4" (identifier "unaff_EBX") (+ "+") (number_literal "0x105a4")) () ")"))) (; ";"))) (goto_statement "goto LAB_000795a6;" (goto "goto") (statement_identifier "LAB_000795a6") (; ";")) (} "}"))) (expression_statement "iVar19 = OCSP_response_status(resp);" (assignment_expression "iVar19 = OCSP_response_status(resp)" (identifier "iVar19") (= "=") (call_expression "OCSP_response_status(resp)" (identifier "OCSP_response_status") (argument_list "(resp)" (( "(") (identifier "resp") () ")")))) (; ";")) (if_statement "if (iVar19 != 0) {\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }" (if "if") (parenthesized_expression "(iVar19 != 0)" (( "(") (binary_expression "iVar19 != 0" (identifier "iVar19") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar30 = OCSP_response_status_str(iVar19);\n      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);\n      goto LAB_000795a6;\n    }" ({ "{") (expression_statement "pcVar30 = OCSP_response_status_str(iVar19);" (assignment_expression "pcVar30 = OCSP_response_status_str(iVar19)" (identifier "pcVar30") (= "=") (call_expression "OCSP_response_status_str(iVar19)" (identifier "OCSP_response_status_str") (argument_list "(iVar19)" (( "(") (identifier "iVar19") () ")")))) (; ";")) (expression_statement "FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);" (call_expression "FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19)" (identifier "FUN_00027240") (argument_list "(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19)" (( "(") (identifier "iVar38") (, ",") (binary_expression "unaff_EBX + 0x114db" (identifier "unaff_EBX") (+ "+") (number_literal "0x114db")) (, ",") (identifier "pcVar30") (, ",") (identifier "iVar19") () ")"))) (; ";")) (goto_statement "goto LAB_000795a6;" (goto "goto") (statement_identifier "LAB_000795a6") (; ";")) (} "}"))) (expression_statement "bs = OCSP_response_get1_basic(resp);" (assignment_expression "bs = OCSP_response_get1_basic(resp)" (identifier "bs") (= "=") (call_expression "OCSP_response_get1_basic(resp)" (identifier "OCSP_response_get1_basic") (argument_list "(resp)" (( "(") (identifier "resp") () ")")))) (; ";")) (if_statement "if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;" (if "if") (parenthesized_expression "(bs == (OCSP_BASICRESP *)0x0)" (( "(") (binary_expression "bs == (OCSP_BASICRESP *)0x0" (identifier "bs") (== "==") (cast_expression "(OCSP_BASICRESP *)0x0" (( "(") (type_descriptor "OCSP_BASICRESP *" (type_identifier "OCSP_BASICRESP") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00079758;" (goto "goto") (statement_identifier "LAB_00079758") (; ";"))) (expression_statement "psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));" (assignment_expression "psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" (identifier "psVar27") (= "=") (call_expression "SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" (identifier "SSL_get_peer_cert_chain") (argument_list "(*(SSL **)(*(int *)(param_2 + 0xc) + 4))" (( "(") (pointer_expression "*(SSL **)(*(int *)(param_2 + 0xc) + 4)" (* "*") (cast_expression "(SSL **)(*(int *)(param_2 + 0xc) + 4)" (( "(") (type_descriptor "SSL **" (type_identifier "SSL") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 4)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 4" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (expression_statement "st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));" (assignment_expression "st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc))" (identifier "st") (= "=") (call_expression "SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc))" (identifier "SSL_CTX_get_cert_store") (argument_list "((SSL_CTX *)**(undefined4 **)(param_2 + 0xc))" (( "(") (cast_expression "(SSL_CTX *)**(undefined4 **)(param_2 + 0xc)" (( "(") (type_descriptor "SSL_CTX *" (type_identifier "SSL_CTX") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(param_2 + 0xc)" (* "*") (pointer_expression "*(undefined4 **)(param_2 + 0xc)" (* "*") (cast_expression "(undefined4 **)(param_2 + 0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))))) () ")")))) (; ";")) (expression_statement "iVar19 = OCSP_basic_verify(bs,psVar27,st,0);" (assignment_expression "iVar19 = OCSP_basic_verify(bs,psVar27,st,0)" (identifier "iVar19") (= "=") (call_expression "OCSP_basic_verify(bs,psVar27,st,0)" (identifier "OCSP_basic_verify") (argument_list "(bs,psVar27,st,0)" (( "(") (identifier "bs") (, ",") (identifier "psVar27") (, ",") (identifier "st") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (0 < iVar19) {\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }" (if "if") (parenthesized_expression "(0 < iVar19)" (( "(") (binary_expression "0 < iVar19" (number_literal "0") (< "<") (identifier "iVar19")) () ")")) (compound_statement "{\n      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }\n    FUN_00027240(iVar38,unaff_EBX + 0x11503);\n    OCSP_BASICRESP_free(bs);\n    OCSP_RESPONSE_free(resp);\n  }" ({ "{") (for_statement "for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }" (for "for") (( "(") (assignment_expression "iVar19 = 0" (identifier "iVar19") (= "=") (number_literal "0")) (; ";") (comma_expression "iVar28 = OCSP_resp_count(bs), iVar19 < iVar28" (assignment_expression "iVar28 = OCSP_resp_count(bs)" (identifier "iVar28") (= "=") (call_expression "OCSP_resp_count(bs)" (identifier "OCSP_resp_count") (argument_list "(bs)" (( "(") (identifier "bs") () ")")))) (, ",") (binary_expression "iVar19 < iVar28" (identifier "iVar19") (< "<") (identifier "iVar28"))) (; ";") (assignment_expression "iVar19 = iVar19 + 1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + 1" (identifier "iVar19") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n        single = OCSP_resp_get0(bs,iVar19);\n        if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }\nLAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);\n      iVar38 = 0;\n      OCSP_RESPONSE_free(resp);\n      iVar19 = piVar9[0x3a];\n      iVar28 = *(int *)(param_2 + 0xc);\n      goto LAB_0007814e;\n    }" ({ "{") (expression_statement "single = OCSP_resp_get0(bs,iVar19);" (assignment_expression "single = OCSP_resp_get0(bs,iVar19)" (identifier "single") (= "=") (call_expression "OCSP_resp_get0(bs,iVar19)" (identifier "OCSP_resp_get0") (argument_list "(bs,iVar19)" (( "(") (identifier "bs") (, ",") (identifier "iVar19") () ")")))) (; ";")) (if_statement "if (single != (OCSP_SINGLERESP *)0x0) {\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }" (if "if") (parenthesized_expression "(single != (OCSP_SINGLERESP *)0x0)" (( "(") (binary_expression "single != (OCSP_SINGLERESP *)0x0" (identifier "single") (!= "!=") (cast_expression "(OCSP_SINGLERESP *)0x0" (( "(") (type_descriptor "OCSP_SINGLERESP *" (type_identifier "OCSP_SINGLERESP") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);\n          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);\n          if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }\n          OCSP_BASICRESP_free(bs);\n          OCSP_RESPONSE_free(resp);\n          goto LAB_00078c7e;\n        }" ({ "{") (expression_statement "iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8);" (assignment_expression "iVar28 = OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8)" (identifier "iVar28") (= "=") (call_expression "OCSP_single_get0_status\n                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8)" (identifier "OCSP_single_get0_status") (argument_list "(single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,\n                              &local_9b8)" (( "(") (identifier "single") (, ",") (pointer_expression "&local_9c4" (& "&") (identifier "local_9c4")) (, ",") (pointer_expression "&local_9c0" (& "&") (identifier "local_9c0")) (, ",") (cast_expression "(ASN1_GENERALIZEDTIME **)&local_9bc" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME **" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&local_9bc" (& "&") (identifier "local_9bc"))) (, ",") (pointer_expression "&local_9b8" (& "&") (identifier "local_9b8")) () ")")))) (; ";")) (expression_statement "iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);" (assignment_expression "iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1)" (identifier "iVar29") (= "=") (call_expression "OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1)" (identifier "OCSP_check_validity") (argument_list "((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1)" (( "(") (cast_expression "(ASN1_GENERALIZEDTIME *)local_9bc" (( "(") (type_descriptor "ASN1_GENERALIZEDTIME *" (type_identifier "ASN1_GENERALIZEDTIME") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_9bc")) (, ",") (identifier "local_9b8") (, ",") (number_literal "300") (, ",") (number_literal "-1") () ")")))) (; ";")) (if_statement "if (iVar29 == 0) {\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }\n          else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }" (if "if") (parenthesized_expression "(iVar29 == 0)" (( "(") (binary_expression "iVar29 == 0" (identifier "iVar29") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_00027240(iVar38,unaff_EBX + 0x105ba);\n          }" ({ "{") (expression_statement "FUN_00027240(iVar38,unaff_EBX + 0x105ba);" (call_expression "FUN_00027240(iVar38,unaff_EBX + 0x105ba)" (identifier "FUN_00027240") (argument_list "(iVar38,unaff_EBX + 0x105ba)" (( "(") (identifier "iVar38") (, ",") (binary_expression "unaff_EBX + 0x105ba" (identifier "unaff_EBX") (+ "+") (number_literal "0x105ba")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }" (else "else") (compound_statement "{\n            pcVar30 = OCSP_cert_status_str(iVar28);\n            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);\n            if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;\n          }" ({ "{") (expression_statement "pcVar30 = OCSP_cert_status_str(iVar28);" (assignment_expression "pcVar30 = OCSP_cert_status_str(iVar28)" (identifier "pcVar30") (= "=") (call_expression "OCSP_cert_status_str(iVar28)" (identifier "OCSP_cert_status_str") (argument_list "(iVar28)" (( "(") (identifier "iVar28") () ")")))) (; ";")) (expression_statement "FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);" (call_expression "FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28)" (identifier "FUN_00027140") (argument_list "(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28)" (( "(") (identifier "iVar38") (, ",") (binary_expression "unaff_EBX + 0x11527" (identifier "unaff_EBX") (+ "+") (number_literal "0x11527")) (, ",") (identifier "pcVar30") (, ",") (identifier "iVar28") () ")"))) (; ";")) (if_statement "if (iVar28 == 1) {\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }\n            else if (iVar28 != 2) goto LAB_00079488;" (if "if") (parenthesized_expression "(iVar28 == 1)" (( "(") (binary_expression "iVar28 == 1" (identifier "iVar28") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              pcVar30 = OCSP_crl_reason_str(local_9c4);\n              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);\n            }" ({ "{") (expression_statement "pcVar30 = OCSP_crl_reason_str(local_9c4);" (assignment_expression "pcVar30 = OCSP_crl_reason_str(local_9c4)" (identifier "pcVar30") (= "=") (call_expression "OCSP_crl_reason_str(local_9c4)" (identifier "OCSP_crl_reason_str") (argument_list "(local_9c4)" (( "(") (identifier "local_9c4") () ")")))) (; ";")) (expression_statement "FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);" (call_expression "FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4)" (identifier "FUN_00027240") (argument_list "(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4)" (( "(") (identifier "iVar38") (, ",") (binary_expression "unaff_EBX + 0x1154b" (identifier "unaff_EBX") (+ "+") (number_literal "0x1154b")) (, ",") (identifier "pcVar30") (, ",") (identifier "local_9c4") () ")"))) (; ";")) (} "}")) (else_clause "else if (iVar28 != 2) goto LAB_00079488;" (else "else") (if_statement "if (iVar28 != 2) goto LAB_00079488;" (if "if") (parenthesized_expression "(iVar28 != 2)" (( "(") (binary_expression "iVar28 != 2" (identifier "iVar28") (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_00079488;" (goto "goto") (statement_identifier "LAB_00079488") (; ";"))))) (} "}")))) (expression_statement "OCSP_BASICRESP_free(bs);" (call_expression "OCSP_BASICRESP_free(bs)" (identifier "OCSP_BASICRESP_free") (argument_list "(bs)" (( "(") (identifier "bs") () ")"))) (; ";")) (expression_statement "OCSP_RESPONSE_free(resp);" (call_expression "OCSP_RESPONSE_free(resp)" (identifier "OCSP_RESPONSE_free") (argument_list "(resp)" (( "(") (identifier "resp") () ")"))) (; ";")) (goto_statement "goto LAB_00078c7e;" (goto "goto") (statement_identifier "LAB_00078c7e") (; ";")) (} "}"))) (labeled_statement "LAB_00079488:\n      }\n      OCSP_BASICRESP_free(bs);" (statement_identifier "LAB_00079488") (: ":") (ERROR "}" (} "}")) (expression_statement "OCSP_BASICRESP_free(bs);" (call_expression "OCSP_BASICRESP_free(bs)" (identifier "OCSP_BASICRESP_free") (argument_list "(bs)" (( "(") (identifier "bs") () ")"))) (; ";"))) (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" (identifier "iVar38") (= "=") (number_literal "0")) (; ";")) (expression_statement "OCSP_RESPONSE_free(resp);" (call_expression "OCSP_RESPONSE_free(resp)" (identifier "OCSP_RESPONSE_free") (argument_list "(resp)" (( "(") (identifier "resp") () ")"))) (; ";")) (expression_statement "iVar19 = piVar9[0x3a];" (assignment_expression "iVar19 = piVar9[0x3a]" (identifier "iVar19") (= "=") (subscript_expression "piVar9[0x3a]" (identifier "piVar9") ([ "[") (number_literal "0x3a") (] "]"))) (; ";")) (expression_statement "iVar28 = *(int *)(param_2 + 0xc);" (assignment_expression "iVar28 = *(int *)(param_2 + 0xc)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (goto_statement "goto LAB_0007814e;" (goto "goto") (statement_identifier "LAB_0007814e") (; ";")) (} "}"))) (expression_statement "FUN_00027240(iVar38,unaff_EBX + 0x11503);" (call_expression "FUN_00027240(iVar38,unaff_EBX + 0x11503)" (identifier "FUN_00027240") (argument_list "(iVar38,unaff_EBX + 0x11503)" (( "(") (identifier "iVar38") (, ",") (binary_expression "unaff_EBX + 0x11503" (identifier "unaff_EBX") (+ "+") (number_literal "0x11503")) () ")"))) (; ";")) (expression_statement "OCSP_BASICRESP_free(bs);" (call_expression "OCSP_BASICRESP_free(bs)" (identifier "OCSP_BASICRESP_free") (argument_list "(bs)" (( "(") (identifier "bs") () ")"))) (; ";")) (expression_statement "OCSP_RESPONSE_free(resp);" (call_expression "OCSP_RESPONSE_free(resp)" (identifier "OCSP_RESPONSE_free") (argument_list "(resp)" (( "(") (identifier "resp") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00078c7e:\n  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));" (statement_identifier "LAB_00078c7e") (: ":") (expression_statement "X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));" (call_expression "X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" (identifier "X509_free") (argument_list "(*(X509 **)(*(int *)(param_2 + 0xc) + 8))" (( "(") (pointer_expression "*(X509 **)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(X509 **)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "X509 **" (type_identifier "X509") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";"))) (expression_statement "iVar38 = 0x5b;" (assignment_expression "iVar38 = 0x5b" (identifier "iVar38") (= "=") (number_literal "0x5b")) (; ";")) (expression_statement "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;" (assignment_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0" (pointer_expression "*(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_2 + 0xc) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xc) + 8)" (( "(") (binary_expression "*(int *)(param_2 + 0xc) + 8" (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00078251:\n  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }" (statement_identifier "LAB_00078251") (: ":") (if_statement "if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar38;\n  }" (if "if") (parenthesized_expression "(local_24 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_24 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_24") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return iVar38;\n  }" ({ "{") (return_statement "return iVar38;" (return "return") (identifier "iVar38") (; ";")) (} "}")))) (expression_statement "FUN_0007c1a0();" (call_expression "FUN_0007c1a0()" (identifier "FUN_0007c1a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "")))

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

type_1 __regparm3 function_1(type_2 *conn,type_3 *connssl,type_4 strict)

{
  type_5 *var_25;
  char var_45;
  type_6 *data;
  int var_139;
  type_7 var_43;
  type_6 *pCVar5;
  bool bVar6;
  bool bVar7;
  bool bVar8;
  type_8 *psVar9;
  type_7 uVar10;
  type_9 *pBVar11;
  type_10 *var_104;
  type_11 *var_109;
  type_12 *var_78;
  type_13 *pAVar15;
  long var_107;
  type_14 *var_116;
  type_15 *psVar18;
  type_16 *pXVar19;
  size_t var_117;
  size_t var_118;
  type_17 *var_77;
  int *piVar22;
  type_10 *out;
  type_18 uVar23;
  type_19 *pAVar24;
  type_20 *ex;
  type_10 *var_35;
  type_21 *a_00;
  type_7 var_42;
  type_7 var_44;
  type_22 *var_124;
  type_23 *var_128;
  type_24 *var_9;
  type_25 *st;
  int var_24;
  type_26 *var_133;
  int var_98;
  char *var_2;
  type_27 *var_55;
  type_28 *v;
  char *var_102;
  size_t var_99;
  int var_96;
  type_29 *ne;
  type_30 *var_27;
  size_t var_100;
  type_14 *var_83;
  void *pvVar37;
  type_31 e;
  int var_3;
  size_t size;
  size_t size_00;
  type_32 var_112;
  type_7 var_41;
  type_14 *extraout_EDX;
  type_1 var_12;
  type_7 *puVar42;
  int var_1;
  type_14 *var_89;
  type_11 *local_a44;
  int var_71;
  char *local_a2c;
  int var_34;
  type_33 *local_a24;
  type_34 *local_a20;
  type_14 *var_48;
  type_6 *local_a18;
  type_14 *local_a10;
  type_14 *local_a0c;
  long *local_9f4;
  char *ptr;
  char *var_121;
  type_35 *var_69;
  type_36 *p;
  type_36 *q;
  type_37 *var_31;
  type_14 *var_79;
  type_33 addr;
  char namebuf [128];
  char error_buffer [256];
  char var_47 [2048];
  
  var_2 = error_buffer;
  data = conn->data;
  var_139 = *(int *)(var_1 + 0x14);
  for (var_3 = 0x3f; var_2 = var_2 + 4, var_3 != 0; var_3 = var_3 + -1) {
    var_2[0] = '\0';
    var_2[1] = '\0';
    var_2[2] = '\0';
    var_2[3] = '\0';
  }
  error_buffer[0] = '\0';
  error_buffer[1] = '\0';
  error_buffer[2] = '\0';
  error_buffer[3] = '\0';
  if (((conn->http_proxy).proxytype == var_4) &&
     (conn->proxy_ssl[conn->sock[1] != -1].state != var_5)) {
    psVar9 = &(data->set).proxy_ssl;
  }
  else {
    psVar9 = &(data->set).ssl;
  }
  local_9f4 = &psVar9->certverifyresult;
  pBVar11 = var_6();
  var_104 = var_7(pBVar11);
  if ((data->set).ssl.certinfo != false) {
    pCVar5 = conn->data;
    var_9 = var_8((type_38 *)connssl->backend->handle);
    if (var_9 != (type_24 *)0x0) {
      var_3 = var_10(var_9);
      var_12 = var_11(pCVar5,var_3);
      if (var_12 == var_13) {
        pBVar11 = var_6();
        out = var_7(pBVar11);
        if (0 < var_3) {
          var_71 = 0;
          do {
            var_109 = (type_11 *)var_14(var_9,var_71);
            var_69 = (type_35 *)0x0;
            var_78 = var_15(var_109);
            var_16(out,var_78,0,0x82031f);
            var_117 = var_17(out,3,0,&var_121);
            var_18(pCVar5,var_71,"Subject",var_121,var_117);
            var_17(out,1,0,(void *)0x0);
            var_78 = var_19(var_109);
            var_16(out,var_78,0,0x82031f);
            var_117 = var_17(out,3,0,&var_121);
            var_18(pCVar5,var_71,"Issuer",var_121,var_117);
            var_17(out,1,0,(void *)0x0);
            uVar23 = var_20(var_109);
            var_21(out,"%lx",uVar23);
            var_117 = var_17(out,3,0,&var_121);
            var_18(pCVar5,var_71,"Version",var_121,var_117);
            var_17(out,1,0,(void *)0x0);
            pAVar24 = var_22(var_109);
            if (pAVar24->type == 0x102) {
              var_23(out,"-");
            }
            var_24 = 0;
            if (0 < pAVar24->length) {
              do {
                var_25 = pAVar24->data + var_24;
                var_24 = var_24 + 1;
                var_21(out,"%02x",(type_7)*var_25);
              } while (var_24 < pAVar24->length);
            }
            var_117 = var_17(out,3,0,&var_121);
            var_18(pCVar5,var_71,"Serial Number",var_121,var_117);
            var_17(out,1,0,(void *)0x0);
            var_31 = (type_37 *)0x0;
            var_27 = var_26();
            if (var_27 != (type_30 *)0x0) {
              var_28(&var_69,&var_31,var_109);
              var_29(out,(type_37 *)var_31,var_27);
              var_30(var_27);
              if (var_31 != (type_37 *)0x0) {
                var_32(out,(type_21 *)var_31->algorithm);
                var_117 = var_17(out,3,0,&var_121);
                var_18(pCVar5,var_71,"Public Key Algorithm",var_121,var_117);
                var_17(out,1,0,(void *)0x0);
              }
            }
            uVar23 = var_33(var_109);
            var_24 = var_10(uVar23);
            var_34 = 0;
            if (0 < var_24) {
              for (; var_24 = var_10(uVar23), var_34 < var_24; var_34 = var_34 + 1)
              {
                ex = (type_20 *)var_14(uVar23,var_34);
                pBVar11 = var_6();
                var_35 = var_7(pBVar11);
                if (var_35 == (type_10 *)0x0) break;
                a_00 = var_36(ex);
                var_37(namebuf,0x80,a_00);
                var_24 = var_38(var_35,ex,0,0);
                if (var_24 == 0) {
                  v = var_39(ex);
                  var_40(var_35,v);
                }
                var_17(var_35,0x73,0,&var_79);
                var_42 = 0;
                var_41 = *(type_7 *)var_79;
                puVar42 = (type_7 *)var_79;
                var_48 = (type_14 *)var_47;
                if (var_41 != 0) {
                  do {
                    var_43 = puVar42[1];
                    local_a20 = &DAT_00087d70;
                    var_44 = var_42;
                    uVar10 = var_42 + 1;
                    if (*(char *)(var_43 + var_42) == '\n') {
                      local_a20 = &DAT_0007df6a;
                      var_44 = var_42 + 1;
                      uVar10 = var_42 + 2;
                    }
                    var_42 = uVar10;
                    if (var_44 < var_41) {
                      var_45 = *(char *)(var_43 + var_44);
                      if (var_45 == ' ') {
                        var_44 = var_44 + 2;
                        do {
                          var_42 = var_44;
                          if (var_41 + 1 == var_42) goto LAB_000789f7;
                          var_45 = *(char *)((var_43 - 2) + var_42 + 1);
                          var_44 = var_42 + 1;
                        } while (var_45 == ' ');
                      }
                      var_24 = var_46((char *)var_48,
                                              (size_t)(var_47 + (0x200 - (int)var_48)),"%s%c",
                                              local_a20,(int)var_45);
                      var_48 = var_48 + var_24;
                      puVar42 = (type_7 *)var_79;
                    }
LAB_000789f7:
                    var_41 = *puVar42;
                  } while (var_42 < var_41);
                }
                var_49(pCVar5,var_71,namebuf,var_47);
                var_50(var_35);
              }
            }
            pAVar15 = (type_13 *)var_51(var_109);
            var_52(out,pAVar15);
            var_117 = var_17(out,3,0,&var_121);
            var_18(pCVar5,var_71,"Start date",var_121,var_117);
            var_17(out,1,0,(void *)0x0);
            pAVar15 = (type_13 *)var_53(var_109);
            var_52(out,pAVar15);
            var_117 = var_17(out,3,0,&var_121);
            var_18(pCVar5,var_71,"Expire date",var_121,var_117);
            var_17(out,1,0,(void *)0x0);
            var_55 = var_54(var_109);
            if (var_55 == (type_27 *)0x0) {
              var_56(pCVar5,"   Unable to load public key\n");
            }
            else {
              var_24 = var_57(var_55);
              if (var_24 == 0x1c) {
                uVar23 = var_58(var_55);
                var_59(uVar23,&p,&q,&var_31);
                var_2 = "dh";
                var_60(uVar23,&var_79,0);
LAB_0007922b:
                var_61(pCVar5,(type_10 *)out,var_71,var_2,"p",p);
                var_61(pCVar5,(type_10 *)out,var_71,var_2,"q",q);
                var_61(pCVar5,(type_10 *)out,var_71,var_2,"g",(type_36 *)var_31);
                var_102 = "pub_key";
LAB_000791bc:
                var_61(pCVar5,(type_10 *)out,var_71,var_2,var_102,(type_36 *)var_79);
              }
              else {
                if (var_24 == 0x74) {
                  uVar23 = var_62(var_55);
                  var_63(uVar23,&p,&q,&var_31);
                  var_2 = "dsa";
                  var_64(uVar23,&var_79,0);
                  goto LAB_0007922b;
                }
                if (var_24 == 6) {
                  var_2 = "rsa";
                  uVar23 = var_65(var_55);
                  var_66(uVar23,&var_31,&var_79,0);
                  var_67(out,(type_36 *)var_31);
                  var_117 = var_17(out,3,0,&var_121);
                  var_18(pCVar5,var_71,"RSA Public Key",var_121,var_117);
                  var_17(out,1,0,(void *)0x0);
                  var_61(pCVar5,(type_10 *)out,var_71,"rsa","n",(type_36 *)var_31);
                  var_102 = "e";
                  goto LAB_000791bc;
                }
              }
              var_68(var_55);
            }
            if (var_69 != (type_35 *)0x0) {
              var_24 = 0;
              if (0 < var_69->length) {
                do {
                  var_25 = var_69->data + var_24;
                  var_24 = var_24 + 1;
                  var_21(out,"%02x:",(type_7)*var_25);
                } while (var_24 < var_69->length);
              }
              var_117 = var_17(out,3,0,&var_121);
              var_18(pCVar5,var_71,"Signature",var_121,var_117);
              var_17(out,1,0,(void *)0x0);
            }
            var_70(out,var_109);
            var_117 = var_17(out,3,0,&var_121);
            var_18(pCVar5,var_71,"Cert",var_121,var_117);
            var_17(out,1,0,(void *)0x0);
            var_71 = var_71 + 1;
          } while (var_3 != var_71);
        }
        var_50(out);
      }
    }
  }
  psVar18 = connssl->backend;
  var_109 = var_72((type_38 *)psVar18->handle);
  psVar18->server_cert = (type_11 *)var_109;
  if (connssl->backend->server_cert == (type_11 *)0x0) {
    var_12 = var_13;
    var_50(var_104);
    if (strict) {
      var_12 = CURLE_PEER_FAILED_VERIFICATION;
      var_73(data,"SSL: couldn\'t get peer certificate!");
    }
    goto LAB_00078251;
  }
  var_2 = "Server";
  if (((conn->http_proxy).proxytype == var_4) &&
     (conn->proxy_ssl[conn->sock[1] != -1].state != var_5)) {
    var_2 = "Proxy";
  }
  var_56(data,"%s certificate:\n",var_2);
  var_78 = var_15((type_11 *)connssl->backend->server_cert);
  var_2 = var_47;
  var_3 = var_74((type_12 *)var_78,var_2,size);
  var_102 = "[NONE]";
  if (var_3 == 0) {
    var_102 = var_2;
  }
  var_56(data," subject: %s\n",var_102);
  pAVar15 = (type_13 *)var_51(connssl->backend->server_cert);
  var_52(var_104,pAVar15);
  var_107 = var_17(var_104,3,0,&ptr);
  var_56(data," start date: %.*s\n",var_107,ptr);
  var_17(var_104,1,0,(void *)0x0);
  pAVar15 = (type_13 *)var_53(connssl->backend->server_cert);
  var_52(var_104,pAVar15);
  var_116 = (type_14 *)var_17(var_104,3,0,&ptr);
  local_a0c = (type_14 *)ptr;
  var_56(data," expire date: %.*s\n",var_116,ptr);
  var_17(var_104,1,0,(void *)0x0);
  var_50(var_104);
  local_a44 = (type_11 *)connssl->backend->server_cert;
  if ((conn->http_proxy).proxytype != var_4) {
    if ((conn->ssl_config).verifyhost == false) goto LAB_000780f3;
    local_a18 = conn->data;
LAB_00078282:
    local_a2c = (conn->host).name;
    local_a10 = (type_14 *)(conn->host).dispname;
LAB_0007829a:
    if (((conn->bits).ipv6_ip == false) || (var_3 = var_75(10,local_a2c,&addr), var_3 == 0)) {
      local_a24 = &addr;
      var_3 = var_75(2,local_a2c,local_a24);
      var_48 = (type_14 *)(~-(type_7)(var_3 == 0) & 4);
      var_3 = (-(type_7)(var_3 == 0) & 0xfffffffb) + 7;
    }
    else {
      var_48 = (type_14 *)0x10;
      var_3 = 7;
    }
    local_a24 = &addr;
    var_89 = (type_14 *)0x0;
    var_116 = (type_14 *)0x0;
    var_77 = (type_17 *)var_76(local_a44,0x55,(int *)0x0,(int *)0x0);
    local_a0c = var_89;
    if (var_77 == (type_17 *)0x0) {
LAB_00079040:
      var_79 = "";
      var_78 = var_15(local_a44);
      var_89 = (type_14 *)0xffffffff;
      if (var_78 == (type_12 *)0x0) {
LAB_0007908e:
        if (var_79 == "") {
          var_79 = (type_14 *)0x0;
LAB_0007950b:
          var_2 = "SSL: unable to obtain common name from peer certificate";
          local_a10 = local_a0c;
        }
        else {
          if (var_79 == (type_14 *)0x0) goto LAB_0007950b;
          var_3 = var_80((char *)var_79,local_a2c);
          var_116 = var_79;
          if (var_3 != 0) {
            var_56(local_a18," common name: %s (matched)\n",var_79);
            if (var_79 == (type_14 *)0x0) goto LAB_000783a8;
            var_116 = (type_14 *)0x693;
            local_a0c = extraout_EDX;
            var_81(var_79);
            local_a44 = (type_11 *)connssl->backend->server_cert;
            goto LAB_000780f3;
          }
          var_2 = "SSL: certificate subject name \'%s\' does not match target host name \'%s\'";
        }
        var_73(local_a18,var_2,var_116,local_a10);
LAB_000790e4:
        if (var_79 != (type_14 *)0x0) {
          var_81(var_79);
          var_109 = (type_11 *)connssl->backend->server_cert;
          goto LAB_000794d2;
        }
      }
      else {
        do {
          var_83 = var_89;
          var_116 = var_83;
          var_89 = (type_14 *)var_82(var_78,0xd,(int)var_83);
        } while (-1 < (int)var_89);
        if (var_83 == (type_14 *)0xffffffff) goto LAB_0007908e;
        ne = var_84(var_78,(int)var_83);
        var_27 = var_85(ne);
        if (var_27 == (type_30 *)0x0) goto LAB_0007908e;
        var_3 = var_86(var_27);
        if (var_3 == 0xc) {
          var_89 = (type_14 *)var_87(var_27);
          if ((int)var_89 < 0) goto LAB_0007969a;
          var_116 = (type_14 *)0x662;
          var_79 = (type_14 *)var_88((int)(var_89 + 1),"vtls/openssl.c",0x662);
          if (var_79 != (type_14 *)0x0) {
            pvVar37 = (void *)var_90(var_27);
            var_116 = var_89;
            var_91(var_79,pvVar37,(size_t)var_89);
            var_79[(int)var_89] = '\0';
            goto LAB_0007969a;
          }
          goto LAB_0007950b;
        }
        var_89 = (type_14 *)var_92(&var_79,var_27);
LAB_0007969a:
        if (var_79 == (type_14 *)0x0) goto LAB_0007950b;
        var_100 = var_93((char *)var_79);
        var_83 = (type_14 *)var_94(var_100);
        if (var_83 == var_89) goto LAB_0007908e;
        var_73(local_a18,"SSL: illegal cert name field");
        if (var_79 != "") goto LAB_000790e4;
      }
      var_109 = (type_11 *)connssl->backend->server_cert;
    }
    else {
      var_24 = var_10(var_77);
      if (var_24 < 1) {
        var_95(var_77);
        local_a0c = var_89;
        goto LAB_00079040;
      }
      bVar6 = false;
      var_98 = 0;
      bVar7 = false;
      bVar8 = false;
      do {
        while( true ) {
          piVar22 = (int *)var_14(var_77,var_98);
          var_96 = *piVar22;
          if (var_96 == 2) break;
          if (var_96 == 7) {
            if (var_3 == 7) {
              pvVar37 = (void *)var_90(piVar22[1]);
              var_83 = (type_14 *)var_87((type_30 *)piVar22[1]);
              if (var_48 == var_83) {
                var_116 = var_48;
                var_96 = var_97(pvVar37,local_a24,(size_t)var_48);
                bVar7 = true;
                if (var_96 == 0) {
                  var_116 = local_a10;
                  var_56(local_a18," subjectAltName: host \"%s\" matched cert\'s IP address!\n",
                             local_a10);
                  bVar6 = true;
                }
                goto LAB_00078351;
              }
            }
            bVar7 = true;
          }
          else if (var_96 == var_3) {
            local_a0c = (type_14 *)var_90(piVar22[1]);
            var_100 = var_87((type_30 *)piVar22[1]);
            if (var_3 == 2) goto LAB_00079422;
          }
LAB_00078351:
          var_98 = var_98 + 1;
          local_a0c = var_89;
          if (var_24 == var_98) goto LAB_0007838a;
        }
        if (var_3 == 2) {
          local_a0c = (type_14 *)var_90(piVar22[1]);
          var_100 = var_87((type_30 *)piVar22[1]);
          bVar8 = true;
LAB_00079422:
          var_99 = var_93((char *)local_a0c);
          if ((var_99 != var_100) ||
             (var_96 = var_80((char *)local_a0c,local_a2c), var_96 == 0))
          goto LAB_00078351;
          var_56(local_a18," subjectAltName: host \"%s\" matched cert\'s \"%s\"\n",local_a10,
                     local_a0c);
          var_95(var_77);
          var_116 = local_a10;
          goto LAB_000783a8;
        }
        bVar8 = true;
        var_98 = var_98 + 1;
        local_a0c = var_89;
      } while (var_24 != var_98);
LAB_0007838a:
      var_95(var_77);
      if (bVar6) {
LAB_000783a8:
        local_a44 = (type_11 *)connssl->backend->server_cert;
        goto LAB_000780f3;
      }
      if ((!bVar7) && (!bVar8)) goto LAB_00079040;
      var_56(local_a18," subjectAltName does not match %s\n",local_a10);
      var_73(local_a18,
                 "SSL: no alternative certificate subject name matches target host name \'%s\'",
                 local_a10);
      var_109 = (type_11 *)connssl->backend->server_cert;
    }
LAB_000794d2:
    var_12 = CURLE_PEER_FAILED_VERIFICATION;
    var_101(var_109);
    connssl->backend->server_cert = (type_11 *)0x0;
    goto LAB_00078251;
  }
  if (conn->proxy_ssl[conn->sock[1] != -1].state == var_5) {
    if ((conn->ssl_config).verifyhost != false) {
      local_a18 = conn->data;
      if (conn->proxy_ssl[conn->sock[1] != -1].state == var_5) goto LAB_00078282;
      goto LAB_00078a68;
    }
  }
  else if ((conn->proxy_ssl_config).verifyhost != false) {
    local_a18 = conn->data;
LAB_00078a68:
    local_a2c = (conn->http_proxy).host.name;
    local_a10 = (type_14 *)(conn->http_proxy).host.dispname;
    goto LAB_0007829a;
  }
LAB_000780f3:
  var_78 = var_19(local_a44);
  var_3 = var_74((type_12 *)var_78,var_2,size_00);
  if (var_3 == 0) {
    var_56(data," issuer: %s\n",var_2,local_a0c);
    if (((conn->http_proxy).proxytype == var_4) &&
       (conn->proxy_ssl[conn->sock[1] != -1].state != var_5)) {
      var_102 = (data->set).proxy_ssl.issuercert;
    }
    else {
      var_102 = (data->set).ssl.issuercert;
    }
    if (var_102 != (char *)0x0) {
      pBVar11 = var_103();
      var_104 = var_7(pBVar11);
      if (var_104 == (type_10 *)0x0) {
        e = var_105();
        var_106(e,error_buffer,0x100);
        var_73(data,"BIO_new return NULL, OpenSSL error %s",error_buffer);
        var_101((type_11 *)connssl->backend->server_cert);
        var_12 = CURLE_OUT_OF_MEMORY;
        connssl->backend->server_cert = (type_11 *)0x0;
        goto LAB_00078251;
      }
      if (((conn->http_proxy).proxytype == var_4) &&
         (conn->proxy_ssl[conn->sock[1] != -1].state != var_5)) {
        var_2 = (data->set).proxy_ssl.issuercert;
      }
      else {
        var_2 = (data->set).ssl.issuercert;
      }
      var_107 = var_17(var_104,0x6c,3,var_2);
      if (var_107 < 1) {
        if (strict) {
          if (((conn->http_proxy).proxytype == var_4) &&
             (conn->proxy_ssl[conn->sock[1] != -1].state != var_5)) {
            var_2 = (data->set).proxy_ssl.issuercert;
          }
          else {
            var_2 = (data->set).ssl.issuercert;
          }
          var_73(data,"SSL: Unable to open issuer cert (%s)",var_2);
        }
        var_50(var_104);
      }
      else {
        var_109 = var_108(var_104,(type_11 **)0x0,(type_39 *)0x0,(void *)0x0);
        if (var_109 == (type_11 *)0x0) {
          if (strict) {
            if (((conn->http_proxy).proxytype == var_4) &&
               (conn->proxy_ssl[conn->sock[1] != -1].state != var_5)) {
              var_2 = (data->set).proxy_ssl.issuercert;
            }
            else {
              var_2 = (data->set).ssl.issuercert;
            }
            var_73(data,"SSL: Unable to read issuer cert (%s)",var_2);
          }
          var_50(var_104);
          var_109 = (type_11 *)0x0;
        }
        else {
          var_3 = var_110(var_109,(type_11 *)connssl->backend->server_cert);
          if (var_3 == 0) {
            if (((conn->http_proxy).proxytype == var_4) &&
               (conn->proxy_ssl[conn->sock[1] != -1].state != var_5)) {
              var_2 = (data->set).proxy_ssl.issuercert;
            }
            else {
              var_2 = (data->set).ssl.issuercert;
            }
            var_56(data," SSL certificate issuer check ok (%s)\n",var_2);
            var_50(var_104);
            var_101(var_109);
            goto LAB_000784c4;
          }
          if (strict) {
            if (((conn->http_proxy).proxytype == var_4) &&
               (conn->proxy_ssl[conn->sock[1] != -1].state != var_5)) {
              var_2 = (data->set).proxy_ssl.issuercert;
            }
            else {
              var_2 = (data->set).ssl.issuercert;
            }
            var_73(data,"SSL: Certificate issuer check failed (%s)",var_2);
          }
          var_50(var_104);
        }
        var_101(var_109);
      }
      var_101((type_11 *)connssl->backend->server_cert);
      var_12 = CURLE_SSL_ISSUER_ERROR;
      connssl->backend->server_cert = (type_11 *)0x0;
      goto LAB_00078251;
    }
LAB_000784c4:
    var_107 = var_111((type_38 *)connssl->backend->handle);
    *local_9f4 = var_107;
    if (var_107 == 0) {
      var_12 = var_13;
      var_56(data," SSL certificate verify ok.\n",var_2);
      var_112 = (conn->http_proxy).proxytype;
    }
    else {
      var_112 = (conn->http_proxy).proxytype;
      if ((var_112 == var_4) &&
         (conn->proxy_ssl[conn->sock[1] != -1].state != var_5)) {
        var_45 = (conn->proxy_ssl_config).verifypeer;
      }
      else {
        var_45 = (conn->ssl_config).verifypeer;
      }
      if (var_45 == '\0') {
        var_12 = var_13;
        var_2 = var_113(var_107);
        var_56(data," SSL certificate verify result: %s (%ld), continuing anyway.\n",var_2,
                   var_107);
        var_112 = (conn->http_proxy).proxytype;
      }
      else {
        var_12 = CURLE_PEER_FAILED_VERIFICATION;
        if (strict) {
          var_2 = var_113(var_107);
          var_73(data,"SSL certificate verify result: %s (%ld)",var_2,var_107);
          var_112 = (conn->http_proxy).proxytype;
        }
      }
    }
  }
  else if (strict) {
    var_12 = CURLE_PEER_FAILED_VERIFICATION;
    var_73(data,"SSL: couldn\'t get X509-issuer name!",var_116);
    var_112 = (conn->http_proxy).proxytype;
  }
  else {
    var_12 = CURLE_PEER_FAILED_VERIFICATION;
    var_112 = (conn->http_proxy).proxytype;
  }
  if ((var_112 == var_4) &&
     (conn->proxy_ssl[conn->sock[1] != -1].state != var_5)) {
    var_45 = (conn->proxy_ssl_config).verifystatus;
    psVar18 = connssl->backend;
  }
  else {
    var_45 = (conn->ssl_config).verifystatus;
    psVar18 = connssl->backend;
  }
  if (var_45 == '\0') {
LAB_0007814e:
    if (!strict) {
      var_12 = var_13;
    }
    if ((var_112 == var_4) &&
       (conn->proxy_ssl[conn->sock[1] != -1].state != var_5)) {
      var_2 = (data->set).str[0x1f];
    }
    else {
      var_2 = (data->set).str[0x1e];
    }
    var_109 = (type_11 *)psVar18->server_cert;
    ptr = var_2;
    if ((var_12 == var_13) && (var_2 != (char *)0x0)) {
      var_79 = (type_14 *)0x0;
      if (var_109 == (type_11 *)0x0) {
LAB_00078208:
        var_12 = CURLE_SSL_PINNEDPUBKEYNOTMATCH;
      }
      else {
        pXVar19 = (type_16 *)var_114(var_109);
        var_117 = var_115(pXVar19,(type_14 **)0x0);
        if (((int)var_117 < 1) ||
           (var_116 = (type_14 *)(*Curl_cmalloc)(var_117), var_79 = var_116, var_116 == (type_14 *)0x0))
        goto LAB_00078208;
        pXVar19 = (type_16 *)var_114(var_109);
        var_118 = var_115(pXVar19,&var_79);
        if ((var_117 != var_118) || ((var_79 == (type_14 *)0x0 || (var_117 != (int)var_79 - (int)var_116))))
        {
          (*Curl_cfree)(var_116);
          goto LAB_00078208;
        }
        var_12 = var_119(data,var_2,var_116,var_117);
        (*Curl_cfree)(var_116);
        if (var_12 == var_13) {
          var_109 = (type_11 *)connssl->backend->server_cert;
          goto LAB_00078230;
        }
      }
      var_73(data,"SSL: public key does not match pinned public key!");
      var_109 = (type_11 *)connssl->backend->server_cert;
    }
LAB_00078230:
    var_101(var_109);
    connssl->backend->server_cert = (type_11 *)0x0;
    connssl->connecting_state = ssl_connect_done;
    goto LAB_00078251;
  }
  pCVar5 = conn->data;
  var_107 = var_120((type_38 *)psVar18->handle,0x46,0,&var_121);
  if (var_121 == (char *)0x0) {
    var_73(pCVar5,"No OCSP response received");
    var_124 = (type_22 *)0x0;
LAB_000795a6:
    var_122(var_124);
  }
  else {
    var_69 = (type_35 *)var_121;
    var_124 = var_123((type_22 **)0x0,(type_14 **)&var_69,var_107);
    if (var_124 == (type_22 *)0x0) {
LAB_00079758:
      var_73(pCVar5,"Invalid OCSP response");
      goto LAB_000795a6;
    }
    var_3 = var_125(var_124);
    if (var_3 != 0) {
      var_2 = var_126(var_3);
      var_73(pCVar5,"Invalid OCSP response status: %s (%d)",var_2,var_3);
      goto LAB_000795a6;
    }
    var_128 = var_127(var_124);
    if (var_128 == (type_23 *)0x0) goto LAB_00079758;
    var_9 = var_8((type_38 *)connssl->backend->handle);
    st = var_129((type_40 *)connssl->backend->ctx);
    var_3 = var_130(var_128,var_9,st,0);
    if (0 < var_3) {
      for (var_3 = 0; var_24 = var_131(var_128), var_3 < var_24; var_3 = var_3 + 1) {
        var_133 = var_132(var_128,var_3);
        if (var_133 != (type_26 *)0x0) {
          var_24 = var_134
                             (var_133,(int *)&p,(type_41 **)&q,
                              (type_41 **)&var_31,(type_41 **)&var_79);
          var_98 = var_135((type_41 *)var_31,(type_41 *)var_79,300
                                       ,-1);
          if (var_98 == 0) {
            var_73(pCVar5,"OCSP response has expired");
          }
          else {
            var_2 = var_136(var_24);
            var_56(pCVar5,"SSL certificate status: %s (%d)\n",var_2,var_24);
            if (var_24 == 1) {
              var_2 = var_137((long)p);
              var_73(pCVar5,"SSL certificate revocation reason: %s (%d)",var_2,p);
            }
            else if (var_24 != 2) goto LAB_00079488;
          }
          var_138(var_128);
          var_122(var_124);
          goto LAB_00078c7e;
        }
LAB_00079488:
      }
      var_138(var_128);
      var_12 = var_13;
      var_122(var_124);
      var_112 = (conn->http_proxy).proxytype;
      psVar18 = connssl->backend;
      goto LAB_0007814e;
    }
    var_73(pCVar5,"OCSP response verification failed");
    var_138(var_128);
    var_122(var_124);
  }
LAB_00078c7e:
  var_101((type_11 *)connssl->backend->server_cert);
  var_12 = CURLE_SSL_INVALIDCERTSTATUS;
  connssl->backend->server_cert = (type_11 *)0x0;
LAB_00078251:
  if (var_139 == *(int *)(var_1 + 0x14)) {
    return var_12;
  }
                    /* WARNING: Subroutine does not return */
  var_140();
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier))) (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (number_literal)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (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: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (identifier)) right: (number_literal)))) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (field_expression argument: (identifier) field: (field_identifier)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (for_statement condition: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (identifier))) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (number_literal))))) (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (binary_expression left: (identifier) right: (number_literal)) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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 (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (identifier)) right: (number_literal)))) (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (number_literal)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_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: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (unary_expression argument: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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 (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (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 (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (labeled_statement label: (statement_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 (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (goto_statement label: (statement_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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier)))) right: (number_literal)))) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (identifier)))) (number_literal)))))) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (identifier) field: (field_identifier)))))))) right: (char_literal (escape_sequence)))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier))) (identifier)))))) (labeled_statement label: (statement_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: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (false))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (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 (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (true))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (true))))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (true)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (true))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (field_expression argument: (subscript_expression argument: (identifier) index: (number_literal)) field: (field_identifier)))) right: (identifier)) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (unary_expression argument: (identifier))) right: (parenthesized_expression (unary_expression argument: (identifier))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (number_literal)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (number_literal)) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (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) (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) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (number_literal)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (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: (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: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (number_literal)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (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: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (number_literal)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)) (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) (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 (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (number_literal)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (number_literal)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (number_literal)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))))) (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 (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (number_literal)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (number_literal)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) right: (number_literal)) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (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 (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))))) (if_statement condition: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (goto_statement label: (statement_identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal) (number_literal) (pointer_expression argument: (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier))) (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 (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (goto_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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier)))) (goto_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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (identifier))) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier))) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)) (identifier) (number_literal) (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) (binary_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (MISSING "}"))))

int __regparm3 MASKED(undefined4 param_1,int param_2,char param_3)

{
  char *pcVar1;
  byte *pbVar2;
  char cVar3;
  int iVar4;
  bool bVar5;
  bool bVar6;
  bool bVar7;
  uint uVar8;
  int *piVar9;
  BIO_METHOD *pBVar10;
  BIO *pBVar11;
  X509 *pXVar12;
  undefined1 *puVar13;
  ASN1_TIME *pAVar14;
  long lVar15;
  ASN1_GENERALIZEDTIME *pAVar16;
  X509_PUBKEY *pXVar17;
  ASN1_GENERALIZEDTIME *pAVar18;
  int iVar19;
  GENERAL_NAMES *a;
  char *pcVar20;
  int *piVar21;
  undefined1 *puVar22;
  BIO *out;
  undefined4 uVar23;
  ASN1_INTEGER *pAVar24;
  X509_EXTENSION *ex;
  BIO *out_00;
  ASN1_OBJECT *a_00;
  uint uVar25;
  uint uVar26;
  OCSP_RESPONSE *resp;
  OCSP_BASICRESP *bs;
  stack_st_X509 *psVar27;
  X509_STORE *st;
  int iVar28;
  OCSP_SINGLERESP *single;
  int iVar29;
  char *pcVar30;
  EVP_PKEY *pkey;
  ASN1_OCTET_STRING *v;
  X509_NAME *pXVar31;
  ASN1_GENERALIZEDTIME *pAVar32;
  size_t sVar33;
  X509_NAME_ENTRY *ne;
  ASN1_STRING *pAVar34;
  size_t sVar35;
  ASN1_GENERALIZEDTIME *pAVar36;
  void *pvVar37;
  ulong e;
  int iVar38;
  uint uVar39;
  ASN1_GENERALIZEDTIME *extraout_EDX;
  int unaff_EBX;
  undefined4 *puVar40;
  char *pcVar41;
  int in_GS_OFFSET;
  byte bVar42;
  X509 *local_a48;
  int local_a44;
  char *local_a30;
  int local_a2c;
  char *local_a28;
  int local_a24;
  ASN1_GENERALIZEDTIME *local_a20;
  int local_a1c;
  ASN1_GENERALIZEDTIME *local_a14;
  ASN1_GENERALIZEDTIME *local_a10;
  long *local_9f8;
  ASN1_GENERALIZEDTIME *local_9d0;
  int *local_9cc;
  int *local_9c8;
  long local_9c4;
  ASN1_GENERALIZEDTIME *local_9c0;
  BIGNUM *local_9bc;
  ASN1_GENERALIZEDTIME *local_9b8;
  char local_9b4 [16];
  char local_9a4 [128];
  char local_924 [4];
  undefined4 local_920 [63];
  undefined1 local_824 [512];
  undefined1 auStack_624 [1536];
  int local_24;
  undefined4 uStack_14;
  
  bVar42 = 0;
  uStack_14 = 0x77ef9;
  piVar9 = (int *)entry();
  iVar4 = *piVar9;
  local_24 = *(int *)(in_GS_OFFSET + 0x14);
  puVar40 = local_920;
  for (iVar38 = 0x3f; iVar38 != 0; iVar38 = iVar38 + -1) {
    *puVar40 = 0;
    puVar40 = puVar40 + (uint)bVar42 * -2 + 1;
  }
  local_924[0] = '\0';
  local_924[1] = '\0';
  local_924[2] = '\0';
  local_924[3] = '\0';
  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
    local_9f8 = (long *)(iVar4 + 0x8b4);
  }
  else {
    local_9f8 = (long *)(iVar4 + 0x850);
  }
  pBVar10 = BIO_s_mem();
  pBVar11 = BIO_new(pBVar10);
  if (*(char *)(iVar4 + 0x864) != '\0') {
    iVar38 = *piVar9;
    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));
    if (psVar27 != (stack_st_X509 *)0x0) {
      iVar19 = OPENSSL_sk_num(psVar27);
      iVar28 = FUN_0007b4c0(iVar38,iVar19);
      if (iVar28 == 0) {
        pBVar10 = BIO_s_mem();
        out = BIO_new(pBVar10);
        if (0 < iVar19) {
          local_a44 = 0;
          do {
            pXVar12 = (X509 *)OPENSSL_sk_value(psVar27,local_a44);
            local_9c8 = (int *)0x0;
            pXVar31 = X509_get_subject_name(pXVar12);
            X509_NAME_print_ex(out,pXVar31,0,0x82031f);
            lVar15 = BIO_ctrl(out,3,0,&local_9cc);
            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1043b,local_9cc,lVar15);
            BIO_ctrl(out,1,0,(void *)0x0);
            pXVar31 = X509_get_issuer_name(pXVar12);
            X509_NAME_print_ex(out,pXVar31,0,0x82031f);
            lVar15 = BIO_ctrl(out,3,0,&local_9cc);
            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10443,local_9cc,lVar15);
            BIO_ctrl(out,1,0,(void *)0x0);
            uVar23 = X509_get_version(pXVar12);
            BIO_printf(out,(char *)((int)&__DT_SYMTAB[2].st_size + unaff_EBX + 2),uVar23);
            lVar15 = BIO_ctrl(out,3,0,&local_9cc);
            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0xd383,local_9cc,lVar15);
            BIO_ctrl(out,1,0,(void *)0x0);
            pAVar24 = X509_get_serialNumber(pXVar12);
            if (pAVar24->type == 0x102) {
              BIO_puts(out,(char *)(unaff_EBX + 0xf12d));
            }
            iVar28 = 0;
            if (0 < pAVar24->length) {
              do {
                pbVar2 = pAVar24->data + iVar28;
                iVar28 = iVar28 + 1;
                BIO_printf(out,(char *)(unaff_EBX + 0xf774),(uint)*pbVar2);
              } while (iVar28 < pAVar24->length);
            }
            lVar15 = BIO_ctrl(out,3,0,&local_9cc);
            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1044e,local_9cc,lVar15);
            BIO_ctrl(out,1,0,(void *)0x0);
            local_9bc = (BIGNUM *)0x0;
            pAVar34 = ASN1_STRING_new();
            if (pAVar34 != (ASN1_STRING *)0x0) {
              X509_get0_signature(&local_9c8,&local_9bc,pXVar12);
              X509_signature_print(out,(X509_ALGOR *)local_9bc,pAVar34);
              ASN1_STRING_free(pAVar34);
              if (local_9bc != (BIGNUM *)0x0) {
                i2a_ASN1_OBJECT(out,(ASN1_OBJECT *)local_9bc->d);
                lVar15 = BIO_ctrl(out,3,0,&local_9cc);
                FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1045c,local_9cc,lVar15);
                BIO_ctrl(out,1,0,(void *)0x0);
              }
            }
            uVar23 = X509_get0_extensions(pXVar12);
            iVar28 = OPENSSL_sk_num(uVar23);
            local_a2c = 0;
            if (0 < iVar28) {
              for (; iVar28 = OPENSSL_sk_num(uVar23), local_a2c < iVar28; local_a2c = local_a2c + 1)
              {
                ex = (X509_EXTENSION *)OPENSSL_sk_value(uVar23,local_a2c);
                pBVar10 = BIO_s_mem();
                out_00 = BIO_new(pBVar10);
                if (out_00 == (BIO *)0x0) break;
                a_00 = X509_EXTENSION_get_object(ex);
                i2t_ASN1_OBJECT(local_9a4,0x80,a_00);
                iVar28 = X509V3_EXT_print(out_00,ex,0,0);
                if (iVar28 == 0) {
                  v = X509_EXTENSION_get_data(ex);
                  ASN1_STRING_print(out_00,v);
                }
                BIO_ctrl(out_00,0x73,0,&local_9b8);
                uVar25 = 0;
                uVar39 = local_9b8->length;
                pAVar16 = local_9b8;
                local_a20 = (ASN1_GENERALIZEDTIME *)local_824;
                if (uVar39 != 0) {
                  do {
                    iVar28 = pAVar16->type;
                    uVar26 = uVar25;
                    uVar8 = uVar25 + 1;
                    local_a24 = unaff_EBX + 0xfe77;
                    if (*(char *)(iVar28 + uVar25) == '\n') {
                      uVar26 = uVar25 + 1;
                      uVar8 = uVar25 + 2;
                      local_a24 = unaff_EBX + 0x6071;
                    }
                    uVar25 = uVar8;
                    if (uVar26 < uVar39) {
                      cVar3 = *(char *)(iVar28 + uVar26);
                      if (cVar3 == ' ') {
                        uVar26 = uVar26 + 2;
                        do {
                          uVar25 = uVar26;
                          if (uVar39 + 1 == uVar25) goto LAB_000789f7;
                          cVar3 = *(char *)(iVar28 + -2 + uVar25 + 1);
                          uVar26 = uVar25 + 1;
                        } while (cVar3 == ' ');
                      }
                      iVar28 = curl_msnprintf(local_a20,auStack_624 + -(int)local_a20,
                                              unaff_EBX + 0xb37b,local_a24,(int)cVar3);
                      local_a20 = (ASN1_GENERALIZEDTIME *)((int)local_a20 + iVar28);
                      pAVar16 = local_9b8;
                    }
LAB_000789f7:
                    uVar39 = pAVar16->length;
                  } while (uVar25 < uVar39);
                }
                FUN_0007b610(iVar38,local_a44,local_9a4,local_824);
                BIO_free(out_00);
              }
            }
            pAVar14 = (ASN1_TIME *)X509_get0_notBefore(pXVar12);
            ASN1_TIME_print(out,pAVar14);
            lVar15 = BIO_ctrl(out,3,0,&local_9cc);
            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x10471,local_9cc,lVar15);
            BIO_ctrl(out,1,0,(void *)0x0);
            pAVar14 = (ASN1_TIME *)X509_get0_notAfter(pXVar12);
            ASN1_TIME_print(out,pAVar14);
            lVar15 = BIO_ctrl(out,3,0,&local_9cc);
            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x1047c,local_9cc,lVar15);
            BIO_ctrl(out,1,0,(void *)0x0);
            pkey = X509_get_pubkey(pXVar12);
            if (pkey == (EVP_PKEY *)0x0) {
              FUN_00027140(iVar38,unaff_EBX + 0x10488);
            }
            else {
              iVar28 = EVP_PKEY_id(pkey);
              if (iVar28 == 0x1c) {
                uVar23 = EVP_PKEY_get0_DH(pkey);
                DH_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);
                iVar28 = unaff_EBX + 0x544b;
                DH_get0_key(uVar23,&local_9b8,0);
LAB_0007922b:
                FUN_00075190(iVar28,unaff_EBX + 0x7c87,local_9c4);
                FUN_00075190(iVar28,unaff_EBX + 0xdee9,local_9c0);
                FUN_00075190(iVar28,unaff_EBX + 0xf20b,local_9bc);
                iVar29 = unaff_EBX + 0x104b5;
LAB_000791bc:
                FUN_00075190(iVar28,iVar29,local_9b8);
              }
              else {
                if (iVar28 == 0x74) {
                  uVar23 = EVP_PKEY_get0_DSA(pkey);
                  DSA_get0_pqg(uVar23,&local_9c4,&local_9c0,&local_9bc);
                  iVar28 = unaff_EBX + 0xc090;
                  DSA_get0_key(uVar23,&local_9b8,0);
                  goto LAB_0007922b;
                }
                if (iVar28 == 6) {
                  iVar28 = unaff_EBX + 0xc081;
                  uVar23 = EVP_PKEY_get0_RSA(pkey);
                  RSA_get0_key(uVar23,&local_9bc,&local_9b8,0);
                  BN_print(out,local_9bc);
                  lVar15 = BIO_ctrl(out,3,0,&local_9cc);
                  FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104a6,local_9cc,lVar15);
                  BIO_ctrl(out,1,0,(void *)0x0);
                  FUN_00075190(iVar28,unaff_EBX + 0xf7bd,local_9bc);
                  iVar29 = unaff_EBX + 0x102a0;
                  goto LAB_000791bc;
                }
              }
              EVP_PKEY_free(pkey);
            }
            if (local_9c8 != (int *)0x0) {
              iVar28 = 0;
              if (0 < *local_9c8) {
                do {
                  pbVar2 = (byte *)(local_9c8[2] + iVar28);
                  iVar28 = iVar28 + 1;
                  BIO_printf(out,(char *)((int)&__DT_SYMTAB[10].st_value + unaff_EBX + 3),
                             (uint)*pbVar2);
                } while (iVar28 < *local_9c8);
              }
              lVar15 = BIO_ctrl(out,3,0,&local_9cc);
              FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104bd,local_9cc,lVar15);
              BIO_ctrl(out,1,0,(void *)0x0);
            }
            PEM_write_bio_X509(out,pXVar12);
            lVar15 = BIO_ctrl(out,3,0,&local_9cc);
            FUN_0007b520(iVar38,local_a44,unaff_EBX + 0x104cd,local_9cc,lVar15);
            BIO_ctrl(out,1,0,(void *)0x0);
            local_a44 = local_a44 + 1;
          } while (iVar19 != local_a44);
        }
        BIO_free(out);
      }
    }
  }
  iVar38 = *(int *)(param_2 + 0xc);
  pXVar12 = SSL_get_peer_certificate(*(SSL **)(iVar38 + 4));
  *(X509 **)(iVar38 + 8) = pXVar12;
  if (*(int *)(*(int *)(param_2 + 0xc) + 8) == 0) {
    iVar38 = 0;
    BIO_free(pBVar11);
    if (param_3 != '\0') {
      iVar38 = 0x3c;
      FUN_00027240(iVar4,unaff_EBX + 0x1122f);
    }
    goto LAB_00078251;
  }
  iVar38 = unaff_EBX + 0x5eef;
  if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
    iVar38 = unaff_EBX + 0x5ee9;
  }
  FUN_00027140(iVar4,unaff_EBX + 0x104d2,iVar38);
  X509_get_subject_name(*(X509 **)(*(int *)(param_2 + 0xc) + 8));
  puVar22 = local_824;
  iVar38 = FUN_00077df0();
  puVar13 = (undefined1 *)((int)&__DT_SYMTAB[1].st_value + unaff_EBX);
  if (iVar38 == 0) {
    puVar13 = puVar22;
  }
  FUN_00027140(iVar4,unaff_EBX + 0x104e3,puVar13);
  pAVar14 = (ASN1_TIME *)X509_get0_notBefore(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));
  ASN1_TIME_print(pBVar11,pAVar14);
  lVar15 = BIO_ctrl(pBVar11,3,0,&local_9d0);
  FUN_00027140(iVar4,unaff_EBX + 0x104f1,lVar15,local_9d0);
  BIO_ctrl(pBVar11,1,0,(void *)0x0);
  pAVar14 = (ASN1_TIME *)X509_get0_notAfter(*(undefined4 *)(*(int *)(param_2 + 0xc) + 8));
  ASN1_TIME_print(pBVar11,pAVar14);
  pAVar16 = (ASN1_GENERALIZEDTIME *)BIO_ctrl(pBVar11,3,0,&local_9d0);
  pcVar30 = (char *)((int)&__DT_SYMTAB[0xe].st_value + unaff_EBX);
  local_a10 = local_9d0;
  FUN_00027140(iVar4,pcVar30,pAVar16,local_9d0);
  BIO_ctrl(pBVar11,1,0,(void *)0x0);
  BIO_free(pBVar11);
  local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);
  if (piVar9[0x3a] != 2) {
    if (*(char *)((int)piVar9 + 0x201) == '\0') goto LAB_000780f3;
    local_a1c = *piVar9;
LAB_00078282:
    local_a30 = (char *)piVar9[0x25];
    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x26];
LAB_0007829a:
    if ((*(char *)((int)piVar9 + 0x252) == '\0') ||
       (iVar38 = inet_pton(10,local_a30,local_9b4), iVar38 == 0)) {
      local_a28 = local_9b4;
      iVar38 = inet_pton(2,local_a30,local_a28);
      local_a20 = (ASN1_GENERALIZEDTIME *)(~-(uint)(iVar38 == 0) & 4);
      iVar38 = (-(uint)(iVar38 == 0) & 0xfffffffb) + 7;
    }
    else {
      local_a20 = (ASN1_GENERALIZEDTIME *)0x10;
      iVar38 = 7;
    }
    local_a28 = local_9b4;
    pAVar18 = (ASN1_GENERALIZEDTIME *)0x0;
    pAVar16 = (ASN1_GENERALIZEDTIME *)0x0;
    a = (GENERAL_NAMES *)X509_get_ext_d2i(local_a48,0x55,(int *)0x0,(int *)0x0);
    local_a10 = pAVar18;
    if (a == (GENERAL_NAMES *)0x0) {
LAB_00079040:
      pAVar18 = (ASN1_GENERALIZEDTIME *)(unaff_EBX + 0xfe77);
      local_9b8 = pAVar18;
      pXVar31 = X509_get_subject_name(local_a48);
      pAVar32 = (ASN1_GENERALIZEDTIME *)0xffffffff;
      if (pXVar31 == (X509_NAME *)0x0) {
LAB_0007908e:
        if (local_9b8 == pAVar18) {
          local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;
LAB_0007950b:
          unaff_EBX = unaff_EBX + 0x1132b;
          local_a14 = local_a10;
        }
        else {
          if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;
          iVar38 = FUN_000602e0(local_9b8,local_a30);
          pAVar16 = local_9b8;
          if (iVar38 != 0) {
            pcVar30 = (char *)((int)&__DT_SYMTAB[0x12].st_value + unaff_EBX);
            FUN_00027140(local_a1c,pcVar30,local_9b8);
            if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_000783a8;
            pcVar30 = (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX);
            pAVar16 = (ASN1_GENERALIZEDTIME *)0x693;
            local_a10 = extraout_EDX;
            CRYPTO_free(local_9b8);
            local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);
            goto LAB_000780f3;
          }
          unaff_EBX = unaff_EBX + 0x11363;
        }
        FUN_00027240(local_a1c,unaff_EBX,pAVar16,local_a14);
LAB_000790e4:
        if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {
          CRYPTO_free(local_9b8);
          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);
          goto LAB_000794d2;
        }
      }
      else {
        do {
          pAVar36 = pAVar32;
          pAVar16 = pAVar36;
          pAVar32 = (ASN1_GENERALIZEDTIME *)X509_NAME_get_index_by_NID(pXVar31,0xd,(int)pAVar36);
        } while (-1 < (int)pAVar32);
        if (pAVar36 == (ASN1_GENERALIZEDTIME *)0xffffffff) goto LAB_0007908e;
        ne = X509_NAME_get_entry(pXVar31,(int)pAVar36);
        pAVar34 = X509_NAME_ENTRY_get_data(ne);
        if (pAVar34 == (ASN1_STRING *)0x0) goto LAB_0007908e;
        iVar38 = ASN1_STRING_type(pAVar34);
        if (iVar38 == 0xc) {
          pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length(pAVar34);
          if ((int)pAVar32 < 0) goto LAB_0007969a;
          pAVar16 = (ASN1_GENERALIZEDTIME *)0x662;
          local_9b8 = (ASN1_GENERALIZEDTIME *)
                      CRYPTO_malloc((int)((int)&pAVar32->length + 1),
                                    (char *)((int)&__DT_SYMTAB[0xf].st_size + unaff_EBX),0x662);
          if (local_9b8 != (ASN1_GENERALIZEDTIME *)0x0) {
            pvVar37 = (void *)ASN1_STRING_get0_data(pAVar34);
            pAVar16 = pAVar32;
            memcpy(local_9b8,pvVar37,(size_t)pAVar32);
            *(char *)((int)&pAVar32->length + (int)&local_9b8->length) = '\0';
            goto LAB_0007969a;
          }
          goto LAB_0007950b;
        }
        pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_to_UTF8((uchar **)&local_9b8,pAVar34);
LAB_0007969a:
        if (local_9b8 == (ASN1_GENERALIZEDTIME *)0x0) goto LAB_0007950b;
        sVar35 = strlen((char *)local_9b8);
        pAVar36 = (ASN1_GENERALIZEDTIME *)FUN_0005a1d0(sVar35);
        if (pAVar36 == pAVar32) goto LAB_0007908e;
        FUN_00027240(local_a1c,unaff_EBX + 0x10527);
        if (local_9b8 != pAVar18) goto LAB_000790e4;
      }
      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);
    }
    else {
      pcVar20 = (char *)OPENSSL_sk_num(a);
      if ((int)pcVar20 < 1) {
        GENERAL_NAMES_free(a);
        local_a10 = pAVar18;
        goto LAB_00079040;
      }
      pcVar1 = (char *)((int)&__DT_SYMTAB[0xe6].st_name + unaff_EBX + 3);
      bVar5 = false;
      pcVar41 = (char *)0x0;
      bVar6 = false;
      bVar7 = false;
      do {
        while( true ) {
          pcVar30 = pcVar41;
          piVar21 = (int *)OPENSSL_sk_value(a,pcVar41);
          iVar19 = *piVar21;
          if (iVar19 == 2) break;
          if (iVar19 == 7) {
            if (iVar38 == 7) {
              pvVar37 = (void *)ASN1_STRING_get0_data(piVar21[1]);
              pAVar32 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_length((ASN1_STRING *)piVar21[1]);
              if (local_a20 == pAVar32) {
                pcVar30 = local_a28;
                pAVar16 = local_a20;
                iVar19 = memcmp(pvVar37,local_a28,(size_t)local_a20);
                bVar6 = true;
                if (iVar19 == 0) {
                  pcVar30 = pcVar1;
                  pAVar16 = local_a14;
                  FUN_00027140(local_a1c,pcVar1,local_a14);
                  bVar5 = true;
                }
                goto LAB_00078351;
              }
            }
            bVar6 = true;
          }
          else if (iVar19 == iVar38) {
            local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);
            sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);
            if (iVar38 == 2) goto LAB_00079422;
          }
LAB_00078351:
          pcVar41 = pcVar41 + 1;
          local_a10 = pAVar18;
          if (pcVar20 == pcVar41) goto LAB_0007838a;
        }
        if (iVar38 == 2) {
          local_a10 = (ASN1_GENERALIZEDTIME *)ASN1_STRING_get0_data(piVar21[1]);
          sVar35 = ASN1_STRING_length((ASN1_STRING *)piVar21[1]);
          bVar7 = true;
LAB_00079422:
          sVar33 = strlen((char *)local_a10);
          if ((sVar33 != sVar35) ||
             (pcVar30 = local_a30, iVar19 = FUN_000602e0(local_a10,local_a30), iVar19 == 0))
          goto LAB_00078351;
          pcVar30 = (char *)((int)&__DT_SYMTAB[0xe3].st_name + unaff_EBX + 3);
          FUN_00027140(local_a1c,pcVar30,local_a14,local_a10);
          GENERAL_NAMES_free(a);
          pAVar16 = local_a14;
          goto LAB_000783a8;
        }
        bVar7 = true;
        pcVar41 = pcVar41 + 1;
        local_a10 = pAVar18;
      } while (pcVar20 != pcVar41);
LAB_0007838a:
      GENERAL_NAMES_free(a);
      if (bVar5) {
LAB_000783a8:
        local_a48 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);
        goto LAB_000780f3;
      }
      if ((!bVar6) && (!bVar7)) goto LAB_00079040;
      FUN_00027140(local_a1c,unaff_EBX + 0x112bb,local_a14);
      FUN_00027240(local_a1c,unaff_EBX + 0x112df,local_a14);
      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);
    }
LAB_000794d2:
    iVar38 = 0x3c;
    X509_free(pXVar12);
    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;
    goto LAB_00078251;
  }
  if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) {
    if (*(char *)((int)piVar9 + 0x201) != '\0') {
      local_a1c = *piVar9;
      if (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] == 2) goto LAB_00078282;
      goto LAB_00078a68;
    }
  }
  else if (*(char *)((int)piVar9 + 0x229) != '\0') {
    local_a1c = *piVar9;
LAB_00078a68:
    local_a30 = (char *)piVar9[0x37];
    local_a14 = (ASN1_GENERALIZEDTIME *)piVar9[0x38];
    goto LAB_0007829a;
  }
LAB_000780f3:
  X509_get_issuer_name(local_a48);
  iVar38 = FUN_00077df0(local_a48,pcVar30,pAVar16,local_a10);
  if (iVar38 == 0) {
    FUN_00027140(iVar4,unaff_EBX + 0x10560,puVar22);
    if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
      iVar38 = *(int *)(iVar4 + 0x8bc);
    }
    else {
      iVar38 = *(int *)(iVar4 + 0x858);
    }
    if (iVar38 != 0) {
      pBVar10 = BIO_s_file();
      pBVar11 = BIO_new(pBVar10);
      if (pBVar11 == (BIO *)0x0) {
        e = ERR_get_error();
        ERR_error_string_n(e,local_924,0x100);
        FUN_00027240(iVar4,unaff_EBX + 0x10c77,local_924);
        X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));
        iVar38 = 0x1b;
        *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;
        goto LAB_00078251;
      }
      if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
        pvVar37 = *(void **)(iVar4 + 0x8bc);
      }
      else {
        pvVar37 = *(void **)(iVar4 + 0x858);
      }
      lVar15 = BIO_ctrl(pBVar11,0x6c,3,pvVar37);
      if (lVar15 < 1) {
        if (param_3 != '\0') {
          if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
            uVar23 = *(undefined4 *)(iVar4 + 0x8bc);
          }
          else {
            uVar23 = *(undefined4 *)(iVar4 + 0x858);
          }
          FUN_00027240(iVar4,unaff_EBX + 0x113cf,uVar23);
        }
        BIO_free(pBVar11);
      }
      else {
        pXVar12 = PEM_read_bio_X509(pBVar11,(X509 **)0x0,(undefined1 *)0x0,(void *)0x0);
        if (pXVar12 == (X509 *)0x0) {
          if (param_3 != '\0') {
            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);
            }
            else {
              uVar23 = *(undefined4 *)(iVar4 + 0x858);
            }
            FUN_00027240(iVar4,unaff_EBX + 0x113f7,uVar23);
          }
          BIO_free(pBVar11);
          pXVar12 = (X509 *)0x0;
        }
        else {
          iVar38 = X509_check_issued(pXVar12,*(X509 **)(*(int *)(param_2 + 0xc) + 8));
          if (iVar38 == 0) {
            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
              puVar22 = *(undefined1 **)(iVar4 + 0x8bc);
            }
            else {
              puVar22 = *(undefined1 **)(iVar4 + 0x858);
            }
            FUN_00027140(iVar4,unaff_EBX + 0x1144b,puVar22);
            BIO_free(pBVar11);
            X509_free(pXVar12);
            goto LAB_000784c4;
          }
          if (param_3 != '\0') {
            if ((piVar9[0x3a] == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
              uVar23 = *(undefined4 *)(iVar4 + 0x8bc);
            }
            else {
              uVar23 = *(undefined4 *)(iVar4 + 0x858);
            }
            FUN_00027240(iVar4,unaff_EBX + 0x1141f,uVar23);
          }
          BIO_free(pBVar11);
        }
        X509_free(pXVar12);
      }
      X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));
      iVar38 = 0x53;
      *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;
      goto LAB_00078251;
    }
LAB_000784c4:
    lVar15 = SSL_get_verify_result(*(SSL **)(*(int *)(param_2 + 0xc) + 4));
    *local_9f8 = lVar15;
    if (lVar15 == 0) {
      iVar38 = 0;
      FUN_00027140(iVar4,unaff_EBX + 0x1056d,puVar22);
      iVar19 = piVar9[0x3a];
    }
    else {
      iVar19 = piVar9[0x3a];
      if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
        cVar3 = (char)piVar9[0x8a];
      }
      else {
        cVar3 = (char)piVar9[0x80];
      }
      if (cVar3 == '\0') {
        iVar38 = 0;
        pcVar30 = X509_verify_cert_error_string(lVar15);
        FUN_00027140(iVar4,unaff_EBX + 0x1149b,pcVar30,lVar15);
        iVar19 = piVar9[0x3a];
      }
      else {
        iVar38 = 0x3c;
        if (param_3 != '\0') {
          pcVar30 = X509_verify_cert_error_string(lVar15);
          FUN_00027240(iVar4,unaff_EBX + 0x11473,pcVar30,lVar15);
          iVar19 = piVar9[0x3a];
        }
      }
    }
  }
  else if (param_3 == '\0') {
    iVar38 = 0x3c;
    iVar19 = piVar9[0x3a];
  }
  else {
    iVar38 = 0x3c;
    FUN_00027240(iVar4,unaff_EBX + 0x113ab);
    iVar19 = piVar9[0x3a];
  }
  if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
    cVar3 = *(char *)((int)piVar9 + 0x22a);
    iVar28 = *(int *)(param_2 + 0xc);
  }
  else {
    cVar3 = *(char *)((int)piVar9 + 0x202);
    iVar28 = *(int *)(param_2 + 0xc);
  }
  if (cVar3 == '\0') {
LAB_0007814e:
    if (param_3 == '\0') {
      iVar38 = 0;
    }
    if ((iVar19 == 2) && (piVar9[((piVar9[0x65] != -1) + 0x1d) * 4 + 2] != 2)) {
      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e8);
    }
    else {
      pAVar16 = *(ASN1_GENERALIZEDTIME **)(iVar4 + 0x9e4);
    }
    pXVar12 = *(X509 **)(iVar28 + 8);
    local_9d0 = pAVar16;
    if ((iVar38 == 0) && (pAVar16 != (ASN1_GENERALIZEDTIME *)0x0)) {
      local_9b8 = (ASN1_GENERALIZEDTIME *)0x0;
      if (pXVar12 == (X509 *)0x0) {
LAB_00078208:
        iVar38 = 0x5a;
      }
      else {
        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);
        iVar38 = i2d_X509_PUBKEY(pXVar17,(uchar **)0x0);
        if ((iVar38 < 1) ||
           (pAVar18 = (ASN1_GENERALIZEDTIME *)(**(code **)(unaff_EBX + 0x39177))(iVar38),
           local_9b8 = pAVar18, pAVar18 == (ASN1_GENERALIZEDTIME *)0x0)) goto LAB_00078208;
        pXVar17 = (X509_PUBKEY *)X509_get_X509_PUBKEY(pXVar12);
        iVar19 = i2d_X509_PUBKEY(pXVar17,(uchar **)&local_9b8);
        if ((iVar38 != iVar19) ||
           ((local_9b8 == (ASN1_GENERALIZEDTIME *)0x0 || (iVar38 != (int)local_9b8 - (int)pAVar18)))
           ) {
          (**(code **)(unaff_EBX + 0x39173))(pAVar18);
          goto LAB_00078208;
        }
        iVar38 = FUN_0007b670(iVar4,pAVar16,pAVar18,iVar38);
        (**(code **)(unaff_EBX + 0x39173))(pAVar18);
        if (iVar38 == 0) {
          pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);
          goto LAB_00078230;
        }
      }
      FUN_00027240(iVar4,unaff_EBX + 0x11577);
      pXVar12 = *(X509 **)(*(int *)(param_2 + 0xc) + 8);
    }
LAB_00078230:
    X509_free(pXVar12);
    *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;
    *(undefined4 *)(param_2 + 8) = 5;
    goto LAB_00078251;
  }
  iVar38 = *piVar9;
  lVar15 = SSL_ctrl(*(SSL **)(iVar28 + 4),0x46,0,&local_9cc);
  if (local_9cc == (int *)0x0) {
    FUN_00027240(iVar38,unaff_EBX + 0x1058a);
    resp = (OCSP_RESPONSE *)0x0;
LAB_000795a6:
    OCSP_RESPONSE_free(resp);
  }
  else {
    local_9c8 = local_9cc;
    resp = d2i_OCSP_RESPONSE((OCSP_RESPONSE **)0x0,(uchar **)&local_9c8,lVar15);
    if (resp == (OCSP_RESPONSE *)0x0) {
LAB_00079758:
      FUN_00027240(iVar38,unaff_EBX + 0x105a4);
      goto LAB_000795a6;
    }
    iVar19 = OCSP_response_status(resp);
    if (iVar19 != 0) {
      pcVar30 = OCSP_response_status_str(iVar19);
      FUN_00027240(iVar38,unaff_EBX + 0x114db,pcVar30,iVar19);
      goto LAB_000795a6;
    }
    bs = OCSP_response_get1_basic(resp);
    if (bs == (OCSP_BASICRESP *)0x0) goto LAB_00079758;
    psVar27 = SSL_get_peer_cert_chain(*(SSL **)(*(int *)(param_2 + 0xc) + 4));
    st = SSL_CTX_get_cert_store((SSL_CTX *)**(undefined4 **)(param_2 + 0xc));
    iVar19 = OCSP_basic_verify(bs,psVar27,st,0);
    if (0 < iVar19) {
      for (iVar19 = 0; iVar28 = OCSP_resp_count(bs), iVar19 < iVar28; iVar19 = iVar19 + 1) {
        single = OCSP_resp_get0(bs,iVar19);
        if (single != (OCSP_SINGLERESP *)0x0) {
          iVar28 = OCSP_single_get0_status
                             (single,&local_9c4,&local_9c0,(ASN1_GENERALIZEDTIME **)&local_9bc,
                              &local_9b8);
          iVar29 = OCSP_check_validity((ASN1_GENERALIZEDTIME *)local_9bc,local_9b8,300,-1);
          if (iVar29 == 0) {
            FUN_00027240(iVar38,unaff_EBX + 0x105ba);
          }
          else {
            pcVar30 = OCSP_cert_status_str(iVar28);
            FUN_00027140(iVar38,unaff_EBX + 0x11527,pcVar30,iVar28);
            if (iVar28 == 1) {
              pcVar30 = OCSP_crl_reason_str(local_9c4);
              FUN_00027240(iVar38,unaff_EBX + 0x1154b,pcVar30,local_9c4);
            }
            else if (iVar28 != 2) goto LAB_00079488;
          }
          OCSP_BASICRESP_free(bs);
          OCSP_RESPONSE_free(resp);
          goto LAB_00078c7e;
        }
LAB_00079488:
      }
      OCSP_BASICRESP_free(bs);
      iVar38 = 0;
      OCSP_RESPONSE_free(resp);
      iVar19 = piVar9[0x3a];
      iVar28 = *(int *)(param_2 + 0xc);
      goto LAB_0007814e;
    }
    FUN_00027240(iVar38,unaff_EBX + 0x11503);
    OCSP_BASICRESP_free(bs);
    OCSP_RESPONSE_free(resp);
  }
LAB_00078c7e:
  X509_free(*(X509 **)(*(int *)(param_2 + 0xc) + 8));
  iVar38 = 0x5b;
  *(undefined4 *)(*(int *)(param_2 + 0xc) + 8) = 0;
LAB_00078251:
  if (local_24 == *(int *)(in_GS_OFFSET + 0x14)) {
    return iVar38;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0007c1a0();
}

