
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

CURLcode Curl_auth_create_ntlm_type3_message
                   (Curl_easy *data,char *userp,char *passwdp,ntlmdata *ntlm,char **outptr,
                   size_t *outlen)

{
  uint uVar1;
  char cVar2;
  uint uVar3;
  long lVar4;
  int iVar5;
  CURLcode CVar6;
  long lVar7;
  ulong uVar8;
  ulong uVar9;
  ulong uVar10;
  char *pcVar11;
  char *pcVar12;
  undefined8 *puVar13;
  ulong uVar14;
  uint uVar15;
  uchar *puVar16;
  long lVar17;
  size_t userlen;
  long in_FS_OFFSET;
  byte bVar18;
  char *local_920;
  size_t local_918;
  ulong local_908;
  uchar *local_8e8;
  uint ntresplen;
  uchar *ntlmv2resp;
  uchar entropy_1 [8];
  uchar md5sum [16];
  uchar lmresp [24];
  uchar ntresp [24];
  uchar ntbuffer [24];
  undefined8 uStack_850;
  uchar ntlmbuf [1024];
  char host [1025];
  
  bVar18 = 0;
  lVar4 = *(long *)(in_FS_OFFSET + 0x28);
  ntresplen = 0x18;
  ntlmv2resp = (uchar *)0x0;
  uVar15 = ntlm->flags;
  host[0] = '\0';
  host[1] = '\0';
  host[2] = '\0';
  host[3] = '\0';
  host[4] = '\0';
  host[5] = '\0';
  host[6] = '\0';
  host[7] = '\0';
  host[8] = '\0';
  host[9] = '\0';
  host[10] = '\0';
  host[0xb] = '\0';
  host[0xc] = '\0';
  host[0xd] = '\0';
  host[0xe] = '\0';
  host[0xf] = '\0';
  pcVar11 = host + 0x10;
  for (lVar7 = 0x7e; lVar7 != 0; lVar7 = lVar7 + -1) {
    pcVar11[0] = '\0';
    pcVar11[1] = '\0';
    pcVar11[2] = '\0';
    pcVar11[3] = '\0';
    pcVar11[4] = '\0';
    pcVar11[5] = '\0';
    pcVar11[6] = '\0';
    pcVar11[7] = '\0';
    pcVar11 = pcVar11 + 8;
  }
  *pcVar11 = '\0';
  local_920 = strchr(userp,0x5c);
  if ((local_920 == (char *)0x0) && (local_920 = strchr(userp,0x2f), local_920 == (char *)0x0)) {
    local_918 = 0;
    pcVar11 = "";
    local_920 = userp;
  }
  else {
    local_918 = (long)local_920 - (long)userp;
    local_920 = local_920 + 1;
    pcVar11 = userp;
  }
  uVar8 = 0xffffffffffffffff;
  pcVar12 = local_920;
  do {
    if (uVar8 == 0) break;
    uVar8 = uVar8 - 1;
    cVar2 = *pcVar12;
    pcVar12 = pcVar12 + (ulong)bVar18 * -2 + 1;
  } while (cVar2 != '\0');
  userlen = ~uVar8 - 1;
  iVar5 = Curl_gethostname(host,0x401);
  if (iVar5 == 0) {
    uVar8 = 0xffffffffffffffff;
    pcVar12 = host;
    do {
      if (uVar8 == 0) break;
      uVar8 = uVar8 - 1;
      cVar2 = *pcVar12;
      pcVar12 = pcVar12 + (ulong)bVar18 * -2 + 1;
    } while (cVar2 != '\0');
    local_908 = ~uVar8 - 1;
  }
  else {
    Curl_infof(data,"gethostname() failed, continuing without!\n");
    local_908 = 0;
  }
  if ((ntlm->flags & 0x80000) == 0) {
    if ((ntlm->flags & 0x200) == 0) {
      CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer);
      if (CVar6 != CURLE_OK) goto LAB_001641e5;
      Curl_ntlm_core_lm_resp(ntbuffer,ntlm->nonce,ntresp);
      CVar6 = Curl_ntlm_core_mk_lm_hash(data,passwdp,ntlmbuf);
      if (CVar6 != CURLE_OK) goto LAB_001641e5;
      Curl_ntlm_core_lm_resp(ntlmbuf,ntlm->nonce,lmresp);
      local_8e8 = ntresp;
    }
    else {
      CVar6 = Curl_rand(data,entropy_1,8);
      if (CVar6 != CURLE_OK) goto LAB_001641e5;
      lmresp[0] = entropy_1[0];
      lmresp[1] = entropy_1[1];
      lmresp[2] = entropy_1[2];
      lmresp[3] = entropy_1[3];
      lmresp[4] = entropy_1[4];
      lmresp[5] = entropy_1[5];
      lmresp[6] = entropy_1[6];
      lmresp[7] = entropy_1[7];
      lmresp[8] = '\0';
      lmresp[9] = '\0';
      lmresp[10] = '\0';
      lmresp[0xb] = '\0';
      lmresp[0xc] = '\0';
      lmresp[0xd] = '\0';
      lmresp[0xe] = '\0';
      lmresp[0xf] = '\0';
      lmresp[0x10] = '\0';
      lmresp[0x11] = '\0';
      lmresp[0x12] = '\0';
      lmresp[0x13] = '\0';
      lmresp[0x14] = '\0';
      lmresp[0x15] = '\0';
      lmresp[0x16] = '\0';
      lmresp[0x17] = '\0';
      ntlmbuf._0_8_ = *(undefined8 *)ntlm->nonce;
      ntlmbuf[8] = entropy_1[0];
      ntlmbuf[9] = entropy_1[1];
      ntlmbuf[10] = entropy_1[2];
      ntlmbuf[0xb] = entropy_1[3];
      ntlmbuf[0xc] = entropy_1[4];
      ntlmbuf[0xd] = entropy_1[5];
      ntlmbuf[0xe] = entropy_1[6];
      ntlmbuf[0xf] = entropy_1[7];
      CVar6 = Curl_ssl_md5sum(ntlmbuf,0x10,md5sum,0x10);
      if ((CVar6 != CURLE_OK) ||
         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK))
      goto LAB_001641e5;
      local_8e8 = ntresp;
      Curl_ntlm_core_lm_resp(ntbuffer,md5sum,local_8e8);
    }
  }
  else {
    CVar6 = Curl_rand(data,ntresp,8);
    if ((((CVar6 != CURLE_OK) ||
         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK)) ||
        (CVar6 = Curl_ntlm_core_mk_ntlmv2_hash(local_920,userlen,pcVar11,local_918,ntbuffer,ntlmbuf)
        , CVar6 != CURLE_OK)) ||
       ((CVar6 = Curl_ntlm_core_mk_lmv2_resp(ntlmbuf,ntresp,ntlm->nonce,lmresp), CVar6 != CURLE_OK
        || (CVar6 = Curl_ntlm_core_mk_ntlmv2_resp(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen),
           CVar6 != CURLE_OK)))) goto LAB_001641e5;
    local_8e8 = ntlmv2resp;
  }
  uVar15 = uVar15 & 1;
  if (uVar15 != 0) {
    local_918 = local_918 << 1;
    userlen = userlen * 2;
    local_908 = local_908 << 1;
  }
  uVar1 = ntresplen + 0x58;
  uVar8 = local_918 + uVar1;
  uVar3 = ntlm->flags;
  uVar9 = (userlen & 0xffffffff) >> 8 & 0xff;
  uVar14 = (ulong)(ntresplen >> 8 & 0xff);
  uVar10 = local_918 >> 8 & 0xff;
  iVar5 = curl_msnprintf((char *)ntlmbuf,0x400,
                         "NTLMSSP%c\x03%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"
                         ,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,(ulong)(ntresplen & 0xff),uVar14,
                         (ulong)(ntresplen & 0xff),uVar14,0x58,0,0,0,local_918 & 0xff,uVar10,
                         local_918 & 0xff,uVar10,(ulong)uVar1 & 0xff,(ulong)(uVar1 >> 8) & 0xff,0,0,
                         userlen & 0xff,uVar9,userlen & 0xff,uVar9,uVar8 & 0xff,uVar8 >> 8 & 0xff,0,
                         0,local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,
                         userlen + uVar8 & 0xff,userlen + uVar8 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,
                         (ulong)(uVar3 & 0xff),(ulong)(uVar3 >> 8 & 0xff),
                         (ulong)(uVar3 >> 0x10 & 0xff),(ulong)(uVar3 >> 0x18));
  uVar8 = (ulong)iVar5;
  if (uVar8 < 1000) {
    *(undefined8 *)(ntlmbuf + uVar8) = lmresp._0_8_;
    *(undefined8 *)(ntlmbuf + uVar8 + 8) = lmresp._8_8_;
    *(undefined8 *)(ntlmbuf + uVar8 + 0x10) = lmresp._16_8_;
    uVar8 = uVar8 + 0x18;
  }
  uVar9 = ntresplen + uVar8;
  if (uVar9 < 0x401) {
    memcpy(ntlmbuf + uVar8,local_8e8,(ulong)ntresplen);
    (*Curl_cfree)(ntlmv2resp);
    if (local_908 + userlen + local_918 + uVar9 < 0x400) {
      if (uVar15 == 0) {
        memcpy(ntlmbuf + uVar9,pcVar11,local_918);
        memcpy(ntlmbuf + uVar9 + local_918,local_920,userlen);
        lVar7 = uVar9 + local_918 + userlen;
        puVar16 = ntlmbuf + lVar7;
        uVar15 = (uint)local_908;
        if (uVar15 < 8) {
          if ((local_908 & 4) == 0) {
            if (uVar15 != 0) {
              *puVar16 = host[0];
              if ((local_908 & 2) != 0) {
                *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =
                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);
              }
            }
          }
          else {
            *(undefined4 *)puVar16 = host._0_4_;
            *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4) =
                 *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc);
          }
        }
        else {
          *(undefined8 *)puVar16 = host._0_8_;
          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar7) =
               *(undefined8 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3f8);
          lVar17 = (long)puVar16 - (long)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);
          pcVar11 = host + -lVar17;
          puVar13 = (undefined8 *)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);
          for (uVar8 = (ulong)(uVar15 + (int)lVar17 >> 3); uVar8 != 0; uVar8 = uVar8 - 1) {
            *puVar13 = *(undefined8 *)pcVar11;
            pcVar11 = pcVar11 + ((ulong)bVar18 * -2 + 1) * 8;
            puVar13 = puVar13 + (ulong)bVar18 * -2 + 1;
          }
        }
      }
      else {
        unicodecpy(ntlmbuf + uVar9,pcVar11,local_918 >> 1);
        unicodecpy(ntlmbuf + uVar9 + local_918,local_920,userlen >> 1);
        lVar7 = uVar9 + local_918 + userlen;
        unicodecpy(ntlmbuf + lVar7,host,local_908 >> 1);
      }
      CVar6 = Curl_base64_encode(data,(char *)ntlmbuf,local_908 + lVar7,outptr,outlen);
      Curl_auth_ntlm_cleanup(ntlm);
    }
    else {
      Curl_failf(data,"user + domain + host name too big");
      CVar6 = CURLE_OUT_OF_MEMORY;
    }
  }
  else {
    Curl_failf(data,"incoming NTLM message too big");
    CVar6 = CURLE_OUT_OF_MEMORY;
  }
LAB_001641e5:
  if (lVar4 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return CVar6;
}



int FUN_001640ae(undefined8 param_1,char *param_2,undefined8 param_3,long param_4,undefined8 param_5
                ,undefined8 param_6)

{
  uint uVar1;
  char cVar2;
  uint uVar3;
  int iVar4;
  long lVar5;
  ulong uVar6;
  ulong uVar7;
  ulong uVar8;
  uint uVar9;
  ulong uVar10;
  char *pcVar11;
  undefined8 *puVar12;
  char *pcVar13;
  undefined8 *puVar14;
  uint uVar15;
  long lVar16;
  long in_FS_OFFSET;
  byte bVar17;
  char *local_920;
  ulong local_918;
  ulong local_908;
  undefined1 *local_8e8;
  uint local_8cc;
  undefined1 *local_8c8;
  undefined8 local_8c0;
  undefined1 local_8b8 [16];
  undefined8 local_8a8;
  undefined8 uStack_8a0;
  undefined8 local_898;
  undefined1 local_888 [32];
  undefined1 local_868 [24];
  undefined8 uStack_850;
  undefined8 local_848;
  undefined8 local_840 [126];
  undefined8 uStack_450;
  undefined8 local_448 [2];
  undefined8 local_438 [127];
  long local_40;
  
  bVar17 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_8cc = 0x18;
  local_8c8 = (undefined1 *)0x0;
  uVar15 = *(uint *)(param_4 + 4);
  local_448[0] = 0;
  local_448[1] = 0;
  puVar12 = local_438;
  for (lVar5 = 0x7e; lVar5 != 0; lVar5 = lVar5 + -1) {
    *puVar12 = 0;
    puVar12 = puVar12 + 1;
  }
  *(undefined1 *)puVar12 = 0;
  local_920 = strchr(param_2,0x5c);
  if ((local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)) {
    local_918 = 0;
    pcVar11 = "";
    local_920 = param_2;
  }
  else {
    local_918 = (long)local_920 - (long)param_2;
    local_920 = local_920 + 1;
    pcVar11 = param_2;
  }
  uVar6 = 0xffffffffffffffff;
  pcVar13 = local_920;
  do {
    if (uVar6 == 0) break;
    uVar6 = uVar6 - 1;
    cVar2 = *pcVar13;
    pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;
  } while (cVar2 != '\0');
  uVar6 = ~uVar6 - 1;
  iVar4 = FUN_0014c0ee(local_448,0x401);
  if (iVar4 == 0) {
    uVar7 = 0xffffffffffffffff;
    pcVar13 = (char *)local_448;
    do {
      if (uVar7 == 0) break;
      uVar7 = uVar7 - 1;
      cVar2 = *pcVar13;
      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;
    } while (cVar2 != '\0');
    local_908 = ~uVar7 - 1;
  }
  else {
    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");
    local_908 = 0;
  }
  if ((*(uint *)(param_4 + 4) & 0x80000) == 0) {
    if ((*(uint *)(param_4 + 4) & 0x200) == 0) {
      iVar4 = FUN_0014ed03(param_1,param_3,local_868);
      if (iVar4 != 0) goto LAB_001641e5;
      FUN_0014eaf6(local_868,param_4 + 8,local_888);
      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);
      if (iVar4 != 0) goto LAB_001641e5;
      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);
      local_8e8 = local_888;
    }
    else {
      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);
      if (iVar4 != 0) goto LAB_001641e5;
      local_8a8 = local_8c0;
      uStack_8a0 = 0;
      local_898 = 0;
      local_848 = *(undefined8 *)(param_4 + 8);
      local_840[0] = local_8c0;
      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);
      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))
      goto LAB_001641e5;
      local_8e8 = local_888;
      FUN_0014eaf6(local_868,local_8b8,local_8e8);
    }
  }
  else {
    iVar4 = FUN_0014ffcf(param_1,local_888,8);
    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||
        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))
       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||
           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))
    goto LAB_001641e5;
    local_8e8 = local_8c8;
  }
  uVar15 = uVar15 & 1;
  if (uVar15 != 0) {
    local_918 = local_918 << 1;
    uVar6 = uVar6 * 2;
    local_908 = local_908 << 1;
  }
  uVar1 = local_8cc + 0x58;
  uVar7 = local_918 + uVar1;
  uVar3 = *(uint *)(param_4 + 4);
  uVar8 = (uVar6 & 0xffffffff) >> 8 & 0xff;
  uVar9 = local_8cc >> 8 & 0xff;
  uVar10 = local_918 >> 8 & 0xff;
  iVar4 = curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,
                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,
                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,
                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,
                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,
                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,
                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18);
  uVar7 = (ulong)iVar4;
  if (uVar7 < 1000) {
    *(undefined8 *)((long)&local_848 + uVar7) = local_8a8;
    *(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;
    *(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;
    uVar7 = uVar7 + 0x18;
  }
  uVar8 = local_8cc + uVar7;
  if (uVar8 < 0x401) {
    memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);
    (*(code *)PTR_free_0018c0b8)(local_8c8);
    if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {
      if (uVar15 == 0) {
        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);
        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);
        lVar5 = uVar8 + local_918 + uVar6;
        pcVar11 = (char *)((long)&local_848 + lVar5);
        uVar15 = (uint)local_908;
        if (uVar15 < 8) {
          if ((local_908 & 4) == 0) {
            if (uVar15 != 0) {
              *pcVar11 = (char)local_448[0];
              if ((local_908 & 2) != 0) {
                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =
                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));
              }
            }
          }
          else {
            *(undefined4 *)pcVar11 = (undefined4)local_448[0];
            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =
                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));
          }
        }
        else {
          *(undefined8 *)pcVar11 = local_448[0];
          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =
               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));
          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);
          lVar16 = (long)pcVar11 - (long)puVar14;
          puVar12 = (undefined8 *)((long)local_448 - lVar16);
          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {
            *puVar14 = *puVar12;
            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;
            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;
          }
        }
      }
      else {
        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);
        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);
        lVar5 = uVar8 + local_918 + uVar6;
        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);
      }
      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);
      FUN_00163fa8(param_4);
    }
    else {
      FUN_0011aa69(param_1,"user + domain + host name too big");
      iVar4 = 0x1b;
    }
  }
  else {
    FUN_0011aa69(param_1,"incoming NTLM message too big");
    iVar4 = 0x1b;
  }
LAB_001641e5:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar4;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x8f8
MOV R15,RDI
MOV RBP,RSI
MOV qword ptr [RSP + 0x18],RDX
MOV R12,RCX
MOV qword ptr [RSP + 0x28],R8
MOV qword ptr [RSP + 0x30],R9
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x8e8],RAX
XOR EAX,EAX
MOV dword ptr [RSP + 0x5c],0x18
MOV qword ptr [RSP + 0x60],0x0
MOV R13D,dword ptr [RCX + 0x4]
MOV qword ptr [RSP + 0x4e0],0x0
MOV qword ptr [RSP + 0x4e8],0x0
LEA RDI,[RSP + 0x4f0]
MOV ECX,0x7e
STOSQ.REP RDI
MOV byte ptr [RDI],0x0
MOV ESI,0x5c
MOV RDI,RBP
CALL 0x0010d4f0
TEST RAX,RAX
JZ 0x00164210
MOV RBX,RAX
SUB RBX,RBP
MOV qword ptr [RSP + 0x10],RBX
ADD RAX,0x1
MOV qword ptr [RSP + 0x8],RAX
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,qword ptr [RSP + 0x8]
SCASB.REPNE RDI
MOV RBX,RCX
NOT RBX
LEA R14,[RBX + -0x1]
LEA RDI,[RSP + 0x4e0]
MOV ESI,0x401
CALL 0x0014c0ee
TEST EAX,EAX
JNZ 0x00164240
LEA RDI,[RSP + 0x4e0]
MOV RCX,-0x1
MOV EAX,0x0
SCASB.REPNE RDI
MOV RSI,RCX
NOT RSI
LEA RAX,[RSI + -0x1]
MOV qword ptr [RSP + 0x20],RAX
MOV EAX,dword ptr [R12 + 0x4]
TEST EAX,0x80000
JNZ 0x00164262
TEST AH,0x2
JZ 0x00164611
LEA RSI,[RSP + 0x68]
MOV EDX,0x8
MOV RDI,R15
CALL 0x0014ffcf
MOV EBX,EAX
TEST EAX,EAX
JZ 0x00164336
MOV EAX,EBX
MOV RDX,qword ptr [RSP + 0x8e8]
XOR RDX,qword ptr FS:[0x28]
JNZ 0x001647d6
ADD RSP,0x8f8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV ESI,0x2f
MOV RDI,RBP
CALL 0x0010d4f0
TEST RAX,RAX
JNZ 0x00164140
MOV qword ptr [RSP + 0x8],RBP
MOV qword ptr [RSP + 0x10],0x0
LEA RBP,[0x17803c]
JMP 0x00164154
LEA RSI,[0x177f28]
MOV RDI,R15
MOV EAX,0x0
CALL 0x0011a8d8
MOV qword ptr [RSP + 0x20],0x0
JMP 0x001641b0
LEA RSI,[RSP + 0xa0]
MOV EDX,0x8
MOV RDI,R15
CALL 0x0014ffcf
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x001641e5
LEA RDX,[RSP + 0xc0]
MOV RSI,qword ptr [RSP + 0x18]
MOV RDI,R15
CALL 0x0014ed03
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x001641e5
LEA R9,[RSP + 0xe0]
LEA R8,[RSP + 0xc0]
MOV RCX,qword ptr [RSP + 0x10]
MOV RDX,RBP
MOV RSI,R14
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x0014ee5c
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x001641e5
LEA RCX,[RSP + 0x80]
LEA RDX,[R12 + 0x8]
LEA RSI,[RSP + 0xa0]
LEA RDI,[RSP + 0xe0]
CALL 0x0014f0be
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x001641e5
LEA RCX,[RSP + 0x60]
LEA RSI,[RSP + 0xa0]
LEA RDI,[RSP + 0xe0]
LEA R8,[RSP + 0x5c]
MOV RDX,R12
CALL 0x0014ef6e
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x001641e5
MOV RAX,qword ptr [RSP + 0x60]
MOV qword ptr [RSP + 0x40],RAX
JMP 0x001643d7
MOV RAX,qword ptr [RSP + 0x68]
MOV qword ptr [RSP + 0x80],RAX
MOV qword ptr [RSP + 0x88],0x0
MOV qword ptr [RSP + 0x90],0x0
MOV RDX,qword ptr [R12 + 0x8]
MOV qword ptr [RSP + 0xe0],RDX
MOV qword ptr [RSP + 0xe8],RAX
LEA RDX,[RSP + 0x70]
LEA RDI,[RSP + 0xe0]
MOV ECX,0x10
MOV ESI,0x10
CALL 0x0016c0f0
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x001641e5
LEA RDX,[RSP + 0xc0]
MOV RSI,qword ptr [RSP + 0x18]
MOV RDI,R15
CALL 0x0014ed03
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x001641e5
LEA RBX,[RSP + 0xa0]
LEA RSI,[RSP + 0x70]
LEA RDI,[RSP + 0xc0]
MOV RDX,RBX
CALL 0x0014eaf6
MOV qword ptr [RSP + 0x40],RBX
AND R13D,0x1
MOV dword ptr [RSP + 0x4c],R13D
JZ 0x001643ef
SHL qword ptr [RSP + 0x10],0x1
ADD R14,R14
SHL qword ptr [RSP + 0x20],0x1
MOV EAX,dword ptr [RSP + 0x5c]
LEA ESI,[RAX + 0x58]
MOV dword ptr [RSP + 0x18],ESI
MOV R13D,ESI
MOV R9,qword ptr [RSP + 0x10]
LEA RSI,[R9 + R13*0x1]
LEA RDI,[R14 + RSI*0x1]
MOV EBX,dword ptr [R12 + 0x4]
MOV RDX,qword ptr [RSP + 0x20]
MOV R10,RDX
SHR R10,0x8
MOVZX R11D,DL
MOV EDX,R14D
MOVZX ECX,DH
MOV EDX,R9D
MOVZX EDX,DH
MOV dword ptr [RSP + 0x48],EDX
MOVZX EDX,AH
MOV R9D,EDX
MOVZX EAX,AL
LEA RDX,[RSP + 0xe0]
MOV qword ptr [RSP + 0x38],RDX
SUB RSP,0x8
MOV R8D,EBX
SHR R8D,0x18
PUSH R8
MOV R8D,EBX
SHR R8D,0x10
MOVZX R8D,R8B
PUSH R8
MOVZX EDX,BH
PUSH RDX
MOVZX EBX,BL
PUSH RBX
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x0
MOV EBX,EDI
MOVZX EBX,BH
PUSH RBX
MOVZX EDI,DIL
PUSH RDI
PUSH R10
PUSH R11
PUSH R10
PUSH R11
PUSH 0x0
PUSH 0x0
MOV EBX,ESI
MOVZX EDI,BH
PUSH RDI
MOVZX ESI,SIL
PUSH RSI
PUSH RCX
MOVZX ESI,R14B
PUSH RSI
PUSH RCX
PUSH RSI
PUSH 0x0
PUSH 0x0
MOV EBX,R13D
MOVZX ECX,BH
PUSH RCX
MOVZX ECX,byte ptr [RSP + 0x118]
PUSH RCX
MOV EDX,dword ptr [RSP + 0x150]
PUSH RDX
MOVZX ECX,byte ptr [RSP + 0x120]
PUSH RCX
PUSH RDX
PUSH RCX
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x58
PUSH R9
PUSH RAX
PUSH R9
PUSH RAX
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH 0x40
PUSH 0x0
PUSH 0x18
PUSH 0x0
PUSH 0x18
PUSH 0x0
MOV R9D,0x0
MOV R8D,0x0
MOV ECX,0x0
LEA RDX,[0x177f58]
MOV ESI,0x400
MOV RDI,qword ptr [RSP + 0x1e8]
MOV EAX,0x0
CALL 0x0010d7d0
CDQE
ADD RSP,0x1b0
CMP RAX,0x3e7
JBE 0x0016469d
MOV EDX,dword ptr [RSP + 0x5c]
LEA RBX,[RDX + RAX*0x1]
CMP RBX,0x400
JA 0x001646c7
LEA RDI,[RSP + RAX*0x1 + 0xe0]
MOV RSI,qword ptr [RSP + 0x40]
CALL 0x0010dca0
MOV RDI,qword ptr [RSP + 0x60]
LEA RAX,[0x18c0b8]
CALL qword ptr [RAX]
MOV RAX,qword ptr [RSP + 0x20]
ADD RAX,R14
ADD RAX,qword ptr [RSP + 0x10]
ADD RAX,RBX
CMP RAX,0x3ff
JA 0x001646e5
CMP dword ptr [RSP + 0x4c],0x0
JZ 0x00164703
MOV RDX,qword ptr [RSP + 0x10]
SHR RDX,0x1
LEA R13,[RSP + 0xe0]
LEA RDI,[R13 + RBX*0x1]
MOV RSI,RBP
CALL 0x00163d76
ADD RBX,qword ptr [RSP + 0x10]
MOV RDX,R14
SHR RDX,0x1
LEA RDI,[R13 + RBX*0x1]
MOV RSI,qword ptr [RSP + 0x8]
CALL 0x00163d76
ADD RBX,R14
MOV RDX,qword ptr [RSP + 0x20]
SHR RDX,0x1
LEA RSI,[RSP + 0x4e0]
LEA RDI,[R13 + RBX*0x1]
CALL 0x00163d76
MOV RDX,qword ptr [RSP + 0x20]
ADD RDX,RBX
LEA RSI,[RSP + 0xe0]
MOV R8,qword ptr [RSP + 0x30]
MOV RCX,qword ptr [RSP + 0x28]
MOV RDI,R15
CALL 0x0010fd4c
MOV EBX,EAX
MOV RDI,R12
CALL 0x00163fa8
JMP 0x001641e5
LEA RDX,[RSP + 0xc0]
MOV RSI,qword ptr [RSP + 0x18]
MOV RDI,R15
CALL 0x0014ed03
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x001641e5
LEA RAX,[R12 + 0x8]
LEA RDX,[RSP + 0xa0]
LEA RDI,[RSP + 0xc0]
MOV qword ptr [RSP + 0x38],RAX
MOV RSI,RAX
CALL 0x0014eaf6
LEA RDX,[RSP + 0xe0]
MOV RSI,qword ptr [RSP + 0x18]
MOV RDI,R15
CALL 0x0014eba5
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x001641e5
LEA RDX,[RSP + 0x80]
LEA RDI,[RSP + 0xe0]
MOV RSI,qword ptr [RSP + 0x38]
CALL 0x0014eaf6
LEA RAX,[RSP + 0xa0]
MOV qword ptr [RSP + 0x40],RAX
JMP 0x001643d7
MOVDQA XMM0,xmmword ptr [RSP + 0x80]
MOVUPS xmmword ptr [RSP + RAX*0x1 + 0xe0],XMM0
MOV RDX,qword ptr [RSP + 0x90]
MOV qword ptr [RSP + RAX*0x1 + 0xf0],RDX
ADD RAX,0x18
JMP 0x00164530
LEA RSI,[0x178002]
MOV RDI,R15
MOV EAX,0x0
CALL 0x0011aa69
MOV EBX,0x1b
JMP 0x001641e5
LEA RSI,[0x177fd8]
MOV RDI,R15
MOV EAX,0x0
CALL 0x0011aa69
MOV EBX,0x1b
JMP 0x001641e5
LEA R13,[RSP + 0xe0]
LEA RDI,[R13 + RBX*0x1]
MOV RDX,qword ptr [RSP + 0x10]
MOV RSI,RBP
CALL 0x0010dca0
ADD RBX,qword ptr [RSP + 0x10]
LEA RDI,[R13 + RBX*0x1]
MOV RDX,R14
MOV RSI,qword ptr [RSP + 0x8]
CALL 0x0010dca0
ADD RBX,R14
ADD R13,RBX
LEA RAX,[RSP + 0x4e0]
MOV RDX,qword ptr [RSP + 0x20]
MOV RSI,RAX
CMP EDX,0x8
JNC 0x00164796
MOV RAX,RDX
TEST AL,0x4
JNZ 0x00164780
TEST EDX,EDX
JZ 0x001645e0
MOVZX EAX,byte ptr [RSI]
MOV byte ptr [R13],AL
TEST DL,0x2
JZ 0x001645e0
MOV EAX,EDX
MOVZX EDX,word ptr [RSI + RAX*0x1 + -0x2]
MOV word ptr [R13 + RAX*0x1 + -0x2],DX
JMP 0x001645e0
MOV EAX,dword ptr [RSI]
MOV dword ptr [R13],EAX
MOV EAX,EDX
MOV EDX,dword ptr [RSI + RAX*0x1 + -0x4]
MOV dword ptr [R13 + RAX*0x1 + -0x4],EDX
JMP 0x001645e0
MOV RDX,qword ptr [RSP + 0x4e0]
MOV qword ptr [R13],RDX
MOV R11,qword ptr [RSP + 0x20]
MOV EDX,R11D
MOV RCX,qword ptr [RAX + RDX*0x1 + -0x8]
MOV qword ptr [R13 + RDX*0x1 + -0x8],RCX
LEA RDI,[R13 + 0x8]
AND RDI,-0x8
SUB R13,RDI
SUB RAX,R13
MOV RSI,RAX
LEA ECX,[R11 + R13*0x1]
SHR ECX,0x3
MOV ECX,ECX
MOVSQ.REP RDI,RSI
JMP 0x001645e0
CALL 0x0010e1c0
(translation_unit "int FUN_001640ae(undefined8 param_1,char *param_2,undefined8 param_3,long param_4,undefined8 param_5\n                ,undefined8 param_6)\n\n{\n  uint uVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  long lVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  uint uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  undefined8 *puVar12;\n  char *pcVar13;\n  undefined8 *puVar14;\n  uint uVar15;\n  long lVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  char *local_920;\n  ulong local_918;\n  ulong local_908;\n  undefined1 *local_8e8;\n  uint local_8cc;\n  undefined1 *local_8c8;\n  undefined8 local_8c0;\n  undefined1 local_8b8 [16];\n  undefined8 local_8a8;\n  undefined8 uStack_8a0;\n  undefined8 local_898;\n  undefined1 local_888 [32];\n  undefined1 local_868 [24];\n  undefined8 uStack_850;\n  undefined8 local_848;\n  undefined8 local_840 [126];\n  undefined8 uStack_450;\n  undefined8 local_448 [2];\n  undefined8 local_438 [127];\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_8cc = 0x18;\n  local_8c8 = (undefined1 *)0x0;\n  uVar15 = *(uint *)(param_4 + 4);\n  local_448[0] = 0;\n  local_448[1] = 0;\n  puVar12 = local_438;\n  for (lVar5 = 0x7e; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar12 = 0;\n    puVar12 = puVar12 + 1;\n  }\n  *(undefined1 *)puVar12 = 0;\n  local_920 = strchr(param_2,0x5c);\n  if ((local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)) {\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = param_2;\n  }\n  else {\n    local_918 = (long)local_920 - (long)param_2;\n    local_920 = local_920 + 1;\n    pcVar11 = param_2;\n  }\n  uVar6 = 0xffffffffffffffff;\n  pcVar13 = local_920;\n  do {\n    if (uVar6 == 0) break;\n    uVar6 = uVar6 - 1;\n    cVar2 = *pcVar13;\n    pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n  } while (cVar2 != '\0');\n  uVar6 = ~uVar6 - 1;\n  iVar4 = FUN_0014c0ee(local_448,0x401);\n  if (iVar4 == 0) {\n    uVar7 = 0xffffffffffffffff;\n    pcVar13 = (char *)local_448;\n    do {\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar7 - 1;\n  }\n  else {\n    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }\n  if ((*(uint *)(param_4 + 4) & 0x80000) == 0) {\n    if ((*(uint *)(param_4 + 4) & 0x200) == 0) {\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }\n    else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }\n  }\n  else {\n    iVar4 = FUN_0014ffcf(param_1,local_888,8);\n    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;\n    local_8e8 = local_8c8;\n  }\n  uVar15 = uVar15 & 1;\n  if (uVar15 != 0) {\n    local_918 = local_918 << 1;\n    uVar6 = uVar6 * 2;\n    local_908 = local_908 << 1;\n  }\n  uVar1 = local_8cc + 0x58;\n  uVar7 = local_918 + uVar1;\n  uVar3 = *(uint *)(param_4 + 4);\n  uVar8 = (uVar6 & 0xffffffff) >> 8 & 0xff;\n  uVar9 = local_8cc >> 8 & 0xff;\n  uVar10 = local_918 >> 8 & 0xff;\n  iVar4 = curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18);\n  uVar7 = (ulong)iVar4;\n  if (uVar7 < 1000) {\n    *(undefined8 *)((long)&local_848 + uVar7) = local_8a8;\n    *(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;\n    *(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;\n    uVar7 = uVar7 + 0x18;\n  }\n  uVar8 = local_8cc + uVar7;\n  if (uVar8 < 0x401) {\n    memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);\n    (*(code *)PTR_free_0018c0b8)(local_8c8);\n    if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }\n    else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }\n  }\n  else {\n    FUN_0011aa69(param_1,"incoming NTLM message too big");\n    iVar4 = 0x1b;\n  }\nLAB_001641e5:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar4;\n}\n\n" (function_definition "int FUN_001640ae(undefined8 param_1,char *param_2,undefined8 param_3,long param_4,undefined8 param_5\n                ,undefined8 param_6)\n\n{\n  uint uVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  long lVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  uint uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  undefined8 *puVar12;\n  char *pcVar13;\n  undefined8 *puVar14;\n  uint uVar15;\n  long lVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  char *local_920;\n  ulong local_918;\n  ulong local_908;\n  undefined1 *local_8e8;\n  uint local_8cc;\n  undefined1 *local_8c8;\n  undefined8 local_8c0;\n  undefined1 local_8b8 [16];\n  undefined8 local_8a8;\n  undefined8 uStack_8a0;\n  undefined8 local_898;\n  undefined1 local_888 [32];\n  undefined1 local_868 [24];\n  undefined8 uStack_850;\n  undefined8 local_848;\n  undefined8 local_840 [126];\n  undefined8 uStack_450;\n  undefined8 local_448 [2];\n  undefined8 local_438 [127];\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_8cc = 0x18;\n  local_8c8 = (undefined1 *)0x0;\n  uVar15 = *(uint *)(param_4 + 4);\n  local_448[0] = 0;\n  local_448[1] = 0;\n  puVar12 = local_438;\n  for (lVar5 = 0x7e; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar12 = 0;\n    puVar12 = puVar12 + 1;\n  }\n  *(undefined1 *)puVar12 = 0;\n  local_920 = strchr(param_2,0x5c);\n  if ((local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)) {\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = param_2;\n  }\n  else {\n    local_918 = (long)local_920 - (long)param_2;\n    local_920 = local_920 + 1;\n    pcVar11 = param_2;\n  }\n  uVar6 = 0xffffffffffffffff;\n  pcVar13 = local_920;\n  do {\n    if (uVar6 == 0) break;\n    uVar6 = uVar6 - 1;\n    cVar2 = *pcVar13;\n    pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n  } while (cVar2 != '\0');\n  uVar6 = ~uVar6 - 1;\n  iVar4 = FUN_0014c0ee(local_448,0x401);\n  if (iVar4 == 0) {\n    uVar7 = 0xffffffffffffffff;\n    pcVar13 = (char *)local_448;\n    do {\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar7 - 1;\n  }\n  else {\n    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }\n  if ((*(uint *)(param_4 + 4) & 0x80000) == 0) {\n    if ((*(uint *)(param_4 + 4) & 0x200) == 0) {\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }\n    else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }\n  }\n  else {\n    iVar4 = FUN_0014ffcf(param_1,local_888,8);\n    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;\n    local_8e8 = local_8c8;\n  }\n  uVar15 = uVar15 & 1;\n  if (uVar15 != 0) {\n    local_918 = local_918 << 1;\n    uVar6 = uVar6 * 2;\n    local_908 = local_908 << 1;\n  }\n  uVar1 = local_8cc + 0x58;\n  uVar7 = local_918 + uVar1;\n  uVar3 = *(uint *)(param_4 + 4);\n  uVar8 = (uVar6 & 0xffffffff) >> 8 & 0xff;\n  uVar9 = local_8cc >> 8 & 0xff;\n  uVar10 = local_918 >> 8 & 0xff;\n  iVar4 = curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18);\n  uVar7 = (ulong)iVar4;\n  if (uVar7 < 1000) {\n    *(undefined8 *)((long)&local_848 + uVar7) = local_8a8;\n    *(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;\n    *(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;\n    uVar7 = uVar7 + 0x18;\n  }\n  uVar8 = local_8cc + uVar7;\n  if (uVar8 < 0x401) {\n    memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);\n    (*(code *)PTR_free_0018c0b8)(local_8c8);\n    if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }\n    else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }\n  }\n  else {\n    FUN_0011aa69(param_1,"incoming NTLM message too big");\n    iVar4 = 0x1b;\n  }\nLAB_001641e5:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar4;\n}" primitive_type (function_declarator "FUN_001640ae(undefined8 param_1,char *param_2,undefined8 param_3,long param_4,undefined8 param_5\n                ,undefined8 param_6)" identifier (parameter_list "(undefined8 param_1,char *param_2,undefined8 param_3,long param_4,undefined8 param_5\n                ,undefined8 param_6)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  long lVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  uint uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  undefined8 *puVar12;\n  char *pcVar13;\n  undefined8 *puVar14;\n  uint uVar15;\n  long lVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  char *local_920;\n  ulong local_918;\n  ulong local_908;\n  undefined1 *local_8e8;\n  uint local_8cc;\n  undefined1 *local_8c8;\n  undefined8 local_8c0;\n  undefined1 local_8b8 [16];\n  undefined8 local_8a8;\n  undefined8 uStack_8a0;\n  undefined8 local_898;\n  undefined1 local_888 [32];\n  undefined1 local_868 [24];\n  undefined8 uStack_850;\n  undefined8 local_848;\n  undefined8 local_840 [126];\n  undefined8 uStack_450;\n  undefined8 local_448 [2];\n  undefined8 local_438 [127];\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_8cc = 0x18;\n  local_8c8 = (undefined1 *)0x0;\n  uVar15 = *(uint *)(param_4 + 4);\n  local_448[0] = 0;\n  local_448[1] = 0;\n  puVar12 = local_438;\n  for (lVar5 = 0x7e; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar12 = 0;\n    puVar12 = puVar12 + 1;\n  }\n  *(undefined1 *)puVar12 = 0;\n  local_920 = strchr(param_2,0x5c);\n  if ((local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)) {\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = param_2;\n  }\n  else {\n    local_918 = (long)local_920 - (long)param_2;\n    local_920 = local_920 + 1;\n    pcVar11 = param_2;\n  }\n  uVar6 = 0xffffffffffffffff;\n  pcVar13 = local_920;\n  do {\n    if (uVar6 == 0) break;\n    uVar6 = uVar6 - 1;\n    cVar2 = *pcVar13;\n    pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n  } while (cVar2 != '\0');\n  uVar6 = ~uVar6 - 1;\n  iVar4 = FUN_0014c0ee(local_448,0x401);\n  if (iVar4 == 0) {\n    uVar7 = 0xffffffffffffffff;\n    pcVar13 = (char *)local_448;\n    do {\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar7 - 1;\n  }\n  else {\n    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }\n  if ((*(uint *)(param_4 + 4) & 0x80000) == 0) {\n    if ((*(uint *)(param_4 + 4) & 0x200) == 0) {\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }\n    else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }\n  }\n  else {\n    iVar4 = FUN_0014ffcf(param_1,local_888,8);\n    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;\n    local_8e8 = local_8c8;\n  }\n  uVar15 = uVar15 & 1;\n  if (uVar15 != 0) {\n    local_918 = local_918 << 1;\n    uVar6 = uVar6 * 2;\n    local_908 = local_908 << 1;\n  }\n  uVar1 = local_8cc + 0x58;\n  uVar7 = local_918 + uVar1;\n  uVar3 = *(uint *)(param_4 + 4);\n  uVar8 = (uVar6 & 0xffffffff) >> 8 & 0xff;\n  uVar9 = local_8cc >> 8 & 0xff;\n  uVar10 = local_918 >> 8 & 0xff;\n  iVar4 = curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18);\n  uVar7 = (ulong)iVar4;\n  if (uVar7 < 1000) {\n    *(undefined8 *)((long)&local_848 + uVar7) = local_8a8;\n    *(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;\n    *(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;\n    uVar7 = uVar7 + 0x18;\n  }\n  uVar8 = local_8cc + uVar7;\n  if (uVar8 < 0x401) {\n    memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);\n    (*(code *)PTR_free_0018c0b8)(local_8c8);\n    if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }\n    else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }\n  }\n  else {\n    FUN_0011aa69(param_1,"incoming NTLM message too big");\n    iVar4 = 0x1b;\n  }\nLAB_001641e5:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar4;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined8 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "undefined8 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "char *local_920;" primitive_type (pointer_declarator "*local_920" * identifier) ;) (declaration "ulong local_918;" type_identifier identifier ;) (declaration "ulong local_908;" type_identifier identifier ;) (declaration "undefined1 *local_8e8;" type_identifier (pointer_declarator "*local_8e8" * identifier) ;) (declaration "uint local_8cc;" type_identifier identifier ;) (declaration "undefined1 *local_8c8;" type_identifier (pointer_declarator "*local_8c8" * identifier) ;) (declaration "undefined8 local_8c0;" type_identifier identifier ;) (declaration "undefined1 local_8b8 [16];" type_identifier (array_declarator "local_8b8 [16]" identifier [ number_literal ]) ;) (declaration "undefined8 local_8a8;" type_identifier identifier ;) (declaration "undefined8 uStack_8a0;" type_identifier identifier ;) (declaration "undefined8 local_898;" type_identifier identifier ;) (declaration "undefined1 local_888 [32];" type_identifier (array_declarator "local_888 [32]" identifier [ number_literal ]) ;) (declaration "undefined1 local_868 [24];" type_identifier (array_declarator "local_868 [24]" identifier [ number_literal ]) ;) (declaration "undefined8 uStack_850;" type_identifier identifier ;) (declaration "undefined8 local_848;" type_identifier identifier ;) (declaration "undefined8 local_840 [126];" type_identifier (array_declarator "local_840 [126]" identifier [ number_literal ]) ;) (declaration "undefined8 uStack_450;" type_identifier identifier ;) (declaration "undefined8 local_448 [2];" type_identifier (array_declarator "local_448 [2]" identifier [ number_literal ]) ;) (declaration "undefined8 local_438 [127];" type_identifier (array_declarator "local_438 [127]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_8cc = 0x18;" (assignment_expression "local_8cc = 0x18" identifier = number_literal) ;) (expression_statement "local_8c8 = (undefined1 *)0x0;" (assignment_expression "local_8c8 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar15 = *(uint *)(param_4 + 4);" (assignment_expression "uVar15 = *(uint *)(param_4 + 4)" identifier = (pointer_expression "*(uint *)(param_4 + 4)" * (cast_expression "(uint *)(param_4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_448[0] = 0;" (assignment_expression "local_448[0] = 0" (subscript_expression "local_448[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_448[1] = 0;" (assignment_expression "local_448[1] = 0" (subscript_expression "local_448[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12 = local_438;" (assignment_expression "puVar12 = local_438" identifier = identifier) ;) (for_statement "for (lVar5 = 0x7e; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar12 = 0;\n    puVar12 = puVar12 + 1;\n  }" for ( (assignment_expression "lVar5 = 0x7e" identifier = number_literal) ; (binary_expression "lVar5 != 0" identifier != number_literal) ; (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ) (compound_statement "{\n    *puVar12 = 0;\n    puVar12 = puVar12 + 1;\n  }" { (expression_statement "*puVar12 = 0;" (assignment_expression "*puVar12 = 0" (pointer_expression "*puVar12" * identifier) = number_literal) ;) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)puVar12 = 0;" (assignment_expression "*(undefined1 *)puVar12 = 0" (pointer_expression "*(undefined1 *)puVar12" * (cast_expression "(undefined1 *)puVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "local_920 = strchr(param_2,0x5c);" (assignment_expression "local_920 = strchr(param_2,0x5c)" identifier = (call_expression "strchr(param_2,0x5c)" identifier (argument_list "(param_2,0x5c)" ( identifier , number_literal )))) ;) (if_statement "if ((local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)) {\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = param_2;\n  }\n  else {\n    local_918 = (long)local_920 - (long)param_2;\n    local_920 = local_920 + 1;\n    pcVar11 = param_2;\n  }" if (parenthesized_expression "((local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0))" ( (binary_expression "(local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)" (parenthesized_expression "(local_920 == (char *)0x0)" ( (binary_expression "local_920 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)" ( (comma_expression "local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0" (assignment_expression "local_920 = strchr(param_2,0x2f)" identifier = (call_expression "strchr(param_2,0x2f)" identifier (argument_list "(param_2,0x2f)" ( identifier , number_literal )))) , (binary_expression "local_920 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = param_2;\n  }" { (expression_statement "local_918 = 0;" (assignment_expression "local_918 = 0" identifier = number_literal) ;) (expression_statement "pcVar11 = "";" (assignment_expression "pcVar11 = """ identifier = (string_literal """" " ")) ;) (expression_statement "local_920 = param_2;" (assignment_expression "local_920 = param_2" identifier = identifier) ;) }) (else_clause "else {\n    local_918 = (long)local_920 - (long)param_2;\n    local_920 = local_920 + 1;\n    pcVar11 = param_2;\n  }" else (compound_statement "{\n    local_918 = (long)local_920 - (long)param_2;\n    local_920 = local_920 + 1;\n    pcVar11 = param_2;\n  }" { (expression_statement "local_918 = (long)local_920 - (long)param_2;" (assignment_expression "local_918 = (long)local_920 - (long)param_2" identifier = (binary_expression "(long)local_920 - (long)param_2" (cast_expression "(long)local_920" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "local_920 = local_920 + 1;" (assignment_expression "local_920 = local_920 + 1" identifier = (binary_expression "local_920 + 1" identifier + number_literal)) ;) (expression_statement "pcVar11 = param_2;" (assignment_expression "pcVar11 = param_2" identifier = identifier) ;) }))) (expression_statement "uVar6 = 0xffffffffffffffff;" (assignment_expression "uVar6 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar13 = local_920;" (assignment_expression "pcVar13 = local_920" identifier = identifier) ;) (do_statement "do {\n    if (uVar6 == 0) break;\n    uVar6 = uVar6 - 1;\n    cVar2 = *pcVar13;\n    pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n  } while (cVar2 != '\0');" do (compound_statement "{\n    if (uVar6 == 0) break;\n    uVar6 = uVar6 - 1;\n    cVar2 = *pcVar13;\n    pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n  }" { (if_statement "if (uVar6 == 0) break;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = uVar6 - 1;" (assignment_expression "uVar6 = uVar6 - 1" identifier = (binary_expression "uVar6 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar13;" (assignment_expression "cVar2 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (expression_statement "pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar13 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar13 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar6 = ~uVar6 - 1;" (assignment_expression "uVar6 = ~uVar6 - 1" identifier = (binary_expression "~uVar6 - 1" (unary_expression "~uVar6" ~ identifier) - number_literal)) ;) (expression_statement "iVar4 = FUN_0014c0ee(local_448,0x401);" (assignment_expression "iVar4 = FUN_0014c0ee(local_448,0x401)" identifier = (call_expression "FUN_0014c0ee(local_448,0x401)" identifier (argument_list "(local_448,0x401)" ( identifier , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n    uVar7 = 0xffffffffffffffff;\n    pcVar13 = (char *)local_448;\n    do {\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar7 - 1;\n  }\n  else {\n    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar7 = 0xffffffffffffffff;\n    pcVar13 = (char *)local_448;\n    do {\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar7 - 1;\n  }" { (expression_statement "uVar7 = 0xffffffffffffffff;" (assignment_expression "uVar7 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar13 = (char *)local_448;" (assignment_expression "pcVar13 = (char *)local_448" identifier = (cast_expression "(char *)local_448" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    } while (cVar2 != '\0');" do (compound_statement "{\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (uVar7 == 0) break;" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar7 = uVar7 - 1;" (assignment_expression "uVar7 = uVar7 - 1" identifier = (binary_expression "uVar7 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar13;" (assignment_expression "cVar2 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (expression_statement "pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar13 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar13 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "local_908 = ~uVar7 - 1;" (assignment_expression "local_908 = ~uVar7 - 1" identifier = (binary_expression "~uVar7 - 1" (unary_expression "~uVar7" ~ identifier) - number_literal)) ;) }) (else_clause "else {\n    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }" else (compound_statement "{\n    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }" { (expression_statement "FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");" (call_expression "FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n")" identifier (argument_list "(param_1,"gethostname() failed, continuing without!\n")" ( identifier , (string_literal ""gethostname() failed, continuing without!\n"" " string_content escape_sequence ") ))) ;) (expression_statement "local_908 = 0;" (assignment_expression "local_908 = 0" identifier = number_literal) ;) }))) (if_statement "if ((*(uint *)(param_4 + 4) & 0x80000) == 0) {\n    if ((*(uint *)(param_4 + 4) & 0x200) == 0) {\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }\n    else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }\n  }\n  else {\n    iVar4 = FUN_0014ffcf(param_1,local_888,8);\n    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;\n    local_8e8 = local_8c8;\n  }" if (parenthesized_expression "((*(uint *)(param_4 + 4) & 0x80000) == 0)" ( (binary_expression "(*(uint *)(param_4 + 4) & 0x80000) == 0" (parenthesized_expression "(*(uint *)(param_4 + 4) & 0x80000)" ( (binary_expression "*(uint *)(param_4 + 4) & 0x80000" (pointer_expression "*(uint *)(param_4 + 4)" * (cast_expression "(uint *)(param_4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    if ((*(uint *)(param_4 + 4) & 0x200) == 0) {\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }\n    else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }\n  }" { (if_statement "if ((*(uint *)(param_4 + 4) & 0x200) == 0) {\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }\n    else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }" if (parenthesized_expression "((*(uint *)(param_4 + 4) & 0x200) == 0)" ( (binary_expression "(*(uint *)(param_4 + 4) & 0x200) == 0" (parenthesized_expression "(*(uint *)(param_4 + 4) & 0x200)" ( (binary_expression "*(uint *)(param_4 + 4) & 0x200" (pointer_expression "*(uint *)(param_4 + 4)" * (cast_expression "(uint *)(param_4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }" { (expression_statement "iVar4 = FUN_0014ed03(param_1,param_3,local_868);" (assignment_expression "iVar4 = FUN_0014ed03(param_1,param_3,local_868)" identifier = (call_expression "FUN_0014ed03(param_1,param_3,local_868)" identifier (argument_list "(param_1,param_3,local_868)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) goto LAB_001641e5;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001641e5;" goto statement_identifier ;)) (expression_statement "FUN_0014eaf6(local_868,param_4 + 8,local_888);" (call_expression "FUN_0014eaf6(local_868,param_4 + 8,local_888)" identifier (argument_list "(local_868,param_4 + 8,local_888)" ( identifier , (binary_expression "param_4 + 8" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar4 = FUN_0014eba5(param_1,param_3,&local_848);" (assignment_expression "iVar4 = FUN_0014eba5(param_1,param_3,&local_848)" identifier = (call_expression "FUN_0014eba5(param_1,param_3,&local_848)" identifier (argument_list "(param_1,param_3,&local_848)" ( identifier , identifier , (pointer_expression "&local_848" & identifier) )))) ;) (if_statement "if (iVar4 != 0) goto LAB_001641e5;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001641e5;" goto statement_identifier ;)) (expression_statement "FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);" (call_expression "FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8)" identifier (argument_list "(&local_848,param_4 + 8,&local_8a8)" ( (pointer_expression "&local_848" & identifier) , (binary_expression "param_4 + 8" identifier + number_literal) , (pointer_expression "&local_8a8" & identifier) ))) ;) (expression_statement "local_8e8 = local_888;" (assignment_expression "local_8e8 = local_888" identifier = identifier) ;) }) (else_clause "else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }" else (compound_statement "{\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }" { (expression_statement "iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);" (assignment_expression "iVar4 = FUN_0014ffcf(param_1,&local_8c0,8)" identifier = (call_expression "FUN_0014ffcf(param_1,&local_8c0,8)" identifier (argument_list "(param_1,&local_8c0,8)" ( identifier , (pointer_expression "&local_8c0" & identifier) , number_literal )))) ;) (if_statement "if (iVar4 != 0) goto LAB_001641e5;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001641e5;" goto statement_identifier ;)) (expression_statement "local_8a8 = local_8c0;" (assignment_expression "local_8a8 = local_8c0" identifier = identifier) ;) (expression_statement "uStack_8a0 = 0;" (assignment_expression "uStack_8a0 = 0" identifier = number_literal) ;) (expression_statement "local_898 = 0;" (assignment_expression "local_898 = 0" identifier = number_literal) ;) (expression_statement "local_848 = *(undefined8 *)(param_4 + 8);" (assignment_expression "local_848 = *(undefined8 *)(param_4 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_4 + 8)" * (cast_expression "(undefined8 *)(param_4 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_840[0] = local_8c0;" (assignment_expression "local_840[0] = local_8c0" (subscript_expression "local_840[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);" (assignment_expression "iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10)" identifier = (call_expression "FUN_0016c0f0(&local_848,0x10,local_8b8,0x10)" identifier (argument_list "(&local_848,0x10,local_8b8,0x10)" ( (pointer_expression "&local_848" & identifier) , number_literal , identifier , number_literal )))) ;) (if_statement "if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;" if (parenthesized_expression "((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))" ( (binary_expression "(iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)" (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)" ( (comma_expression "iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0" (assignment_expression "iVar4 = FUN_0014ed03(param_1,param_3,local_868)" identifier = (call_expression "FUN_0014ed03(param_1,param_3,local_868)" identifier (argument_list "(param_1,param_3,local_868)" ( identifier , identifier , identifier )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_001641e5;" goto statement_identifier ;)) (expression_statement "local_8e8 = local_888;" (assignment_expression "local_8e8 = local_888" identifier = identifier) ;) (expression_statement "FUN_0014eaf6(local_868,local_8b8,local_8e8);" (call_expression "FUN_0014eaf6(local_868,local_8b8,local_8e8)" identifier (argument_list "(local_868,local_8b8,local_8e8)" ( identifier , identifier , identifier ))) ;) }))) }) (else_clause "else {\n    iVar4 = FUN_0014ffcf(param_1,local_888,8);\n    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;\n    local_8e8 = local_8c8;\n  }" else (compound_statement "{\n    iVar4 = FUN_0014ffcf(param_1,local_888,8);\n    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;\n    local_8e8 = local_8c8;\n  }" { (expression_statement "iVar4 = FUN_0014ffcf(param_1,local_888,8);" (assignment_expression "iVar4 = FUN_0014ffcf(param_1,local_888,8)" identifier = (call_expression "FUN_0014ffcf(param_1,local_888,8)" identifier (argument_list "(param_1,local_888,8)" ( identifier , identifier , number_literal )))) ;) (if_statement "if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;" if (parenthesized_expression "((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))" ( (binary_expression "(((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0)))" (parenthesized_expression "(((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))" ( (binary_expression "((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0)" (parenthesized_expression "((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))" ( (binary_expression "(iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)" (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)" ( (comma_expression "iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0" (assignment_expression "iVar4 = FUN_0014ed03(param_1,param_3,local_868)" identifier = (call_expression "FUN_0014ed03(param_1,param_3,local_868)" identifier (argument_list "(param_1,param_3,local_868)" ( identifier , identifier , identifier )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0)" ( (comma_expression "iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0" (assignment_expression "iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848)" identifier = (call_expression "FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848)" identifier (argument_list "(local_920,uVar6,pcVar11,local_918,local_868,&local_848)" ( identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_848" & identifier) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0)))" ( (parenthesized_expression "(iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))" ( (comma_expression "iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0)" (assignment_expression "iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8)" identifier = (call_expression "FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8)" identifier (argument_list "(&local_848,local_888,param_4 + 8,&local_8a8)" ( (pointer_expression "&local_848" & identifier) , identifier , (binary_expression "param_4 + 8" identifier + number_literal) , (pointer_expression "&local_8a8" & identifier) )))) , (binary_expression "iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0)" (binary_expression "iVar4 != 0" identifier != number_literal) || (parenthesized_expression "(iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0)" ( (comma_expression "iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0" (assignment_expression "iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc)" identifier = (call_expression "FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc)" identifier (argument_list "(&local_848,local_888,param_4,&local_8c8,&local_8cc)" ( (pointer_expression "&local_848" & identifier) , identifier , identifier , (pointer_expression "&local_8c8" & identifier) , (pointer_expression "&local_8cc" & identifier) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) )))) )) ))) )) (goto_statement "goto LAB_001641e5;" goto statement_identifier ;)) (expression_statement "local_8e8 = local_8c8;" (assignment_expression "local_8e8 = local_8c8" identifier = identifier) ;) }))) (expression_statement "uVar15 = uVar15 & 1;" (assignment_expression "uVar15 = uVar15 & 1" identifier = (binary_expression "uVar15 & 1" identifier & number_literal)) ;) (if_statement "if (uVar15 != 0) {\n    local_918 = local_918 << 1;\n    uVar6 = uVar6 * 2;\n    local_908 = local_908 << 1;\n  }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n    local_918 = local_918 << 1;\n    uVar6 = uVar6 * 2;\n    local_908 = local_908 << 1;\n  }" { (expression_statement "local_918 = local_918 << 1;" (assignment_expression "local_918 = local_918 << 1" identifier = (binary_expression "local_918 << 1" identifier << number_literal)) ;) (expression_statement "uVar6 = uVar6 * 2;" (assignment_expression "uVar6 = uVar6 * 2" identifier = (binary_expression "uVar6 * 2" identifier * number_literal)) ;) (expression_statement "local_908 = local_908 << 1;" (assignment_expression "local_908 = local_908 << 1" identifier = (binary_expression "local_908 << 1" identifier << number_literal)) ;) })) (expression_statement "uVar1 = local_8cc + 0x58;" (assignment_expression "uVar1 = local_8cc + 0x58" identifier = (binary_expression "local_8cc + 0x58" identifier + number_literal)) ;) (expression_statement "uVar7 = local_918 + uVar1;" (assignment_expression "uVar7 = local_918 + uVar1" identifier = (binary_expression "local_918 + uVar1" identifier + identifier)) ;) (expression_statement "uVar3 = *(uint *)(param_4 + 4);" (assignment_expression "uVar3 = *(uint *)(param_4 + 4)" identifier = (pointer_expression "*(uint *)(param_4 + 4)" * (cast_expression "(uint *)(param_4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = (uVar6 & 0xffffffff) >> 8 & 0xff;" (assignment_expression "uVar8 = (uVar6 & 0xffffffff) >> 8 & 0xff" identifier = (binary_expression "(uVar6 & 0xffffffff) >> 8 & 0xff" (binary_expression "(uVar6 & 0xffffffff) >> 8" (parenthesized_expression "(uVar6 & 0xffffffff)" ( (binary_expression "uVar6 & 0xffffffff" identifier & number_literal) )) >> number_literal) & number_literal)) ;) (expression_statement "uVar9 = local_8cc >> 8 & 0xff;" (assignment_expression "uVar9 = local_8cc >> 8 & 0xff" identifier = (binary_expression "local_8cc >> 8 & 0xff" (binary_expression "local_8cc >> 8" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar10 = local_918 >> 8 & 0xff;" (assignment_expression "uVar10 = local_918 >> 8 & 0xff" identifier = (binary_expression "local_918 >> 8 & 0xff" (binary_expression "local_918 >> 8" identifier >> number_literal) & number_literal)) ;) (expression_statement "iVar4 = curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18);" (assignment_expression "iVar4 = curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18)" identifier = (call_expression "curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18)" identifier (argument_list "(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18)" ( (pointer_expression "&local_848" & identifier) , number_literal , (pointer_expression "&DAT_00177f58" & identifier) , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , (binary_expression "local_8cc & 0xff" identifier & number_literal) , identifier , (binary_expression "local_8cc & 0xff" identifier & number_literal) , identifier , number_literal , number_literal , number_literal , number_literal , (binary_expression "local_918 & 0xff" identifier & number_literal) , identifier , (binary_expression "local_918 & 0xff" identifier & number_literal) , identifier , (binary_expression "uVar1 & 0xff" identifier & number_literal) , (binary_expression "uVar1 >> 8 & 0xff" (binary_expression "uVar1 >> 8" identifier >> number_literal) & number_literal) , number_literal , number_literal , (binary_expression "uVar6 & 0xff" identifier & number_literal) , identifier , (binary_expression "uVar6 & 0xff" identifier & number_literal) , identifier , (binary_expression "uVar7 & 0xff" identifier & number_literal) , (binary_expression "uVar7 >> 8 & 0xff" (binary_expression "uVar7 >> 8" identifier >> number_literal) & number_literal) , number_literal , number_literal , (binary_expression "local_908 & 0xff" identifier & number_literal) , (binary_expression "local_908 >> 8" identifier >> number_literal) , (binary_expression "local_908 & 0xff" identifier & number_literal) , (binary_expression "local_908 >> 8" identifier >> number_literal) , (binary_expression "uVar6 + uVar7 & 0xff" (binary_expression "uVar6 + uVar7" identifier + identifier) & number_literal) , (binary_expression "uVar6 + uVar7 >> 8 & 0xff" (binary_expression "uVar6 + uVar7 >> 8" (binary_expression "uVar6 + uVar7" identifier + identifier) >> number_literal) & number_literal) , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , (binary_expression "uVar3 & 0xff" identifier & number_literal) , (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) , (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) , (binary_expression "uVar3 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uVar7 = (ulong)iVar4;" (assignment_expression "uVar7 = (ulong)iVar4" identifier = (cast_expression "(ulong)iVar4" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar7 < 1000) {\n    *(undefined8 *)((long)&local_848 + uVar7) = local_8a8;\n    *(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;\n    *(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;\n    uVar7 = uVar7 + 0x18;\n  }" if (parenthesized_expression "(uVar7 < 1000)" ( (binary_expression "uVar7 < 1000" identifier < number_literal) )) (compound_statement "{\n    *(undefined8 *)((long)&local_848 + uVar7) = local_8a8;\n    *(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;\n    *(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;\n    uVar7 = uVar7 + 0x18;\n  }" { (expression_statement "*(undefined8 *)((long)&local_848 + uVar7) = local_8a8;" (assignment_expression "*(undefined8 *)((long)&local_848 + uVar7) = local_8a8" (pointer_expression "*(undefined8 *)((long)&local_848 + uVar7)" * (cast_expression "(undefined8 *)((long)&local_848 + uVar7)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_848 + uVar7)" ( (binary_expression "(long)&local_848 + uVar7" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + identifier) )))) = identifier) ;) (expression_statement "*(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;" (assignment_expression "*(undefined8 *)((long)local_840 + uVar7) = uStack_8a0" (pointer_expression "*(undefined8 *)((long)local_840 + uVar7)" * (cast_expression "(undefined8 *)((long)local_840 + uVar7)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_840 + uVar7)" ( (binary_expression "(long)local_840 + uVar7" (cast_expression "(long)local_840" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;" (assignment_expression "*(undefined8 *)((long)local_840 + uVar7 + 8) = local_898" (pointer_expression "*(undefined8 *)((long)local_840 + uVar7 + 8)" * (cast_expression "(undefined8 *)((long)local_840 + uVar7 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_840 + uVar7 + 8)" ( (binary_expression "(long)local_840 + uVar7 + 8" (binary_expression "(long)local_840 + uVar7" (cast_expression "(long)local_840" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = uVar7 + 0x18;" (assignment_expression "uVar7 = uVar7 + 0x18" identifier = (binary_expression "uVar7 + 0x18" identifier + number_literal)) ;) })) (expression_statement "uVar8 = local_8cc + uVar7;" (assignment_expression "uVar8 = local_8cc + uVar7" identifier = (binary_expression "local_8cc + uVar7" identifier + identifier)) ;) (if_statement "if (uVar8 < 0x401) {\n    memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);\n    (*(code *)PTR_free_0018c0b8)(local_8c8);\n    if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }\n    else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }\n  }\n  else {\n    FUN_0011aa69(param_1,"incoming NTLM message too big");\n    iVar4 = 0x1b;\n  }" if (parenthesized_expression "(uVar8 < 0x401)" ( (binary_expression "uVar8 < 0x401" identifier < number_literal) )) (compound_statement "{\n    memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);\n    (*(code *)PTR_free_0018c0b8)(local_8c8);\n    if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }\n    else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }\n  }" { (expression_statement "memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);" (call_expression "memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc)" identifier (argument_list "((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc)" ( (cast_expression "(void *)((long)&local_848 + uVar7)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_848 + uVar7)" ( (binary_expression "(long)&local_848 + uVar7" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + identifier) ))) , identifier , (cast_expression "(ulong)local_8cc" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (expression_statement "(*(code *)PTR_free_0018c0b8)(local_8c8);" (call_expression "(*(code *)PTR_free_0018c0b8)(local_8c8)" (parenthesized_expression "(*(code *)PTR_free_0018c0b8)" ( (pointer_expression "*(code *)PTR_free_0018c0b8" * (cast_expression "(code *)PTR_free_0018c0b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_8c8)" ( identifier ))) ;) (if_statement "if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }\n    else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }" if (parenthesized_expression "(local_908 + uVar6 + local_918 + uVar8 < 0x400)" ( (binary_expression "local_908 + uVar6 + local_918 + uVar8 < 0x400" (binary_expression "local_908 + uVar6 + local_918 + uVar8" (binary_expression "local_908 + uVar6 + local_918" (binary_expression "local_908 + uVar6" identifier + identifier) + identifier) + identifier) < number_literal) )) (compound_statement "{\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }" { (if_statement "if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (compound_statement "{\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }" { (expression_statement "memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);" (call_expression "memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918)" identifier (argument_list "((void *)((long)&local_848 + uVar8),pcVar11,local_918)" ( (cast_expression "(void *)((long)&local_848 + uVar8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_848 + uVar8)" ( (binary_expression "(long)&local_848 + uVar8" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + identifier) ))) , identifier , identifier ))) ;) (expression_statement "memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);" (call_expression "memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6)" identifier (argument_list "((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6)" ( (cast_expression "(void *)((long)&local_848 + uVar8 + local_918)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_848 + uVar8 + local_918)" ( (binary_expression "(long)&local_848 + uVar8 + local_918" (binary_expression "(long)&local_848 + uVar8" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + identifier) + identifier) ))) , identifier , identifier ))) ;) (expression_statement "lVar5 = uVar8 + local_918 + uVar6;" (assignment_expression "lVar5 = uVar8 + local_918 + uVar6" identifier = (binary_expression "uVar8 + local_918 + uVar6" (binary_expression "uVar8 + local_918" identifier + identifier) + identifier)) ;) (expression_statement "pcVar11 = (char *)((long)&local_848 + lVar5);" (assignment_expression "pcVar11 = (char *)((long)&local_848 + lVar5)" identifier = (cast_expression "(char *)((long)&local_848 + lVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_848 + lVar5)" ( (binary_expression "(long)&local_848 + lVar5" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + identifier) )))) ;) (expression_statement "uVar15 = (uint)local_908;" (assignment_expression "uVar15 = (uint)local_908" identifier = (cast_expression "(uint)local_908" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }" if (parenthesized_expression "(uVar15 < 8)" ( (binary_expression "uVar15 < 8" identifier < number_literal) )) (compound_statement "{\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }" { (if_statement "if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }" if (parenthesized_expression "((local_908 & 4) == 0)" ( (binary_expression "(local_908 & 4) == 0" (parenthesized_expression "(local_908 & 4)" ( (binary_expression "local_908 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }" { (if_statement "if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }" { (expression_statement "*pcVar11 = (char)local_448[0];" (assignment_expression "*pcVar11 = (char)local_448[0]" (pointer_expression "*pcVar11" * identifier) = (cast_expression "(char)local_448[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_448[0]" identifier [ number_literal ]))) ;) (if_statement "if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }" if (parenthesized_expression "((local_908 & 2) != 0)" ( (binary_expression "(local_908 & 2) != 0" (parenthesized_expression "(local_908 & 2)" ( (binary_expression "local_908 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }" { (expression_statement "*(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));" (assignment_expression "*(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2))" (pointer_expression "*(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6)" * (cast_expression "(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6)" ( (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6" (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff) + lVar5" (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff)" (cast_expression "(long)&uStack_850" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&uStack_850" & identifier)) + (parenthesized_expression "(local_908 & 0xffffffff)" ( (binary_expression "local_908 & 0xffffffff" identifier & number_literal) ))) + identifier) + number_literal) )))) = (pointer_expression "*(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2))" * (cast_expression "(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_448 + ((local_908 & 0xffffffff) - 2))" ( (binary_expression "(long)local_448 + ((local_908 & 0xffffffff) - 2)" (cast_expression "(long)local_448" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((local_908 & 0xffffffff) - 2)" ( (binary_expression "(local_908 & 0xffffffff) - 2" (parenthesized_expression "(local_908 & 0xffffffff)" ( (binary_expression "local_908 & 0xffffffff" identifier & number_literal) )) - number_literal) ))) ))))) ;) })) })) }) (else_clause "else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }" else (compound_statement "{\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }" { (expression_statement "*(undefined4 *)pcVar11 = (undefined4)local_448[0];" (assignment_expression "*(undefined4 *)pcVar11 = (undefined4)local_448[0]" (pointer_expression "*(undefined4 *)pcVar11" * (cast_expression "(undefined4 *)pcVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined4)local_448[0]" ( (type_descriptor "undefined4" type_identifier) ) (subscript_expression "local_448[0]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));" (assignment_expression "*(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4))" (pointer_expression "*(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4)" * (cast_expression "(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4)" ( (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4" (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff) + lVar5" (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff)" (cast_expression "(long)&uStack_850" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&uStack_850" & identifier)) + (parenthesized_expression "(local_908 & 0xffffffff)" ( (binary_expression "local_908 & 0xffffffff" identifier & number_literal) ))) + identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4))" * (cast_expression "(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_448 + ((local_908 & 0xffffffff) - 4))" ( (binary_expression "(long)local_448 + ((local_908 & 0xffffffff) - 4)" (cast_expression "(long)local_448" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((local_908 & 0xffffffff) - 4)" ( (binary_expression "(local_908 & 0xffffffff) - 4" (parenthesized_expression "(local_908 & 0xffffffff)" ( (binary_expression "local_908 & 0xffffffff" identifier & number_literal) )) - number_literal) ))) ))))) ;) }))) }) (else_clause "else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }" else (compound_statement "{\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }" { (expression_statement "*(undefined8 *)pcVar11 = local_448[0];" (assignment_expression "*(undefined8 *)pcVar11 = local_448[0]" (pointer_expression "*(undefined8 *)pcVar11" * (cast_expression "(undefined8 *)pcVar11" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (subscript_expression "local_448[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));" (assignment_expression "*(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff))" (pointer_expression "*(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5)" * (cast_expression "(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5)" ( (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff) + lVar5" (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff)" (cast_expression "(long)&uStack_850" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&uStack_850" & identifier)) + (parenthesized_expression "(local_908 & 0xffffffff)" ( (binary_expression "local_908 & 0xffffffff" identifier & number_literal) ))) + identifier) )))) = (pointer_expression "*(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff))" * (cast_expression "(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&uStack_450 + (local_908 & 0xffffffff))" ( (binary_expression "(long)&uStack_450 + (local_908 & 0xffffffff)" (cast_expression "(long)&uStack_450" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&uStack_450" & identifier)) + (parenthesized_expression "(local_908 & 0xffffffff)" ( (binary_expression "local_908 & 0xffffffff" identifier & number_literal) ))) ))))) ;) (expression_statement "puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);" (assignment_expression "puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8)" identifier = (cast_expression "(undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_840 + lVar5 & 0xfffffffffffffff8)" ( (binary_expression "(long)local_840 + lVar5 & 0xfffffffffffffff8" (binary_expression "(long)local_840 + lVar5" (cast_expression "(long)local_840" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) & number_literal) )))) ;) (expression_statement "lVar16 = (long)pcVar11 - (long)puVar14;" (assignment_expression "lVar16 = (long)pcVar11 - (long)puVar14" identifier = (binary_expression "(long)pcVar11 - (long)puVar14" (cast_expression "(long)pcVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "puVar12 = (undefined8 *)((long)local_448 - lVar16);" (assignment_expression "puVar12 = (undefined8 *)((long)local_448 - lVar16)" identifier = (cast_expression "(undefined8 *)((long)local_448 - lVar16)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_448 - lVar16)" ( (binary_expression "(long)local_448 - lVar16" (cast_expression "(long)local_448" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - identifier) )))) ;) (for_statement "for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }" for ( (assignment_expression "uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3)" identifier = (call_expression "(ulong)(uVar15 + (int)lVar16 >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar15 + (int)lVar16 >> 3)" ( (binary_expression "uVar15 + (int)lVar16 >> 3" (binary_expression "uVar15 + (int)lVar16" identifier + (cast_expression "(int)lVar16" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) ; (binary_expression "uVar6 != 0" identifier != number_literal) ; (assignment_expression "uVar6 = uVar6 - 1" identifier = (binary_expression "uVar6 - 1" identifier - number_literal)) ) (compound_statement "{\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }" { (expression_statement "*puVar14 = *puVar12;" (assignment_expression "*puVar14 = *puVar12" (pointer_expression "*puVar14" * identifier) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;" (assignment_expression "puVar12 = puVar12 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "puVar12 + (ulong)bVar17 * -2 + 1" (binary_expression "puVar12 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "puVar14 + (ulong)bVar17 * -2 + 1" (binary_expression "puVar14 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) }))) }) (else_clause "else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }" else (compound_statement "{\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }" { (expression_statement "FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);" (call_expression "FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1)" identifier (argument_list "((long)&local_848 + uVar8,pcVar11,local_918 >> 1)" ( (binary_expression "(long)&local_848 + uVar8" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + identifier) , identifier , (binary_expression "local_918 >> 1" identifier >> number_literal) ))) ;) (expression_statement "FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);" (call_expression "FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1)" identifier (argument_list "((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1)" ( (binary_expression "(long)&local_848 + uVar8 + local_918" (binary_expression "(long)&local_848 + uVar8" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + identifier) + identifier) , identifier , (binary_expression "uVar6 >> 1" identifier >> number_literal) ))) ;) (expression_statement "lVar5 = uVar8 + local_918 + uVar6;" (assignment_expression "lVar5 = uVar8 + local_918 + uVar6" identifier = (binary_expression "uVar8 + local_918 + uVar6" (binary_expression "uVar8 + local_918" identifier + identifier) + identifier)) ;) (expression_statement "FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);" (call_expression "FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1)" identifier (argument_list "((long)&local_848 + lVar5,local_448,local_908 >> 1)" ( (binary_expression "(long)&local_848 + lVar5" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + identifier) , identifier , (binary_expression "local_908 >> 1" identifier >> number_literal) ))) ;) }))) (expression_statement "iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);" (assignment_expression "iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6)" identifier = (call_expression "FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6)" identifier (argument_list "(param_1,&local_848,local_908 + lVar5,param_5,param_6)" ( identifier , (pointer_expression "&local_848" & identifier) , (binary_expression "local_908 + lVar5" identifier + identifier) , identifier , identifier )))) ;) (expression_statement "FUN_00163fa8(param_4);" (call_expression "FUN_00163fa8(param_4)" identifier (argument_list "(param_4)" ( identifier ))) ;) }) (else_clause "else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }" else (compound_statement "{\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }" { (expression_statement "FUN_0011aa69(param_1,"user + domain + host name too big");" (call_expression "FUN_0011aa69(param_1,"user + domain + host name too big")" identifier (argument_list "(param_1,"user + domain + host name too big")" ( identifier , (string_literal ""user + domain + host name too big"" " string_content ") ))) ;) (expression_statement "iVar4 = 0x1b;" (assignment_expression "iVar4 = 0x1b" identifier = number_literal) ;) }))) }) (else_clause "else {\n    FUN_0011aa69(param_1,"incoming NTLM message too big");\n    iVar4 = 0x1b;\n  }" else (compound_statement "{\n    FUN_0011aa69(param_1,"incoming NTLM message too big");\n    iVar4 = 0x1b;\n  }" { (expression_statement "FUN_0011aa69(param_1,"incoming NTLM message too big");" (call_expression "FUN_0011aa69(param_1,"incoming NTLM message too big")" identifier (argument_list "(param_1,"incoming NTLM message too big")" ( identifier , (string_literal ""incoming NTLM message too big"" " string_content ") ))) ;) (expression_statement "iVar4 = 0x1b;" (assignment_expression "iVar4 = 0x1b" identifier = number_literal) ;) }))) (labeled_statement "LAB_001641e5:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar4;" return identifier ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nCURLcode Curl_auth_create_ntlm_type3_message\n                   (Curl_easy *data,char *userp,char *passwdp,ntlmdata *ntlm,char **outptr,\n                   size_t *outlen)\n\n{\n  uint uVar1;\n  char cVar2;\n  uint uVar3;\n  long lVar4;\n  int iVar5;\n  CURLcode CVar6;\n  long lVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  char *pcVar12;\n  undefined8 *puVar13;\n  ulong uVar14;\n  uint uVar15;\n  uchar *puVar16;\n  long lVar17;\n  size_t userlen;\n  long in_FS_OFFSET;\n  byte bVar18;\n  char *local_920;\n  size_t local_918;\n  ulong local_908;\n  uchar *local_8e8;\n  uint ntresplen;\n  uchar *ntlmv2resp;\n  uchar entropy_1 [8];\n  uchar md5sum [16];\n  uchar lmresp [24];\n  uchar ntresp [24];\n  uchar ntbuffer [24];\n  undefined8 uStack_850;\n  uchar ntlmbuf [1024];\n  char host [1025];\n  \n  bVar18 = 0;\n  lVar4 = *(long *)(in_FS_OFFSET + 0x28);\n  ntresplen = 0x18;\n  ntlmv2resp = (uchar *)0x0;\n  uVar15 = ntlm->flags;\n  host[0] = '\0';\n  host[1] = '\0';\n  host[2] = '\0';\n  host[3] = '\0';\n  host[4] = '\0';\n  host[5] = '\0';\n  host[6] = '\0';\n  host[7] = '\0';\n  host[8] = '\0';\n  host[9] = '\0';\n  host[10] = '\0';\n  host[0xb] = '\0';\n  host[0xc] = '\0';\n  host[0xd] = '\0';\n  host[0xe] = '\0';\n  host[0xf] = '\0';\n  pcVar11 = host + 0x10;\n  for (lVar7 = 0x7e; lVar7 != 0; lVar7 = lVar7 + -1) {\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\n    pcVar11 = pcVar11 + 8;\n  }\n  *pcVar11 = '\0';\n  local_920 = strchr(userp,0x5c);\n  if ((local_920 == (char *)0x0) && (local_920 = strchr(userp,0x2f), local_920 == (char *)0x0)) {\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = userp;\n  }\n  else {\n    local_918 = (long)local_920 - (long)userp;\n    local_920 = local_920 + 1;\n    pcVar11 = userp;\n  }\n  uVar8 = 0xffffffffffffffff;\n  pcVar12 = local_920;\n  do {\n    if (uVar8 == 0) break;\n    uVar8 = uVar8 - 1;\n    cVar2 = *pcVar12;\n    pcVar12 = pcVar12 + (ulong)bVar18 * -2 + 1;\n  } while (cVar2 != '\0');\n  userlen = ~uVar8 - 1;\n  iVar5 = Curl_gethostname(host,0x401);\n  if (iVar5 == 0) {\n    uVar8 = 0xffffffffffffffff;\n    pcVar12 = host;\n    do {\n      if (uVar8 == 0) break;\n      uVar8 = uVar8 - 1;\n      cVar2 = *pcVar12;\n      pcVar12 = pcVar12 + (ulong)bVar18 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar8 - 1;\n  }\n  else {\n    Curl_infof(data,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }\n  if ((ntlm->flags & 0x80000) == 0) {\n    if ((ntlm->flags & 0x200) == 0) {\n      CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      Curl_ntlm_core_lm_resp(ntbuffer,ntlm->nonce,ntresp);\n      CVar6 = Curl_ntlm_core_mk_lm_hash(data,passwdp,ntlmbuf);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      Curl_ntlm_core_lm_resp(ntlmbuf,ntlm->nonce,lmresp);\n      local_8e8 = ntresp;\n    }\n    else {\n      CVar6 = Curl_rand(data,entropy_1,8);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      lmresp[0] = entropy_1[0];\n      lmresp[1] = entropy_1[1];\n      lmresp[2] = entropy_1[2];\n      lmresp[3] = entropy_1[3];\n      lmresp[4] = entropy_1[4];\n      lmresp[5] = entropy_1[5];\n      lmresp[6] = entropy_1[6];\n      lmresp[7] = entropy_1[7];\n      lmresp[8] = '\0';\n      lmresp[9] = '\0';\n      lmresp[10] = '\0';\n      lmresp[0xb] = '\0';\n      lmresp[0xc] = '\0';\n      lmresp[0xd] = '\0';\n      lmresp[0xe] = '\0';\n      lmresp[0xf] = '\0';\n      lmresp[0x10] = '\0';\n      lmresp[0x11] = '\0';\n      lmresp[0x12] = '\0';\n      lmresp[0x13] = '\0';\n      lmresp[0x14] = '\0';\n      lmresp[0x15] = '\0';\n      lmresp[0x16] = '\0';\n      lmresp[0x17] = '\0';\n      ntlmbuf._0_8_ = *(undefined8 *)ntlm->nonce;\n      ntlmbuf[8] = entropy_1[0];\n      ntlmbuf[9] = entropy_1[1];\n      ntlmbuf[10] = entropy_1[2];\n      ntlmbuf[0xb] = entropy_1[3];\n      ntlmbuf[0xc] = entropy_1[4];\n      ntlmbuf[0xd] = entropy_1[5];\n      ntlmbuf[0xe] = entropy_1[6];\n      ntlmbuf[0xf] = entropy_1[7];\n      CVar6 = Curl_ssl_md5sum(ntlmbuf,0x10,md5sum,0x10);\n      if ((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK))\n      goto LAB_001641e5;\n      local_8e8 = ntresp;\n      Curl_ntlm_core_lm_resp(ntbuffer,md5sum,local_8e8);\n    }\n  }\n  else {\n    CVar6 = Curl_rand(data,ntresp,8);\n    if ((((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK)) ||\n        (CVar6 = Curl_ntlm_core_mk_ntlmv2_hash(local_920,userlen,pcVar11,local_918,ntbuffer,ntlmbuf)\n        , CVar6 != CURLE_OK)) ||\n       ((CVar6 = Curl_ntlm_core_mk_lmv2_resp(ntlmbuf,ntresp,ntlm->nonce,lmresp), CVar6 != CURLE_OK\n        || (CVar6 = Curl_ntlm_core_mk_ntlmv2_resp(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen),\n           CVar6 != CURLE_OK)))) goto LAB_001641e5;\n    local_8e8 = ntlmv2resp;\n  }\n  uVar15 = uVar15 & 1;\n  if (uVar15 != 0) {\n    local_918 = local_918 << 1;\n    userlen = userlen * 2;\n    local_908 = local_908 << 1;\n  }\n  uVar1 = ntresplen + 0x58;\n  uVar8 = local_918 + uVar1;\n  uVar3 = ntlm->flags;\n  uVar9 = (userlen & 0xffffffff) >> 8 & 0xff;\n  uVar14 = (ulong)(ntresplen >> 8 & 0xff);\n  uVar10 = local_918 >> 8 & 0xff;\n  iVar5 = curl_msnprintf((char *)ntlmbuf,0x400,\n                         "NTLMSSP%c\x03%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"\n                         ,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,(ulong)(ntresplen & 0xff),uVar14,\n                         (ulong)(ntresplen & 0xff),uVar14,0x58,0,0,0,local_918 & 0xff,uVar10,\n                         local_918 & 0xff,uVar10,(ulong)uVar1 & 0xff,(ulong)(uVar1 >> 8) & 0xff,0,0,\n                         userlen & 0xff,uVar9,userlen & 0xff,uVar9,uVar8 & 0xff,uVar8 >> 8 & 0xff,0,\n                         0,local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         userlen + uVar8 & 0xff,userlen + uVar8 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         (ulong)(uVar3 & 0xff),(ulong)(uVar3 >> 8 & 0xff),\n                         (ulong)(uVar3 >> 0x10 & 0xff),(ulong)(uVar3 >> 0x18));\n  uVar8 = (ulong)iVar5;\n  if (uVar8 < 1000) {\n    *(undefined8 *)(ntlmbuf + uVar8) = lmresp._0_8_;\n    *(undefined8 *)(ntlmbuf + uVar8 + 8) = lmresp._8_8_;\n    *(undefined8 *)(ntlmbuf + uVar8 + 0x10) = lmresp._16_8_;\n    uVar8 = uVar8 + 0x18;\n  }\n  uVar9 = ntresplen + uVar8;\n  if (uVar9 < 0x401) {\n    memcpy(ntlmbuf + uVar8,local_8e8,(ulong)ntresplen);\n    (*Curl_cfree)(ntlmv2resp);\n    if (local_908 + userlen + local_918 + uVar9 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy(ntlmbuf + uVar9,pcVar11,local_918);\n        memcpy(ntlmbuf + uVar9 + local_918,local_920,userlen);\n        lVar7 = uVar9 + local_918 + userlen;\n        puVar16 = ntlmbuf + lVar7;\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *puVar16 = host[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);\n              }\n            }\n          }\n          else {\n            *(undefined4 *)puVar16 = host._0_4_;\n            *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4) =\n                 *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc);\n          }\n        }\n        else {\n          *(undefined8 *)puVar16 = host._0_8_;\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar7) =\n               *(undefined8 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3f8);\n          lVar17 = (long)puVar16 - (long)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          pcVar11 = host + -lVar17;\n          puVar13 = (undefined8 *)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          for (uVar8 = (ulong)(uVar15 + (int)lVar17 >> 3); uVar8 != 0; uVar8 = uVar8 - 1) {\n            *puVar13 = *(undefined8 *)pcVar11;\n            pcVar11 = pcVar11 + ((ulong)bVar18 * -2 + 1) * 8;\n            puVar13 = puVar13 + (ulong)bVar18 * -2 + 1;\n          }\n        }\n      }\n      else {\n        unicodecpy(ntlmbuf + uVar9,pcVar11,local_918 >> 1);\n        unicodecpy(ntlmbuf + uVar9 + local_918,local_920,userlen >> 1);\n        lVar7 = uVar9 + local_918 + userlen;\n        unicodecpy(ntlmbuf + lVar7,host,local_908 >> 1);\n      }\n      CVar6 = Curl_base64_encode(data,(char *)ntlmbuf,local_908 + lVar7,outptr,outlen);\n      Curl_auth_ntlm_cleanup(ntlm);\n    }\n    else {\n      Curl_failf(data,"user + domain + host name too big");\n      CVar6 = CURLE_OUT_OF_MEMORY;\n    }\n  }\n  else {\n    Curl_failf(data,"incoming NTLM message too big");\n    CVar6 = CURLE_OUT_OF_MEMORY;\n  }\nLAB_001641e5:\n  if (lVar4 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return CVar6;\n}\n\n" comment (function_definition "CURLcode Curl_auth_create_ntlm_type3_message\n                   (Curl_easy *data,char *userp,char *passwdp,ntlmdata *ntlm,char **outptr,\n                   size_t *outlen)\n\n{\n  uint uVar1;\n  char cVar2;\n  uint uVar3;\n  long lVar4;\n  int iVar5;\n  CURLcode CVar6;\n  long lVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  char *pcVar12;\n  undefined8 *puVar13;\n  ulong uVar14;\n  uint uVar15;\n  uchar *puVar16;\n  long lVar17;\n  size_t userlen;\n  long in_FS_OFFSET;\n  byte bVar18;\n  char *local_920;\n  size_t local_918;\n  ulong local_908;\n  uchar *local_8e8;\n  uint ntresplen;\n  uchar *ntlmv2resp;\n  uchar entropy_1 [8];\n  uchar md5sum [16];\n  uchar lmresp [24];\n  uchar ntresp [24];\n  uchar ntbuffer [24];\n  undefined8 uStack_850;\n  uchar ntlmbuf [1024];\n  char host [1025];\n  \n  bVar18 = 0;\n  lVar4 = *(long *)(in_FS_OFFSET + 0x28);\n  ntresplen = 0x18;\n  ntlmv2resp = (uchar *)0x0;\n  uVar15 = ntlm->flags;\n  host[0] = '\0';\n  host[1] = '\0';\n  host[2] = '\0';\n  host[3] = '\0';\n  host[4] = '\0';\n  host[5] = '\0';\n  host[6] = '\0';\n  host[7] = '\0';\n  host[8] = '\0';\n  host[9] = '\0';\n  host[10] = '\0';\n  host[0xb] = '\0';\n  host[0xc] = '\0';\n  host[0xd] = '\0';\n  host[0xe] = '\0';\n  host[0xf] = '\0';\n  pcVar11 = host + 0x10;\n  for (lVar7 = 0x7e; lVar7 != 0; lVar7 = lVar7 + -1) {\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\n    pcVar11 = pcVar11 + 8;\n  }\n  *pcVar11 = '\0';\n  local_920 = strchr(userp,0x5c);\n  if ((local_920 == (char *)0x0) && (local_920 = strchr(userp,0x2f), local_920 == (char *)0x0)) {\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = userp;\n  }\n  else {\n    local_918 = (long)local_920 - (long)userp;\n    local_920 = local_920 + 1;\n    pcVar11 = userp;\n  }\n  uVar8 = 0xffffffffffffffff;\n  pcVar12 = local_920;\n  do {\n    if (uVar8 == 0) break;\n    uVar8 = uVar8 - 1;\n    cVar2 = *pcVar12;\n    pcVar12 = pcVar12 + (ulong)bVar18 * -2 + 1;\n  } while (cVar2 != '\0');\n  userlen = ~uVar8 - 1;\n  iVar5 = Curl_gethostname(host,0x401);\n  if (iVar5 == 0) {\n    uVar8 = 0xffffffffffffffff;\n    pcVar12 = host;\n    do {\n      if (uVar8 == 0) break;\n      uVar8 = uVar8 - 1;\n      cVar2 = *pcVar12;\n      pcVar12 = pcVar12 + (ulong)bVar18 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar8 - 1;\n  }\n  else {\n    Curl_infof(data,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }\n  if ((ntlm->flags & 0x80000) == 0) {\n    if ((ntlm->flags & 0x200) == 0) {\n      CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      Curl_ntlm_core_lm_resp(ntbuffer,ntlm->nonce,ntresp);\n      CVar6 = Curl_ntlm_core_mk_lm_hash(data,passwdp,ntlmbuf);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      Curl_ntlm_core_lm_resp(ntlmbuf,ntlm->nonce,lmresp);\n      local_8e8 = ntresp;\n    }\n    else {\n      CVar6 = Curl_rand(data,entropy_1,8);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      lmresp[0] = entropy_1[0];\n      lmresp[1] = entropy_1[1];\n      lmresp[2] = entropy_1[2];\n      lmresp[3] = entropy_1[3];\n      lmresp[4] = entropy_1[4];\n      lmresp[5] = entropy_1[5];\n      lmresp[6] = entropy_1[6];\n      lmresp[7] = entropy_1[7];\n      lmresp[8] = '\0';\n      lmresp[9] = '\0';\n      lmresp[10] = '\0';\n      lmresp[0xb] = '\0';\n      lmresp[0xc] = '\0';\n      lmresp[0xd] = '\0';\n      lmresp[0xe] = '\0';\n      lmresp[0xf] = '\0';\n      lmresp[0x10] = '\0';\n      lmresp[0x11] = '\0';\n      lmresp[0x12] = '\0';\n      lmresp[0x13] = '\0';\n      lmresp[0x14] = '\0';\n      lmresp[0x15] = '\0';\n      lmresp[0x16] = '\0';\n      lmresp[0x17] = '\0';\n      ntlmbuf._0_8_ = *(undefined8 *)ntlm->nonce;\n      ntlmbuf[8] = entropy_1[0];\n      ntlmbuf[9] = entropy_1[1];\n      ntlmbuf[10] = entropy_1[2];\n      ntlmbuf[0xb] = entropy_1[3];\n      ntlmbuf[0xc] = entropy_1[4];\n      ntlmbuf[0xd] = entropy_1[5];\n      ntlmbuf[0xe] = entropy_1[6];\n      ntlmbuf[0xf] = entropy_1[7];\n      CVar6 = Curl_ssl_md5sum(ntlmbuf,0x10,md5sum,0x10);\n      if ((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK))\n      goto LAB_001641e5;\n      local_8e8 = ntresp;\n      Curl_ntlm_core_lm_resp(ntbuffer,md5sum,local_8e8);\n    }\n  }\n  else {\n    CVar6 = Curl_rand(data,ntresp,8);\n    if ((((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK)) ||\n        (CVar6 = Curl_ntlm_core_mk_ntlmv2_hash(local_920,userlen,pcVar11,local_918,ntbuffer,ntlmbuf)\n        , CVar6 != CURLE_OK)) ||\n       ((CVar6 = Curl_ntlm_core_mk_lmv2_resp(ntlmbuf,ntresp,ntlm->nonce,lmresp), CVar6 != CURLE_OK\n        || (CVar6 = Curl_ntlm_core_mk_ntlmv2_resp(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen),\n           CVar6 != CURLE_OK)))) goto LAB_001641e5;\n    local_8e8 = ntlmv2resp;\n  }\n  uVar15 = uVar15 & 1;\n  if (uVar15 != 0) {\n    local_918 = local_918 << 1;\n    userlen = userlen * 2;\n    local_908 = local_908 << 1;\n  }\n  uVar1 = ntresplen + 0x58;\n  uVar8 = local_918 + uVar1;\n  uVar3 = ntlm->flags;\n  uVar9 = (userlen & 0xffffffff) >> 8 & 0xff;\n  uVar14 = (ulong)(ntresplen >> 8 & 0xff);\n  uVar10 = local_918 >> 8 & 0xff;\n  iVar5 = curl_msnprintf((char *)ntlmbuf,0x400,\n                         "NTLMSSP%c\x03%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"\n                         ,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,(ulong)(ntresplen & 0xff),uVar14,\n                         (ulong)(ntresplen & 0xff),uVar14,0x58,0,0,0,local_918 & 0xff,uVar10,\n                         local_918 & 0xff,uVar10,(ulong)uVar1 & 0xff,(ulong)(uVar1 >> 8) & 0xff,0,0,\n                         userlen & 0xff,uVar9,userlen & 0xff,uVar9,uVar8 & 0xff,uVar8 >> 8 & 0xff,0,\n                         0,local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         userlen + uVar8 & 0xff,userlen + uVar8 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         (ulong)(uVar3 & 0xff),(ulong)(uVar3 >> 8 & 0xff),\n                         (ulong)(uVar3 >> 0x10 & 0xff),(ulong)(uVar3 >> 0x18));\n  uVar8 = (ulong)iVar5;\n  if (uVar8 < 1000) {\n    *(undefined8 *)(ntlmbuf + uVar8) = lmresp._0_8_;\n    *(undefined8 *)(ntlmbuf + uVar8 + 8) = lmresp._8_8_;\n    *(undefined8 *)(ntlmbuf + uVar8 + 0x10) = lmresp._16_8_;\n    uVar8 = uVar8 + 0x18;\n  }\n  uVar9 = ntresplen + uVar8;\n  if (uVar9 < 0x401) {\n    memcpy(ntlmbuf + uVar8,local_8e8,(ulong)ntresplen);\n    (*Curl_cfree)(ntlmv2resp);\n    if (local_908 + userlen + local_918 + uVar9 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy(ntlmbuf + uVar9,pcVar11,local_918);\n        memcpy(ntlmbuf + uVar9 + local_918,local_920,userlen);\n        lVar7 = uVar9 + local_918 + userlen;\n        puVar16 = ntlmbuf + lVar7;\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *puVar16 = host[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);\n              }\n            }\n          }\n          else {\n            *(undefined4 *)puVar16 = host._0_4_;\n            *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4) =\n                 *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc);\n          }\n        }\n        else {\n          *(undefined8 *)puVar16 = host._0_8_;\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar7) =\n               *(undefined8 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3f8);\n          lVar17 = (long)puVar16 - (long)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          pcVar11 = host + -lVar17;\n          puVar13 = (undefined8 *)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          for (uVar8 = (ulong)(uVar15 + (int)lVar17 >> 3); uVar8 != 0; uVar8 = uVar8 - 1) {\n            *puVar13 = *(undefined8 *)pcVar11;\n            pcVar11 = pcVar11 + ((ulong)bVar18 * -2 + 1) * 8;\n            puVar13 = puVar13 + (ulong)bVar18 * -2 + 1;\n          }\n        }\n      }\n      else {\n        unicodecpy(ntlmbuf + uVar9,pcVar11,local_918 >> 1);\n        unicodecpy(ntlmbuf + uVar9 + local_918,local_920,userlen >> 1);\n        lVar7 = uVar9 + local_918 + userlen;\n        unicodecpy(ntlmbuf + lVar7,host,local_908 >> 1);\n      }\n      CVar6 = Curl_base64_encode(data,(char *)ntlmbuf,local_908 + lVar7,outptr,outlen);\n      Curl_auth_ntlm_cleanup(ntlm);\n    }\n    else {\n      Curl_failf(data,"user + domain + host name too big");\n      CVar6 = CURLE_OUT_OF_MEMORY;\n    }\n  }\n  else {\n    Curl_failf(data,"incoming NTLM message too big");\n    CVar6 = CURLE_OUT_OF_MEMORY;\n  }\nLAB_001641e5:\n  if (lVar4 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return CVar6;\n}" type_identifier (function_declarator "Curl_auth_create_ntlm_type3_message\n                   (Curl_easy *data,char *userp,char *passwdp,ntlmdata *ntlm,char **outptr,\n                   size_t *outlen)" identifier (parameter_list "(Curl_easy *data,char *userp,char *passwdp,ntlmdata *ntlm,char **outptr,\n                   size_t *outlen)" ( (parameter_declaration "Curl_easy *data" type_identifier (pointer_declarator "*data" * identifier)) , (parameter_declaration "char *userp" primitive_type (pointer_declarator "*userp" * identifier)) , (parameter_declaration "char *passwdp" primitive_type (pointer_declarator "*passwdp" * identifier)) , (parameter_declaration "ntlmdata *ntlm" type_identifier (pointer_declarator "*ntlm" * identifier)) , (parameter_declaration "char **outptr" primitive_type (pointer_declarator "**outptr" * (pointer_declarator "*outptr" * identifier))) , (parameter_declaration "size_t *outlen" primitive_type (pointer_declarator "*outlen" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  char cVar2;\n  uint uVar3;\n  long lVar4;\n  int iVar5;\n  CURLcode CVar6;\n  long lVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  char *pcVar12;\n  undefined8 *puVar13;\n  ulong uVar14;\n  uint uVar15;\n  uchar *puVar16;\n  long lVar17;\n  size_t userlen;\n  long in_FS_OFFSET;\n  byte bVar18;\n  char *local_920;\n  size_t local_918;\n  ulong local_908;\n  uchar *local_8e8;\n  uint ntresplen;\n  uchar *ntlmv2resp;\n  uchar entropy_1 [8];\n  uchar md5sum [16];\n  uchar lmresp [24];\n  uchar ntresp [24];\n  uchar ntbuffer [24];\n  undefined8 uStack_850;\n  uchar ntlmbuf [1024];\n  char host [1025];\n  \n  bVar18 = 0;\n  lVar4 = *(long *)(in_FS_OFFSET + 0x28);\n  ntresplen = 0x18;\n  ntlmv2resp = (uchar *)0x0;\n  uVar15 = ntlm->flags;\n  host[0] = '\0';\n  host[1] = '\0';\n  host[2] = '\0';\n  host[3] = '\0';\n  host[4] = '\0';\n  host[5] = '\0';\n  host[6] = '\0';\n  host[7] = '\0';\n  host[8] = '\0';\n  host[9] = '\0';\n  host[10] = '\0';\n  host[0xb] = '\0';\n  host[0xc] = '\0';\n  host[0xd] = '\0';\n  host[0xe] = '\0';\n  host[0xf] = '\0';\n  pcVar11 = host + 0x10;\n  for (lVar7 = 0x7e; lVar7 != 0; lVar7 = lVar7 + -1) {\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\n    pcVar11 = pcVar11 + 8;\n  }\n  *pcVar11 = '\0';\n  local_920 = strchr(userp,0x5c);\n  if ((local_920 == (char *)0x0) && (local_920 = strchr(userp,0x2f), local_920 == (char *)0x0)) {\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = userp;\n  }\n  else {\n    local_918 = (long)local_920 - (long)userp;\n    local_920 = local_920 + 1;\n    pcVar11 = userp;\n  }\n  uVar8 = 0xffffffffffffffff;\n  pcVar12 = local_920;\n  do {\n    if (uVar8 == 0) break;\n    uVar8 = uVar8 - 1;\n    cVar2 = *pcVar12;\n    pcVar12 = pcVar12 + (ulong)bVar18 * -2 + 1;\n  } while (cVar2 != '\0');\n  userlen = ~uVar8 - 1;\n  iVar5 = Curl_gethostname(host,0x401);\n  if (iVar5 == 0) {\n    uVar8 = 0xffffffffffffffff;\n    pcVar12 = host;\n    do {\n      if (uVar8 == 0) break;\n      uVar8 = uVar8 - 1;\n      cVar2 = *pcVar12;\n      pcVar12 = pcVar12 + (ulong)bVar18 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar8 - 1;\n  }\n  else {\n    Curl_infof(data,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }\n  if ((ntlm->flags & 0x80000) == 0) {\n    if ((ntlm->flags & 0x200) == 0) {\n      CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      Curl_ntlm_core_lm_resp(ntbuffer,ntlm->nonce,ntresp);\n      CVar6 = Curl_ntlm_core_mk_lm_hash(data,passwdp,ntlmbuf);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      Curl_ntlm_core_lm_resp(ntlmbuf,ntlm->nonce,lmresp);\n      local_8e8 = ntresp;\n    }\n    else {\n      CVar6 = Curl_rand(data,entropy_1,8);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      lmresp[0] = entropy_1[0];\n      lmresp[1] = entropy_1[1];\n      lmresp[2] = entropy_1[2];\n      lmresp[3] = entropy_1[3];\n      lmresp[4] = entropy_1[4];\n      lmresp[5] = entropy_1[5];\n      lmresp[6] = entropy_1[6];\n      lmresp[7] = entropy_1[7];\n      lmresp[8] = '\0';\n      lmresp[9] = '\0';\n      lmresp[10] = '\0';\n      lmresp[0xb] = '\0';\n      lmresp[0xc] = '\0';\n      lmresp[0xd] = '\0';\n      lmresp[0xe] = '\0';\n      lmresp[0xf] = '\0';\n      lmresp[0x10] = '\0';\n      lmresp[0x11] = '\0';\n      lmresp[0x12] = '\0';\n      lmresp[0x13] = '\0';\n      lmresp[0x14] = '\0';\n      lmresp[0x15] = '\0';\n      lmresp[0x16] = '\0';\n      lmresp[0x17] = '\0';\n      ntlmbuf._0_8_ = *(undefined8 *)ntlm->nonce;\n      ntlmbuf[8] = entropy_1[0];\n      ntlmbuf[9] = entropy_1[1];\n      ntlmbuf[10] = entropy_1[2];\n      ntlmbuf[0xb] = entropy_1[3];\n      ntlmbuf[0xc] = entropy_1[4];\n      ntlmbuf[0xd] = entropy_1[5];\n      ntlmbuf[0xe] = entropy_1[6];\n      ntlmbuf[0xf] = entropy_1[7];\n      CVar6 = Curl_ssl_md5sum(ntlmbuf,0x10,md5sum,0x10);\n      if ((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK))\n      goto LAB_001641e5;\n      local_8e8 = ntresp;\n      Curl_ntlm_core_lm_resp(ntbuffer,md5sum,local_8e8);\n    }\n  }\n  else {\n    CVar6 = Curl_rand(data,ntresp,8);\n    if ((((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK)) ||\n        (CVar6 = Curl_ntlm_core_mk_ntlmv2_hash(local_920,userlen,pcVar11,local_918,ntbuffer,ntlmbuf)\n        , CVar6 != CURLE_OK)) ||\n       ((CVar6 = Curl_ntlm_core_mk_lmv2_resp(ntlmbuf,ntresp,ntlm->nonce,lmresp), CVar6 != CURLE_OK\n        || (CVar6 = Curl_ntlm_core_mk_ntlmv2_resp(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen),\n           CVar6 != CURLE_OK)))) goto LAB_001641e5;\n    local_8e8 = ntlmv2resp;\n  }\n  uVar15 = uVar15 & 1;\n  if (uVar15 != 0) {\n    local_918 = local_918 << 1;\n    userlen = userlen * 2;\n    local_908 = local_908 << 1;\n  }\n  uVar1 = ntresplen + 0x58;\n  uVar8 = local_918 + uVar1;\n  uVar3 = ntlm->flags;\n  uVar9 = (userlen & 0xffffffff) >> 8 & 0xff;\n  uVar14 = (ulong)(ntresplen >> 8 & 0xff);\n  uVar10 = local_918 >> 8 & 0xff;\n  iVar5 = curl_msnprintf((char *)ntlmbuf,0x400,\n                         "NTLMSSP%c\x03%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"\n                         ,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,(ulong)(ntresplen & 0xff),uVar14,\n                         (ulong)(ntresplen & 0xff),uVar14,0x58,0,0,0,local_918 & 0xff,uVar10,\n                         local_918 & 0xff,uVar10,(ulong)uVar1 & 0xff,(ulong)(uVar1 >> 8) & 0xff,0,0,\n                         userlen & 0xff,uVar9,userlen & 0xff,uVar9,uVar8 & 0xff,uVar8 >> 8 & 0xff,0,\n                         0,local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         userlen + uVar8 & 0xff,userlen + uVar8 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         (ulong)(uVar3 & 0xff),(ulong)(uVar3 >> 8 & 0xff),\n                         (ulong)(uVar3 >> 0x10 & 0xff),(ulong)(uVar3 >> 0x18));\n  uVar8 = (ulong)iVar5;\n  if (uVar8 < 1000) {\n    *(undefined8 *)(ntlmbuf + uVar8) = lmresp._0_8_;\n    *(undefined8 *)(ntlmbuf + uVar8 + 8) = lmresp._8_8_;\n    *(undefined8 *)(ntlmbuf + uVar8 + 0x10) = lmresp._16_8_;\n    uVar8 = uVar8 + 0x18;\n  }\n  uVar9 = ntresplen + uVar8;\n  if (uVar9 < 0x401) {\n    memcpy(ntlmbuf + uVar8,local_8e8,(ulong)ntresplen);\n    (*Curl_cfree)(ntlmv2resp);\n    if (local_908 + userlen + local_918 + uVar9 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy(ntlmbuf + uVar9,pcVar11,local_918);\n        memcpy(ntlmbuf + uVar9 + local_918,local_920,userlen);\n        lVar7 = uVar9 + local_918 + userlen;\n        puVar16 = ntlmbuf + lVar7;\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *puVar16 = host[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);\n              }\n            }\n          }\n          else {\n            *(undefined4 *)puVar16 = host._0_4_;\n            *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4) =\n                 *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc);\n          }\n        }\n        else {\n          *(undefined8 *)puVar16 = host._0_8_;\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar7) =\n               *(undefined8 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3f8);\n          lVar17 = (long)puVar16 - (long)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          pcVar11 = host + -lVar17;\n          puVar13 = (undefined8 *)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          for (uVar8 = (ulong)(uVar15 + (int)lVar17 >> 3); uVar8 != 0; uVar8 = uVar8 - 1) {\n            *puVar13 = *(undefined8 *)pcVar11;\n            pcVar11 = pcVar11 + ((ulong)bVar18 * -2 + 1) * 8;\n            puVar13 = puVar13 + (ulong)bVar18 * -2 + 1;\n          }\n        }\n      }\n      else {\n        unicodecpy(ntlmbuf + uVar9,pcVar11,local_918 >> 1);\n        unicodecpy(ntlmbuf + uVar9 + local_918,local_920,userlen >> 1);\n        lVar7 = uVar9 + local_918 + userlen;\n        unicodecpy(ntlmbuf + lVar7,host,local_908 >> 1);\n      }\n      CVar6 = Curl_base64_encode(data,(char *)ntlmbuf,local_908 + lVar7,outptr,outlen);\n      Curl_auth_ntlm_cleanup(ntlm);\n    }\n    else {\n      Curl_failf(data,"user + domain + host name too big");\n      CVar6 = CURLE_OUT_OF_MEMORY;\n    }\n  }\n  else {\n    Curl_failf(data,"incoming NTLM message too big");\n    CVar6 = CURLE_OUT_OF_MEMORY;\n  }\nLAB_001641e5:\n  if (lVar4 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return CVar6;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "CURLcode CVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "undefined8 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "uchar *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "long lVar17;" (sized_type_specifier "long" long) identifier ;) (declaration "size_t userlen;" primitive_type identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "char *local_920;" primitive_type (pointer_declarator "*local_920" * identifier) ;) (declaration "size_t local_918;" primitive_type identifier ;) (declaration "ulong local_908;" type_identifier identifier ;) (declaration "uchar *local_8e8;" type_identifier (pointer_declarator "*local_8e8" * identifier) ;) (declaration "uint ntresplen;" type_identifier identifier ;) (declaration "uchar *ntlmv2resp;" type_identifier (pointer_declarator "*ntlmv2resp" * identifier) ;) (declaration "uchar entropy_1 [8];" type_identifier (array_declarator "entropy_1 [8]" identifier [ number_literal ]) ;) (declaration "uchar md5sum [16];" type_identifier (array_declarator "md5sum [16]" identifier [ number_literal ]) ;) (declaration "uchar lmresp [24];" type_identifier (array_declarator "lmresp [24]" identifier [ number_literal ]) ;) (declaration "uchar ntresp [24];" type_identifier (array_declarator "ntresp [24]" identifier [ number_literal ]) ;) (declaration "uchar ntbuffer [24];" type_identifier (array_declarator "ntbuffer [24]" identifier [ number_literal ]) ;) (declaration "undefined8 uStack_850;" type_identifier identifier ;) (declaration "uchar ntlmbuf [1024];" type_identifier (array_declarator "ntlmbuf [1024]" identifier [ number_literal ]) ;) (declaration "char host [1025];" primitive_type (array_declarator "host [1025]" identifier [ number_literal ]) ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "lVar4 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar4 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "ntresplen = 0x18;" (assignment_expression "ntresplen = 0x18" identifier = number_literal) ;) (expression_statement "ntlmv2resp = (uchar *)0x0;" (assignment_expression "ntlmv2resp = (uchar *)0x0" identifier = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar15 = ntlm->flags;" (assignment_expression "uVar15 = ntlm->flags" identifier = (field_expression "ntlm->flags" identifier -> field_identifier)) ;) (expression_statement "host[0] = '\0';" (assignment_expression "host[0] = '\0'" (subscript_expression "host[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "host[1] = '\0';" (assignment_expression "host[1] = '\0'" (subscript_expression "host[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "host[2] = '\0';" (assignment_expression "host[2] = '\0'" (subscript_expression "host[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "host[3] = '\0';" (assignment_expression "host[3] = '\0'" (subscript_expression "host[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "host[4] = '\0';" (assignment_expression "host[4] = '\0'" (subscript_expression "host[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "host[5] = '\0';" (assignment_expression "host[5] = '\0'" (subscript_expression "host[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "host[6] = '\0';" (assignment_expression "host[6] = '\0'" (subscript_expression "host[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "host[7] = '\0';" (assignment_expression "host[7] = '\0'" (subscript_expression "host[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "host[8] = '\0';" (assignment_expression "host[8] = '\0'" (subscript_expression "host[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "host[9] = '\0';" (assignment_expression "host[9] = '\0'" (subscript_expression "host[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "host[10] = '\0';" (assignment_expression "host[10] = '\0'" (subscript_expression "host[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "host[0xb] = '\0';" (assignment_expression "host[0xb] = '\0'" (subscript_expression "host[0xb]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "host[0xc] = '\0';" (assignment_expression "host[0xc] = '\0'" (subscript_expression "host[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "host[0xd] = '\0';" (assignment_expression "host[0xd] = '\0'" (subscript_expression "host[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "host[0xe] = '\0';" (assignment_expression "host[0xe] = '\0'" (subscript_expression "host[0xe]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "host[0xf] = '\0';" (assignment_expression "host[0xf] = '\0'" (subscript_expression "host[0xf]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11 = host + 0x10;" (assignment_expression "pcVar11 = host + 0x10" identifier = (binary_expression "host + 0x10" identifier + number_literal)) ;) (for_statement "for (lVar7 = 0x7e; lVar7 != 0; lVar7 = lVar7 + -1) {\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\n    pcVar11 = pcVar11 + 8;\n  }" for ( (assignment_expression "lVar7 = 0x7e" identifier = number_literal) ; (binary_expression "lVar7 != 0" identifier != number_literal) ; (assignment_expression "lVar7 = lVar7 + -1" identifier = (binary_expression "lVar7 + -1" identifier + number_literal)) ) (compound_statement "{\n    pcVar11[0] = '\0';\n    pcVar11[1] = '\0';\n    pcVar11[2] = '\0';\n    pcVar11[3] = '\0';\n    pcVar11[4] = '\0';\n    pcVar11[5] = '\0';\n    pcVar11[6] = '\0';\n    pcVar11[7] = '\0';\n    pcVar11 = pcVar11 + 8;\n  }" { (expression_statement "pcVar11[0] = '\0';" (assignment_expression "pcVar11[0] = '\0'" (subscript_expression "pcVar11[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[1] = '\0';" (assignment_expression "pcVar11[1] = '\0'" (subscript_expression "pcVar11[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[2] = '\0';" (assignment_expression "pcVar11[2] = '\0'" (subscript_expression "pcVar11[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[3] = '\0';" (assignment_expression "pcVar11[3] = '\0'" (subscript_expression "pcVar11[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[4] = '\0';" (assignment_expression "pcVar11[4] = '\0'" (subscript_expression "pcVar11[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[5] = '\0';" (assignment_expression "pcVar11[5] = '\0'" (subscript_expression "pcVar11[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[6] = '\0';" (assignment_expression "pcVar11[6] = '\0'" (subscript_expression "pcVar11[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11[7] = '\0';" (assignment_expression "pcVar11[7] = '\0'" (subscript_expression "pcVar11[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar11 = pcVar11 + 8;" (assignment_expression "pcVar11 = pcVar11 + 8" identifier = (binary_expression "pcVar11 + 8" identifier + number_literal)) ;) })) (expression_statement "*pcVar11 = '\0';" (assignment_expression "*pcVar11 = '\0'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_920 = strchr(userp,0x5c);" (assignment_expression "local_920 = strchr(userp,0x5c)" identifier = (call_expression "strchr(userp,0x5c)" identifier (argument_list "(userp,0x5c)" ( identifier , number_literal )))) ;) (if_statement "if ((local_920 == (char *)0x0) && (local_920 = strchr(userp,0x2f), local_920 == (char *)0x0)) {\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = userp;\n  }\n  else {\n    local_918 = (long)local_920 - (long)userp;\n    local_920 = local_920 + 1;\n    pcVar11 = userp;\n  }" if (parenthesized_expression "((local_920 == (char *)0x0) && (local_920 = strchr(userp,0x2f), local_920 == (char *)0x0))" ( (binary_expression "(local_920 == (char *)0x0) && (local_920 = strchr(userp,0x2f), local_920 == (char *)0x0)" (parenthesized_expression "(local_920 == (char *)0x0)" ( (binary_expression "local_920 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_920 = strchr(userp,0x2f), local_920 == (char *)0x0)" ( (comma_expression "local_920 = strchr(userp,0x2f), local_920 == (char *)0x0" (assignment_expression "local_920 = strchr(userp,0x2f)" identifier = (call_expression "strchr(userp,0x2f)" identifier (argument_list "(userp,0x2f)" ( identifier , number_literal )))) , (binary_expression "local_920 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = userp;\n  }" { (expression_statement "local_918 = 0;" (assignment_expression "local_918 = 0" identifier = number_literal) ;) (expression_statement "pcVar11 = "";" (assignment_expression "pcVar11 = """ identifier = (string_literal """" " ")) ;) (expression_statement "local_920 = userp;" (assignment_expression "local_920 = userp" identifier = identifier) ;) }) (else_clause "else {\n    local_918 = (long)local_920 - (long)userp;\n    local_920 = local_920 + 1;\n    pcVar11 = userp;\n  }" else (compound_statement "{\n    local_918 = (long)local_920 - (long)userp;\n    local_920 = local_920 + 1;\n    pcVar11 = userp;\n  }" { (expression_statement "local_918 = (long)local_920 - (long)userp;" (assignment_expression "local_918 = (long)local_920 - (long)userp" identifier = (binary_expression "(long)local_920 - (long)userp" (cast_expression "(long)local_920" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)userp" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "local_920 = local_920 + 1;" (assignment_expression "local_920 = local_920 + 1" identifier = (binary_expression "local_920 + 1" identifier + number_literal)) ;) (expression_statement "pcVar11 = userp;" (assignment_expression "pcVar11 = userp" identifier = identifier) ;) }))) (expression_statement "uVar8 = 0xffffffffffffffff;" (assignment_expression "uVar8 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar12 = local_920;" (assignment_expression "pcVar12 = local_920" identifier = identifier) ;) (do_statement "do {\n    if (uVar8 == 0) break;\n    uVar8 = uVar8 - 1;\n    cVar2 = *pcVar12;\n    pcVar12 = pcVar12 + (ulong)bVar18 * -2 + 1;\n  } while (cVar2 != '\0');" do (compound_statement "{\n    if (uVar8 == 0) break;\n    uVar8 = uVar8 - 1;\n    cVar2 = *pcVar12;\n    pcVar12 = pcVar12 + (ulong)bVar18 * -2 + 1;\n  }" { (if_statement "if (uVar8 == 0) break;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar12;" (assignment_expression "cVar2 = *pcVar12" identifier = (pointer_expression "*pcVar12" * identifier)) ;) (expression_statement "pcVar12 = pcVar12 + (ulong)bVar18 * -2 + 1;" (assignment_expression "pcVar12 = pcVar12 + (ulong)bVar18 * -2 + 1" identifier = (binary_expression "pcVar12 + (ulong)bVar18 * -2 + 1" (binary_expression "pcVar12 + (ulong)bVar18 * -2" identifier + (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "userlen = ~uVar8 - 1;" (assignment_expression "userlen = ~uVar8 - 1" identifier = (binary_expression "~uVar8 - 1" (unary_expression "~uVar8" ~ identifier) - number_literal)) ;) (expression_statement "iVar5 = Curl_gethostname(host,0x401);" (assignment_expression "iVar5 = Curl_gethostname(host,0x401)" identifier = (call_expression "Curl_gethostname(host,0x401)" identifier (argument_list "(host,0x401)" ( identifier , number_literal )))) ;) (if_statement "if (iVar5 == 0) {\n    uVar8 = 0xffffffffffffffff;\n    pcVar12 = host;\n    do {\n      if (uVar8 == 0) break;\n      uVar8 = uVar8 - 1;\n      cVar2 = *pcVar12;\n      pcVar12 = pcVar12 + (ulong)bVar18 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar8 - 1;\n  }\n  else {\n    Curl_infof(data,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar8 = 0xffffffffffffffff;\n    pcVar12 = host;\n    do {\n      if (uVar8 == 0) break;\n      uVar8 = uVar8 - 1;\n      cVar2 = *pcVar12;\n      pcVar12 = pcVar12 + (ulong)bVar18 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar8 - 1;\n  }" { (expression_statement "uVar8 = 0xffffffffffffffff;" (assignment_expression "uVar8 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar12 = host;" (assignment_expression "pcVar12 = host" identifier = identifier) ;) (do_statement "do {\n      if (uVar8 == 0) break;\n      uVar8 = uVar8 - 1;\n      cVar2 = *pcVar12;\n      pcVar12 = pcVar12 + (ulong)bVar18 * -2 + 1;\n    } while (cVar2 != '\0');" do (compound_statement "{\n      if (uVar8 == 0) break;\n      uVar8 = uVar8 - 1;\n      cVar2 = *pcVar12;\n      pcVar12 = pcVar12 + (ulong)bVar18 * -2 + 1;\n    }" { (if_statement "if (uVar8 == 0) break;" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar12;" (assignment_expression "cVar2 = *pcVar12" identifier = (pointer_expression "*pcVar12" * identifier)) ;) (expression_statement "pcVar12 = pcVar12 + (ulong)bVar18 * -2 + 1;" (assignment_expression "pcVar12 = pcVar12 + (ulong)bVar18 * -2 + 1" identifier = (binary_expression "pcVar12 + (ulong)bVar18 * -2 + 1" (binary_expression "pcVar12 + (ulong)bVar18 * -2" identifier + (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "local_908 = ~uVar8 - 1;" (assignment_expression "local_908 = ~uVar8 - 1" identifier = (binary_expression "~uVar8 - 1" (unary_expression "~uVar8" ~ identifier) - number_literal)) ;) }) (else_clause "else {\n    Curl_infof(data,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }" else (compound_statement "{\n    Curl_infof(data,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }" { (expression_statement "Curl_infof(data,"gethostname() failed, continuing without!\n");" (call_expression "Curl_infof(data,"gethostname() failed, continuing without!\n")" identifier (argument_list "(data,"gethostname() failed, continuing without!\n")" ( identifier , (string_literal ""gethostname() failed, continuing without!\n"" " string_content escape_sequence ") ))) ;) (expression_statement "local_908 = 0;" (assignment_expression "local_908 = 0" identifier = number_literal) ;) }))) (if_statement "if ((ntlm->flags & 0x80000) == 0) {\n    if ((ntlm->flags & 0x200) == 0) {\n      CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      Curl_ntlm_core_lm_resp(ntbuffer,ntlm->nonce,ntresp);\n      CVar6 = Curl_ntlm_core_mk_lm_hash(data,passwdp,ntlmbuf);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      Curl_ntlm_core_lm_resp(ntlmbuf,ntlm->nonce,lmresp);\n      local_8e8 = ntresp;\n    }\n    else {\n      CVar6 = Curl_rand(data,entropy_1,8);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      lmresp[0] = entropy_1[0];\n      lmresp[1] = entropy_1[1];\n      lmresp[2] = entropy_1[2];\n      lmresp[3] = entropy_1[3];\n      lmresp[4] = entropy_1[4];\n      lmresp[5] = entropy_1[5];\n      lmresp[6] = entropy_1[6];\n      lmresp[7] = entropy_1[7];\n      lmresp[8] = '\0';\n      lmresp[9] = '\0';\n      lmresp[10] = '\0';\n      lmresp[0xb] = '\0';\n      lmresp[0xc] = '\0';\n      lmresp[0xd] = '\0';\n      lmresp[0xe] = '\0';\n      lmresp[0xf] = '\0';\n      lmresp[0x10] = '\0';\n      lmresp[0x11] = '\0';\n      lmresp[0x12] = '\0';\n      lmresp[0x13] = '\0';\n      lmresp[0x14] = '\0';\n      lmresp[0x15] = '\0';\n      lmresp[0x16] = '\0';\n      lmresp[0x17] = '\0';\n      ntlmbuf._0_8_ = *(undefined8 *)ntlm->nonce;\n      ntlmbuf[8] = entropy_1[0];\n      ntlmbuf[9] = entropy_1[1];\n      ntlmbuf[10] = entropy_1[2];\n      ntlmbuf[0xb] = entropy_1[3];\n      ntlmbuf[0xc] = entropy_1[4];\n      ntlmbuf[0xd] = entropy_1[5];\n      ntlmbuf[0xe] = entropy_1[6];\n      ntlmbuf[0xf] = entropy_1[7];\n      CVar6 = Curl_ssl_md5sum(ntlmbuf,0x10,md5sum,0x10);\n      if ((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK))\n      goto LAB_001641e5;\n      local_8e8 = ntresp;\n      Curl_ntlm_core_lm_resp(ntbuffer,md5sum,local_8e8);\n    }\n  }\n  else {\n    CVar6 = Curl_rand(data,ntresp,8);\n    if ((((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK)) ||\n        (CVar6 = Curl_ntlm_core_mk_ntlmv2_hash(local_920,userlen,pcVar11,local_918,ntbuffer,ntlmbuf)\n        , CVar6 != CURLE_OK)) ||\n       ((CVar6 = Curl_ntlm_core_mk_lmv2_resp(ntlmbuf,ntresp,ntlm->nonce,lmresp), CVar6 != CURLE_OK\n        || (CVar6 = Curl_ntlm_core_mk_ntlmv2_resp(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen),\n           CVar6 != CURLE_OK)))) goto LAB_001641e5;\n    local_8e8 = ntlmv2resp;\n  }" if (parenthesized_expression "((ntlm->flags & 0x80000) == 0)" ( (binary_expression "(ntlm->flags & 0x80000) == 0" (parenthesized_expression "(ntlm->flags & 0x80000)" ( (binary_expression "ntlm->flags & 0x80000" (field_expression "ntlm->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    if ((ntlm->flags & 0x200) == 0) {\n      CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      Curl_ntlm_core_lm_resp(ntbuffer,ntlm->nonce,ntresp);\n      CVar6 = Curl_ntlm_core_mk_lm_hash(data,passwdp,ntlmbuf);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      Curl_ntlm_core_lm_resp(ntlmbuf,ntlm->nonce,lmresp);\n      local_8e8 = ntresp;\n    }\n    else {\n      CVar6 = Curl_rand(data,entropy_1,8);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      lmresp[0] = entropy_1[0];\n      lmresp[1] = entropy_1[1];\n      lmresp[2] = entropy_1[2];\n      lmresp[3] = entropy_1[3];\n      lmresp[4] = entropy_1[4];\n      lmresp[5] = entropy_1[5];\n      lmresp[6] = entropy_1[6];\n      lmresp[7] = entropy_1[7];\n      lmresp[8] = '\0';\n      lmresp[9] = '\0';\n      lmresp[10] = '\0';\n      lmresp[0xb] = '\0';\n      lmresp[0xc] = '\0';\n      lmresp[0xd] = '\0';\n      lmresp[0xe] = '\0';\n      lmresp[0xf] = '\0';\n      lmresp[0x10] = '\0';\n      lmresp[0x11] = '\0';\n      lmresp[0x12] = '\0';\n      lmresp[0x13] = '\0';\n      lmresp[0x14] = '\0';\n      lmresp[0x15] = '\0';\n      lmresp[0x16] = '\0';\n      lmresp[0x17] = '\0';\n      ntlmbuf._0_8_ = *(undefined8 *)ntlm->nonce;\n      ntlmbuf[8] = entropy_1[0];\n      ntlmbuf[9] = entropy_1[1];\n      ntlmbuf[10] = entropy_1[2];\n      ntlmbuf[0xb] = entropy_1[3];\n      ntlmbuf[0xc] = entropy_1[4];\n      ntlmbuf[0xd] = entropy_1[5];\n      ntlmbuf[0xe] = entropy_1[6];\n      ntlmbuf[0xf] = entropy_1[7];\n      CVar6 = Curl_ssl_md5sum(ntlmbuf,0x10,md5sum,0x10);\n      if ((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK))\n      goto LAB_001641e5;\n      local_8e8 = ntresp;\n      Curl_ntlm_core_lm_resp(ntbuffer,md5sum,local_8e8);\n    }\n  }" { (if_statement "if ((ntlm->flags & 0x200) == 0) {\n      CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      Curl_ntlm_core_lm_resp(ntbuffer,ntlm->nonce,ntresp);\n      CVar6 = Curl_ntlm_core_mk_lm_hash(data,passwdp,ntlmbuf);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      Curl_ntlm_core_lm_resp(ntlmbuf,ntlm->nonce,lmresp);\n      local_8e8 = ntresp;\n    }\n    else {\n      CVar6 = Curl_rand(data,entropy_1,8);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      lmresp[0] = entropy_1[0];\n      lmresp[1] = entropy_1[1];\n      lmresp[2] = entropy_1[2];\n      lmresp[3] = entropy_1[3];\n      lmresp[4] = entropy_1[4];\n      lmresp[5] = entropy_1[5];\n      lmresp[6] = entropy_1[6];\n      lmresp[7] = entropy_1[7];\n      lmresp[8] = '\0';\n      lmresp[9] = '\0';\n      lmresp[10] = '\0';\n      lmresp[0xb] = '\0';\n      lmresp[0xc] = '\0';\n      lmresp[0xd] = '\0';\n      lmresp[0xe] = '\0';\n      lmresp[0xf] = '\0';\n      lmresp[0x10] = '\0';\n      lmresp[0x11] = '\0';\n      lmresp[0x12] = '\0';\n      lmresp[0x13] = '\0';\n      lmresp[0x14] = '\0';\n      lmresp[0x15] = '\0';\n      lmresp[0x16] = '\0';\n      lmresp[0x17] = '\0';\n      ntlmbuf._0_8_ = *(undefined8 *)ntlm->nonce;\n      ntlmbuf[8] = entropy_1[0];\n      ntlmbuf[9] = entropy_1[1];\n      ntlmbuf[10] = entropy_1[2];\n      ntlmbuf[0xb] = entropy_1[3];\n      ntlmbuf[0xc] = entropy_1[4];\n      ntlmbuf[0xd] = entropy_1[5];\n      ntlmbuf[0xe] = entropy_1[6];\n      ntlmbuf[0xf] = entropy_1[7];\n      CVar6 = Curl_ssl_md5sum(ntlmbuf,0x10,md5sum,0x10);\n      if ((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK))\n      goto LAB_001641e5;\n      local_8e8 = ntresp;\n      Curl_ntlm_core_lm_resp(ntbuffer,md5sum,local_8e8);\n    }" if (parenthesized_expression "((ntlm->flags & 0x200) == 0)" ( (binary_expression "(ntlm->flags & 0x200) == 0" (parenthesized_expression "(ntlm->flags & 0x200)" ( (binary_expression "ntlm->flags & 0x200" (field_expression "ntlm->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      Curl_ntlm_core_lm_resp(ntbuffer,ntlm->nonce,ntresp);\n      CVar6 = Curl_ntlm_core_mk_lm_hash(data,passwdp,ntlmbuf);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      Curl_ntlm_core_lm_resp(ntlmbuf,ntlm->nonce,lmresp);\n      local_8e8 = ntresp;\n    }" { (expression_statement "CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer);" (assignment_expression "CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer)" identifier = (call_expression "Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer)" identifier (argument_list "(data,passwdp,ntbuffer)" ( identifier , identifier , identifier )))) ;) (if_statement "if (CVar6 != CURLE_OK) goto LAB_001641e5;" if (parenthesized_expression "(CVar6 != CURLE_OK)" ( (binary_expression "CVar6 != CURLE_OK" identifier != identifier) )) (goto_statement "goto LAB_001641e5;" goto statement_identifier ;)) (expression_statement "Curl_ntlm_core_lm_resp(ntbuffer,ntlm->nonce,ntresp);" (call_expression "Curl_ntlm_core_lm_resp(ntbuffer,ntlm->nonce,ntresp)" identifier (argument_list "(ntbuffer,ntlm->nonce,ntresp)" ( identifier , (field_expression "ntlm->nonce" identifier -> field_identifier) , identifier ))) ;) (expression_statement "CVar6 = Curl_ntlm_core_mk_lm_hash(data,passwdp,ntlmbuf);" (assignment_expression "CVar6 = Curl_ntlm_core_mk_lm_hash(data,passwdp,ntlmbuf)" identifier = (call_expression "Curl_ntlm_core_mk_lm_hash(data,passwdp,ntlmbuf)" identifier (argument_list "(data,passwdp,ntlmbuf)" ( identifier , identifier , identifier )))) ;) (if_statement "if (CVar6 != CURLE_OK) goto LAB_001641e5;" if (parenthesized_expression "(CVar6 != CURLE_OK)" ( (binary_expression "CVar6 != CURLE_OK" identifier != identifier) )) (goto_statement "goto LAB_001641e5;" goto statement_identifier ;)) (expression_statement "Curl_ntlm_core_lm_resp(ntlmbuf,ntlm->nonce,lmresp);" (call_expression "Curl_ntlm_core_lm_resp(ntlmbuf,ntlm->nonce,lmresp)" identifier (argument_list "(ntlmbuf,ntlm->nonce,lmresp)" ( identifier , (field_expression "ntlm->nonce" identifier -> field_identifier) , identifier ))) ;) (expression_statement "local_8e8 = ntresp;" (assignment_expression "local_8e8 = ntresp" identifier = identifier) ;) }) (else_clause "else {\n      CVar6 = Curl_rand(data,entropy_1,8);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      lmresp[0] = entropy_1[0];\n      lmresp[1] = entropy_1[1];\n      lmresp[2] = entropy_1[2];\n      lmresp[3] = entropy_1[3];\n      lmresp[4] = entropy_1[4];\n      lmresp[5] = entropy_1[5];\n      lmresp[6] = entropy_1[6];\n      lmresp[7] = entropy_1[7];\n      lmresp[8] = '\0';\n      lmresp[9] = '\0';\n      lmresp[10] = '\0';\n      lmresp[0xb] = '\0';\n      lmresp[0xc] = '\0';\n      lmresp[0xd] = '\0';\n      lmresp[0xe] = '\0';\n      lmresp[0xf] = '\0';\n      lmresp[0x10] = '\0';\n      lmresp[0x11] = '\0';\n      lmresp[0x12] = '\0';\n      lmresp[0x13] = '\0';\n      lmresp[0x14] = '\0';\n      lmresp[0x15] = '\0';\n      lmresp[0x16] = '\0';\n      lmresp[0x17] = '\0';\n      ntlmbuf._0_8_ = *(undefined8 *)ntlm->nonce;\n      ntlmbuf[8] = entropy_1[0];\n      ntlmbuf[9] = entropy_1[1];\n      ntlmbuf[10] = entropy_1[2];\n      ntlmbuf[0xb] = entropy_1[3];\n      ntlmbuf[0xc] = entropy_1[4];\n      ntlmbuf[0xd] = entropy_1[5];\n      ntlmbuf[0xe] = entropy_1[6];\n      ntlmbuf[0xf] = entropy_1[7];\n      CVar6 = Curl_ssl_md5sum(ntlmbuf,0x10,md5sum,0x10);\n      if ((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK))\n      goto LAB_001641e5;\n      local_8e8 = ntresp;\n      Curl_ntlm_core_lm_resp(ntbuffer,md5sum,local_8e8);\n    }" else (compound_statement "{\n      CVar6 = Curl_rand(data,entropy_1,8);\n      if (CVar6 != CURLE_OK) goto LAB_001641e5;\n      lmresp[0] = entropy_1[0];\n      lmresp[1] = entropy_1[1];\n      lmresp[2] = entropy_1[2];\n      lmresp[3] = entropy_1[3];\n      lmresp[4] = entropy_1[4];\n      lmresp[5] = entropy_1[5];\n      lmresp[6] = entropy_1[6];\n      lmresp[7] = entropy_1[7];\n      lmresp[8] = '\0';\n      lmresp[9] = '\0';\n      lmresp[10] = '\0';\n      lmresp[0xb] = '\0';\n      lmresp[0xc] = '\0';\n      lmresp[0xd] = '\0';\n      lmresp[0xe] = '\0';\n      lmresp[0xf] = '\0';\n      lmresp[0x10] = '\0';\n      lmresp[0x11] = '\0';\n      lmresp[0x12] = '\0';\n      lmresp[0x13] = '\0';\n      lmresp[0x14] = '\0';\n      lmresp[0x15] = '\0';\n      lmresp[0x16] = '\0';\n      lmresp[0x17] = '\0';\n      ntlmbuf._0_8_ = *(undefined8 *)ntlm->nonce;\n      ntlmbuf[8] = entropy_1[0];\n      ntlmbuf[9] = entropy_1[1];\n      ntlmbuf[10] = entropy_1[2];\n      ntlmbuf[0xb] = entropy_1[3];\n      ntlmbuf[0xc] = entropy_1[4];\n      ntlmbuf[0xd] = entropy_1[5];\n      ntlmbuf[0xe] = entropy_1[6];\n      ntlmbuf[0xf] = entropy_1[7];\n      CVar6 = Curl_ssl_md5sum(ntlmbuf,0x10,md5sum,0x10);\n      if ((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK))\n      goto LAB_001641e5;\n      local_8e8 = ntresp;\n      Curl_ntlm_core_lm_resp(ntbuffer,md5sum,local_8e8);\n    }" { (expression_statement "CVar6 = Curl_rand(data,entropy_1,8);" (assignment_expression "CVar6 = Curl_rand(data,entropy_1,8)" identifier = (call_expression "Curl_rand(data,entropy_1,8)" identifier (argument_list "(data,entropy_1,8)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (CVar6 != CURLE_OK) goto LAB_001641e5;" if (parenthesized_expression "(CVar6 != CURLE_OK)" ( (binary_expression "CVar6 != CURLE_OK" identifier != identifier) )) (goto_statement "goto LAB_001641e5;" goto statement_identifier ;)) (expression_statement "lmresp[0] = entropy_1[0];" (assignment_expression "lmresp[0] = entropy_1[0]" (subscript_expression "lmresp[0]" identifier [ number_literal ]) = (subscript_expression "entropy_1[0]" identifier [ number_literal ])) ;) (expression_statement "lmresp[1] = entropy_1[1];" (assignment_expression "lmresp[1] = entropy_1[1]" (subscript_expression "lmresp[1]" identifier [ number_literal ]) = (subscript_expression "entropy_1[1]" identifier [ number_literal ])) ;) (expression_statement "lmresp[2] = entropy_1[2];" (assignment_expression "lmresp[2] = entropy_1[2]" (subscript_expression "lmresp[2]" identifier [ number_literal ]) = (subscript_expression "entropy_1[2]" identifier [ number_literal ])) ;) (expression_statement "lmresp[3] = entropy_1[3];" (assignment_expression "lmresp[3] = entropy_1[3]" (subscript_expression "lmresp[3]" identifier [ number_literal ]) = (subscript_expression "entropy_1[3]" identifier [ number_literal ])) ;) (expression_statement "lmresp[4] = entropy_1[4];" (assignment_expression "lmresp[4] = entropy_1[4]" (subscript_expression "lmresp[4]" identifier [ number_literal ]) = (subscript_expression "entropy_1[4]" identifier [ number_literal ])) ;) (expression_statement "lmresp[5] = entropy_1[5];" (assignment_expression "lmresp[5] = entropy_1[5]" (subscript_expression "lmresp[5]" identifier [ number_literal ]) = (subscript_expression "entropy_1[5]" identifier [ number_literal ])) ;) (expression_statement "lmresp[6] = entropy_1[6];" (assignment_expression "lmresp[6] = entropy_1[6]" (subscript_expression "lmresp[6]" identifier [ number_literal ]) = (subscript_expression "entropy_1[6]" identifier [ number_literal ])) ;) (expression_statement "lmresp[7] = entropy_1[7];" (assignment_expression "lmresp[7] = entropy_1[7]" (subscript_expression "lmresp[7]" identifier [ number_literal ]) = (subscript_expression "entropy_1[7]" identifier [ number_literal ])) ;) (expression_statement "lmresp[8] = '\0';" (assignment_expression "lmresp[8] = '\0'" (subscript_expression "lmresp[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lmresp[9] = '\0';" (assignment_expression "lmresp[9] = '\0'" (subscript_expression "lmresp[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lmresp[10] = '\0';" (assignment_expression "lmresp[10] = '\0'" (subscript_expression "lmresp[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lmresp[0xb] = '\0';" (assignment_expression "lmresp[0xb] = '\0'" (subscript_expression "lmresp[0xb]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lmresp[0xc] = '\0';" (assignment_expression "lmresp[0xc] = '\0'" (subscript_expression "lmresp[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lmresp[0xd] = '\0';" (assignment_expression "lmresp[0xd] = '\0'" (subscript_expression "lmresp[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lmresp[0xe] = '\0';" (assignment_expression "lmresp[0xe] = '\0'" (subscript_expression "lmresp[0xe]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lmresp[0xf] = '\0';" (assignment_expression "lmresp[0xf] = '\0'" (subscript_expression "lmresp[0xf]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lmresp[0x10] = '\0';" (assignment_expression "lmresp[0x10] = '\0'" (subscript_expression "lmresp[0x10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lmresp[0x11] = '\0';" (assignment_expression "lmresp[0x11] = '\0'" (subscript_expression "lmresp[0x11]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lmresp[0x12] = '\0';" (assignment_expression "lmresp[0x12] = '\0'" (subscript_expression "lmresp[0x12]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lmresp[0x13] = '\0';" (assignment_expression "lmresp[0x13] = '\0'" (subscript_expression "lmresp[0x13]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lmresp[0x14] = '\0';" (assignment_expression "lmresp[0x14] = '\0'" (subscript_expression "lmresp[0x14]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lmresp[0x15] = '\0';" (assignment_expression "lmresp[0x15] = '\0'" (subscript_expression "lmresp[0x15]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lmresp[0x16] = '\0';" (assignment_expression "lmresp[0x16] = '\0'" (subscript_expression "lmresp[0x16]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "lmresp[0x17] = '\0';" (assignment_expression "lmresp[0x17] = '\0'" (subscript_expression "lmresp[0x17]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ntlmbuf._0_8_ = *(undefined8 *)ntlm->nonce;" (assignment_expression "ntlmbuf._0_8_ = *(undefined8 *)ntlm->nonce" (field_expression "ntlmbuf._0_8_" identifier . field_identifier) = (pointer_expression "*(undefined8 *)ntlm->nonce" * (cast_expression "(undefined8 *)ntlm->nonce" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "ntlm->nonce" identifier -> field_identifier)))) ;) (expression_statement "ntlmbuf[8] = entropy_1[0];" (assignment_expression "ntlmbuf[8] = entropy_1[0]" (subscript_expression "ntlmbuf[8]" identifier [ number_literal ]) = (subscript_expression "entropy_1[0]" identifier [ number_literal ])) ;) (expression_statement "ntlmbuf[9] = entropy_1[1];" (assignment_expression "ntlmbuf[9] = entropy_1[1]" (subscript_expression "ntlmbuf[9]" identifier [ number_literal ]) = (subscript_expression "entropy_1[1]" identifier [ number_literal ])) ;) (expression_statement "ntlmbuf[10] = entropy_1[2];" (assignment_expression "ntlmbuf[10] = entropy_1[2]" (subscript_expression "ntlmbuf[10]" identifier [ number_literal ]) = (subscript_expression "entropy_1[2]" identifier [ number_literal ])) ;) (expression_statement "ntlmbuf[0xb] = entropy_1[3];" (assignment_expression "ntlmbuf[0xb] = entropy_1[3]" (subscript_expression "ntlmbuf[0xb]" identifier [ number_literal ]) = (subscript_expression "entropy_1[3]" identifier [ number_literal ])) ;) (expression_statement "ntlmbuf[0xc] = entropy_1[4];" (assignment_expression "ntlmbuf[0xc] = entropy_1[4]" (subscript_expression "ntlmbuf[0xc]" identifier [ number_literal ]) = (subscript_expression "entropy_1[4]" identifier [ number_literal ])) ;) (expression_statement "ntlmbuf[0xd] = entropy_1[5];" (assignment_expression "ntlmbuf[0xd] = entropy_1[5]" (subscript_expression "ntlmbuf[0xd]" identifier [ number_literal ]) = (subscript_expression "entropy_1[5]" identifier [ number_literal ])) ;) (expression_statement "ntlmbuf[0xe] = entropy_1[6];" (assignment_expression "ntlmbuf[0xe] = entropy_1[6]" (subscript_expression "ntlmbuf[0xe]" identifier [ number_literal ]) = (subscript_expression "entropy_1[6]" identifier [ number_literal ])) ;) (expression_statement "ntlmbuf[0xf] = entropy_1[7];" (assignment_expression "ntlmbuf[0xf] = entropy_1[7]" (subscript_expression "ntlmbuf[0xf]" identifier [ number_literal ]) = (subscript_expression "entropy_1[7]" identifier [ number_literal ])) ;) (expression_statement "CVar6 = Curl_ssl_md5sum(ntlmbuf,0x10,md5sum,0x10);" (assignment_expression "CVar6 = Curl_ssl_md5sum(ntlmbuf,0x10,md5sum,0x10)" identifier = (call_expression "Curl_ssl_md5sum(ntlmbuf,0x10,md5sum,0x10)" identifier (argument_list "(ntlmbuf,0x10,md5sum,0x10)" ( identifier , number_literal , identifier , number_literal )))) ;) (if_statement "if ((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK))\n      goto LAB_001641e5;" if (parenthesized_expression "((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK))" ( (binary_expression "(CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK)" (parenthesized_expression "(CVar6 != CURLE_OK)" ( (binary_expression "CVar6 != CURLE_OK" identifier != identifier) )) || (parenthesized_expression "(CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK)" ( (comma_expression "CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK" (assignment_expression "CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer)" identifier = (call_expression "Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer)" identifier (argument_list "(data,passwdp,ntbuffer)" ( identifier , identifier , identifier )))) , (binary_expression "CVar6 != CURLE_OK" identifier != identifier)) ))) )) (goto_statement "goto LAB_001641e5;" goto statement_identifier ;)) (expression_statement "local_8e8 = ntresp;" (assignment_expression "local_8e8 = ntresp" identifier = identifier) ;) (expression_statement "Curl_ntlm_core_lm_resp(ntbuffer,md5sum,local_8e8);" (call_expression "Curl_ntlm_core_lm_resp(ntbuffer,md5sum,local_8e8)" identifier (argument_list "(ntbuffer,md5sum,local_8e8)" ( identifier , identifier , identifier ))) ;) }))) }) (else_clause "else {\n    CVar6 = Curl_rand(data,ntresp,8);\n    if ((((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK)) ||\n        (CVar6 = Curl_ntlm_core_mk_ntlmv2_hash(local_920,userlen,pcVar11,local_918,ntbuffer,ntlmbuf)\n        , CVar6 != CURLE_OK)) ||\n       ((CVar6 = Curl_ntlm_core_mk_lmv2_resp(ntlmbuf,ntresp,ntlm->nonce,lmresp), CVar6 != CURLE_OK\n        || (CVar6 = Curl_ntlm_core_mk_ntlmv2_resp(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen),\n           CVar6 != CURLE_OK)))) goto LAB_001641e5;\n    local_8e8 = ntlmv2resp;\n  }" else (compound_statement "{\n    CVar6 = Curl_rand(data,ntresp,8);\n    if ((((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK)) ||\n        (CVar6 = Curl_ntlm_core_mk_ntlmv2_hash(local_920,userlen,pcVar11,local_918,ntbuffer,ntlmbuf)\n        , CVar6 != CURLE_OK)) ||\n       ((CVar6 = Curl_ntlm_core_mk_lmv2_resp(ntlmbuf,ntresp,ntlm->nonce,lmresp), CVar6 != CURLE_OK\n        || (CVar6 = Curl_ntlm_core_mk_ntlmv2_resp(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen),\n           CVar6 != CURLE_OK)))) goto LAB_001641e5;\n    local_8e8 = ntlmv2resp;\n  }" { (expression_statement "CVar6 = Curl_rand(data,ntresp,8);" (assignment_expression "CVar6 = Curl_rand(data,ntresp,8)" identifier = (call_expression "Curl_rand(data,ntresp,8)" identifier (argument_list "(data,ntresp,8)" ( identifier , identifier , number_literal )))) ;) (if_statement "if ((((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK)) ||\n        (CVar6 = Curl_ntlm_core_mk_ntlmv2_hash(local_920,userlen,pcVar11,local_918,ntbuffer,ntlmbuf)\n        , CVar6 != CURLE_OK)) ||\n       ((CVar6 = Curl_ntlm_core_mk_lmv2_resp(ntlmbuf,ntresp,ntlm->nonce,lmresp), CVar6 != CURLE_OK\n        || (CVar6 = Curl_ntlm_core_mk_ntlmv2_resp(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen),\n           CVar6 != CURLE_OK)))) goto LAB_001641e5;" if (parenthesized_expression "((((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK)) ||\n        (CVar6 = Curl_ntlm_core_mk_ntlmv2_hash(local_920,userlen,pcVar11,local_918,ntbuffer,ntlmbuf)\n        , CVar6 != CURLE_OK)) ||\n       ((CVar6 = Curl_ntlm_core_mk_lmv2_resp(ntlmbuf,ntresp,ntlm->nonce,lmresp), CVar6 != CURLE_OK\n        || (CVar6 = Curl_ntlm_core_mk_ntlmv2_resp(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen),\n           CVar6 != CURLE_OK))))" ( (binary_expression "(((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK)) ||\n        (CVar6 = Curl_ntlm_core_mk_ntlmv2_hash(local_920,userlen,pcVar11,local_918,ntbuffer,ntlmbuf)\n        , CVar6 != CURLE_OK)) ||\n       ((CVar6 = Curl_ntlm_core_mk_lmv2_resp(ntlmbuf,ntresp,ntlm->nonce,lmresp), CVar6 != CURLE_OK\n        || (CVar6 = Curl_ntlm_core_mk_ntlmv2_resp(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen),\n           CVar6 != CURLE_OK)))" (parenthesized_expression "(((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK)) ||\n        (CVar6 = Curl_ntlm_core_mk_ntlmv2_hash(local_920,userlen,pcVar11,local_918,ntbuffer,ntlmbuf)\n        , CVar6 != CURLE_OK))" ( (binary_expression "((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK)) ||\n        (CVar6 = Curl_ntlm_core_mk_ntlmv2_hash(local_920,userlen,pcVar11,local_918,ntbuffer,ntlmbuf)\n        , CVar6 != CURLE_OK)" (parenthesized_expression "((CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK))" ( (binary_expression "(CVar6 != CURLE_OK) ||\n         (CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK)" (parenthesized_expression "(CVar6 != CURLE_OK)" ( (binary_expression "CVar6 != CURLE_OK" identifier != identifier) )) || (parenthesized_expression "(CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK)" ( (comma_expression "CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer), CVar6 != CURLE_OK" (assignment_expression "CVar6 = Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer)" identifier = (call_expression "Curl_ntlm_core_mk_nt_hash(data,passwdp,ntbuffer)" identifier (argument_list "(data,passwdp,ntbuffer)" ( identifier , identifier , identifier )))) , (binary_expression "CVar6 != CURLE_OK" identifier != identifier)) ))) )) || (parenthesized_expression "(CVar6 = Curl_ntlm_core_mk_ntlmv2_hash(local_920,userlen,pcVar11,local_918,ntbuffer,ntlmbuf)\n        , CVar6 != CURLE_OK)" ( (comma_expression "CVar6 = Curl_ntlm_core_mk_ntlmv2_hash(local_920,userlen,pcVar11,local_918,ntbuffer,ntlmbuf)\n        , CVar6 != CURLE_OK" (assignment_expression "CVar6 = Curl_ntlm_core_mk_ntlmv2_hash(local_920,userlen,pcVar11,local_918,ntbuffer,ntlmbuf)" identifier = (call_expression "Curl_ntlm_core_mk_ntlmv2_hash(local_920,userlen,pcVar11,local_918,ntbuffer,ntlmbuf)" identifier (argument_list "(local_920,userlen,pcVar11,local_918,ntbuffer,ntlmbuf)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) , (binary_expression "CVar6 != CURLE_OK" identifier != identifier)) ))) )) || (parenthesized_expression "((CVar6 = Curl_ntlm_core_mk_lmv2_resp(ntlmbuf,ntresp,ntlm->nonce,lmresp), CVar6 != CURLE_OK\n        || (CVar6 = Curl_ntlm_core_mk_ntlmv2_resp(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen),\n           CVar6 != CURLE_OK)))" ( (parenthesized_expression "(CVar6 = Curl_ntlm_core_mk_lmv2_resp(ntlmbuf,ntresp,ntlm->nonce,lmresp), CVar6 != CURLE_OK\n        || (CVar6 = Curl_ntlm_core_mk_ntlmv2_resp(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen),\n           CVar6 != CURLE_OK))" ( (comma_expression "CVar6 = Curl_ntlm_core_mk_lmv2_resp(ntlmbuf,ntresp,ntlm->nonce,lmresp), CVar6 != CURLE_OK\n        || (CVar6 = Curl_ntlm_core_mk_ntlmv2_resp(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen),\n           CVar6 != CURLE_OK)" (assignment_expression "CVar6 = Curl_ntlm_core_mk_lmv2_resp(ntlmbuf,ntresp,ntlm->nonce,lmresp)" identifier = (call_expression "Curl_ntlm_core_mk_lmv2_resp(ntlmbuf,ntresp,ntlm->nonce,lmresp)" identifier (argument_list "(ntlmbuf,ntresp,ntlm->nonce,lmresp)" ( identifier , identifier , (field_expression "ntlm->nonce" identifier -> field_identifier) , identifier )))) , (binary_expression "CVar6 != CURLE_OK\n        || (CVar6 = Curl_ntlm_core_mk_ntlmv2_resp(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen),\n           CVar6 != CURLE_OK)" (binary_expression "CVar6 != CURLE_OK" identifier != identifier) || (parenthesized_expression "(CVar6 = Curl_ntlm_core_mk_ntlmv2_resp(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen),\n           CVar6 != CURLE_OK)" ( (comma_expression "CVar6 = Curl_ntlm_core_mk_ntlmv2_resp(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen),\n           CVar6 != CURLE_OK" (assignment_expression "CVar6 = Curl_ntlm_core_mk_ntlmv2_resp(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen)" identifier = (call_expression "Curl_ntlm_core_mk_ntlmv2_resp(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen)" identifier (argument_list "(ntlmbuf,ntresp,ntlm,&ntlmv2resp,&ntresplen)" ( identifier , identifier , identifier , (pointer_expression "&ntlmv2resp" & identifier) , (pointer_expression "&ntresplen" & identifier) )))) , (binary_expression "CVar6 != CURLE_OK" identifier != identifier)) )))) )) ))) )) (goto_statement "goto LAB_001641e5;" goto statement_identifier ;)) (expression_statement "local_8e8 = ntlmv2resp;" (assignment_expression "local_8e8 = ntlmv2resp" identifier = identifier) ;) }))) (expression_statement "uVar15 = uVar15 & 1;" (assignment_expression "uVar15 = uVar15 & 1" identifier = (binary_expression "uVar15 & 1" identifier & number_literal)) ;) (if_statement "if (uVar15 != 0) {\n    local_918 = local_918 << 1;\n    userlen = userlen * 2;\n    local_908 = local_908 << 1;\n  }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n    local_918 = local_918 << 1;\n    userlen = userlen * 2;\n    local_908 = local_908 << 1;\n  }" { (expression_statement "local_918 = local_918 << 1;" (assignment_expression "local_918 = local_918 << 1" identifier = (binary_expression "local_918 << 1" identifier << number_literal)) ;) (expression_statement "userlen = userlen * 2;" (assignment_expression "userlen = userlen * 2" identifier = (binary_expression "userlen * 2" identifier * number_literal)) ;) (expression_statement "local_908 = local_908 << 1;" (assignment_expression "local_908 = local_908 << 1" identifier = (binary_expression "local_908 << 1" identifier << number_literal)) ;) })) (expression_statement "uVar1 = ntresplen + 0x58;" (assignment_expression "uVar1 = ntresplen + 0x58" identifier = (binary_expression "ntresplen + 0x58" identifier + number_literal)) ;) (expression_statement "uVar8 = local_918 + uVar1;" (assignment_expression "uVar8 = local_918 + uVar1" identifier = (binary_expression "local_918 + uVar1" identifier + identifier)) ;) (expression_statement "uVar3 = ntlm->flags;" (assignment_expression "uVar3 = ntlm->flags" identifier = (field_expression "ntlm->flags" identifier -> field_identifier)) ;) (expression_statement "uVar9 = (userlen & 0xffffffff) >> 8 & 0xff;" (assignment_expression "uVar9 = (userlen & 0xffffffff) >> 8 & 0xff" identifier = (binary_expression "(userlen & 0xffffffff) >> 8 & 0xff" (binary_expression "(userlen & 0xffffffff) >> 8" (parenthesized_expression "(userlen & 0xffffffff)" ( (binary_expression "userlen & 0xffffffff" identifier & number_literal) )) >> number_literal) & number_literal)) ;) (expression_statement "uVar14 = (ulong)(ntresplen >> 8 & 0xff);" (assignment_expression "uVar14 = (ulong)(ntresplen >> 8 & 0xff)" identifier = (call_expression "(ulong)(ntresplen >> 8 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(ntresplen >> 8 & 0xff)" ( (binary_expression "ntresplen >> 8 & 0xff" (binary_expression "ntresplen >> 8" identifier >> number_literal) & number_literal) )))) ;) (expression_statement "uVar10 = local_918 >> 8 & 0xff;" (assignment_expression "uVar10 = local_918 >> 8 & 0xff" identifier = (binary_expression "local_918 >> 8 & 0xff" (binary_expression "local_918 >> 8" identifier >> number_literal) & number_literal)) ;) (expression_statement "iVar5 = curl_msnprintf((char *)ntlmbuf,0x400,\n                         "NTLMSSP%c\x03%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"\n                         ,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,(ulong)(ntresplen & 0xff),uVar14,\n                         (ulong)(ntresplen & 0xff),uVar14,0x58,0,0,0,local_918 & 0xff,uVar10,\n                         local_918 & 0xff,uVar10,(ulong)uVar1 & 0xff,(ulong)(uVar1 >> 8) & 0xff,0,0,\n                         userlen & 0xff,uVar9,userlen & 0xff,uVar9,uVar8 & 0xff,uVar8 >> 8 & 0xff,0,\n                         0,local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         userlen + uVar8 & 0xff,userlen + uVar8 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         (ulong)(uVar3 & 0xff),(ulong)(uVar3 >> 8 & 0xff),\n                         (ulong)(uVar3 >> 0x10 & 0xff),(ulong)(uVar3 >> 0x18));" (assignment_expression "iVar5 = curl_msnprintf((char *)ntlmbuf,0x400,\n                         "NTLMSSP%c\x03%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"\n                         ,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,(ulong)(ntresplen & 0xff),uVar14,\n                         (ulong)(ntresplen & 0xff),uVar14,0x58,0,0,0,local_918 & 0xff,uVar10,\n                         local_918 & 0xff,uVar10,(ulong)uVar1 & 0xff,(ulong)(uVar1 >> 8) & 0xff,0,0,\n                         userlen & 0xff,uVar9,userlen & 0xff,uVar9,uVar8 & 0xff,uVar8 >> 8 & 0xff,0,\n                         0,local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         userlen + uVar8 & 0xff,userlen + uVar8 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         (ulong)(uVar3 & 0xff),(ulong)(uVar3 >> 8 & 0xff),\n                         (ulong)(uVar3 >> 0x10 & 0xff),(ulong)(uVar3 >> 0x18))" identifier = (call_expression "curl_msnprintf((char *)ntlmbuf,0x400,\n                         "NTLMSSP%c\x03%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"\n                         ,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,(ulong)(ntresplen & 0xff),uVar14,\n                         (ulong)(ntresplen & 0xff),uVar14,0x58,0,0,0,local_918 & 0xff,uVar10,\n                         local_918 & 0xff,uVar10,(ulong)uVar1 & 0xff,(ulong)(uVar1 >> 8) & 0xff,0,0,\n                         userlen & 0xff,uVar9,userlen & 0xff,uVar9,uVar8 & 0xff,uVar8 >> 8 & 0xff,0,\n                         0,local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         userlen + uVar8 & 0xff,userlen + uVar8 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         (ulong)(uVar3 & 0xff),(ulong)(uVar3 >> 8 & 0xff),\n                         (ulong)(uVar3 >> 0x10 & 0xff),(ulong)(uVar3 >> 0x18))" identifier (argument_list "((char *)ntlmbuf,0x400,\n                         "NTLMSSP%c\x03%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"\n                         ,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,(ulong)(ntresplen & 0xff),uVar14,\n                         (ulong)(ntresplen & 0xff),uVar14,0x58,0,0,0,local_918 & 0xff,uVar10,\n                         local_918 & 0xff,uVar10,(ulong)uVar1 & 0xff,(ulong)(uVar1 >> 8) & 0xff,0,0,\n                         userlen & 0xff,uVar9,userlen & 0xff,uVar9,uVar8 & 0xff,uVar8 >> 8 & 0xff,0,\n                         0,local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         userlen + uVar8 & 0xff,userlen + uVar8 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         (ulong)(uVar3 & 0xff),(ulong)(uVar3 >> 8 & 0xff),\n                         (ulong)(uVar3 >> 0x10 & 0xff),(ulong)(uVar3 >> 0x18))" ( (cast_expression "(char *)ntlmbuf" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (string_literal ""NTLMSSP%c\x03%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"" " string_content escape_sequence string_content ") , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , (call_expression "(ulong)(ntresplen & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(ntresplen & 0xff)" ( (binary_expression "ntresplen & 0xff" identifier & number_literal) ))) , identifier , (call_expression "(ulong)(ntresplen & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(ntresplen & 0xff)" ( (binary_expression "ntresplen & 0xff" identifier & number_literal) ))) , identifier , number_literal , number_literal , number_literal , number_literal , (binary_expression "local_918 & 0xff" identifier & number_literal) , identifier , (binary_expression "local_918 & 0xff" identifier & number_literal) , identifier , (binary_expression "(ulong)uVar1 & 0xff" (cast_expression "(ulong)uVar1" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) , (binary_expression "(ulong)(uVar1 >> 8) & 0xff" (call_expression "(ulong)(uVar1 >> 8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar1 >> 8)" ( (binary_expression "uVar1 >> 8" identifier >> number_literal) ))) & number_literal) , number_literal , number_literal , (binary_expression "userlen & 0xff" identifier & number_literal) , identifier , (binary_expression "userlen & 0xff" identifier & number_literal) , identifier , (binary_expression "uVar8 & 0xff" identifier & number_literal) , (binary_expression "uVar8 >> 8 & 0xff" (binary_expression "uVar8 >> 8" identifier >> number_literal) & number_literal) , number_literal , number_literal , (binary_expression "local_908 & 0xff" identifier & number_literal) , (binary_expression "local_908 >> 8" identifier >> number_literal) , (binary_expression "local_908 & 0xff" identifier & number_literal) , (binary_expression "local_908 >> 8" identifier >> number_literal) , (binary_expression "userlen + uVar8 & 0xff" (binary_expression "userlen + uVar8" identifier + identifier) & number_literal) , (binary_expression "userlen + uVar8 >> 8 & 0xff" (binary_expression "userlen + uVar8 >> 8" (binary_expression "userlen + uVar8" identifier + identifier) >> number_literal) & number_literal) , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , (call_expression "(ulong)(uVar3 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 & 0xff)" ( (binary_expression "uVar3 & 0xff" identifier & number_literal) ))) , (call_expression "(ulong)(uVar3 >> 8 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 8 & 0xff)" ( (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) ))) , (call_expression "(ulong)(uVar3 >> 0x10 & 0xff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x10 & 0xff)" ( (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) ))) , (call_expression "(ulong)(uVar3 >> 0x18)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 >> 0x18)" ( (binary_expression "uVar3 >> 0x18" identifier >> number_literal) ))) )))) ;) (expression_statement "uVar8 = (ulong)iVar5;" (assignment_expression "uVar8 = (ulong)iVar5" identifier = (cast_expression "(ulong)iVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar8 < 1000) {\n    *(undefined8 *)(ntlmbuf + uVar8) = lmresp._0_8_;\n    *(undefined8 *)(ntlmbuf + uVar8 + 8) = lmresp._8_8_;\n    *(undefined8 *)(ntlmbuf + uVar8 + 0x10) = lmresp._16_8_;\n    uVar8 = uVar8 + 0x18;\n  }" if (parenthesized_expression "(uVar8 < 1000)" ( (binary_expression "uVar8 < 1000" identifier < number_literal) )) (compound_statement "{\n    *(undefined8 *)(ntlmbuf + uVar8) = lmresp._0_8_;\n    *(undefined8 *)(ntlmbuf + uVar8 + 8) = lmresp._8_8_;\n    *(undefined8 *)(ntlmbuf + uVar8 + 0x10) = lmresp._16_8_;\n    uVar8 = uVar8 + 0x18;\n  }" { (expression_statement "*(undefined8 *)(ntlmbuf + uVar8) = lmresp._0_8_;" (assignment_expression "*(undefined8 *)(ntlmbuf + uVar8) = lmresp._0_8_" (pointer_expression "*(undefined8 *)(ntlmbuf + uVar8)" * (cast_expression "(undefined8 *)(ntlmbuf + uVar8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ntlmbuf + uVar8)" ( (binary_expression "ntlmbuf + uVar8" identifier + identifier) )))) = (field_expression "lmresp._0_8_" identifier . field_identifier)) ;) (expression_statement "*(undefined8 *)(ntlmbuf + uVar8 + 8) = lmresp._8_8_;" (assignment_expression "*(undefined8 *)(ntlmbuf + uVar8 + 8) = lmresp._8_8_" (pointer_expression "*(undefined8 *)(ntlmbuf + uVar8 + 8)" * (cast_expression "(undefined8 *)(ntlmbuf + uVar8 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ntlmbuf + uVar8 + 8)" ( (binary_expression "ntlmbuf + uVar8 + 8" (binary_expression "ntlmbuf + uVar8" identifier + identifier) + number_literal) )))) = (field_expression "lmresp._8_8_" identifier . field_identifier)) ;) (expression_statement "*(undefined8 *)(ntlmbuf + uVar8 + 0x10) = lmresp._16_8_;" (assignment_expression "*(undefined8 *)(ntlmbuf + uVar8 + 0x10) = lmresp._16_8_" (pointer_expression "*(undefined8 *)(ntlmbuf + uVar8 + 0x10)" * (cast_expression "(undefined8 *)(ntlmbuf + uVar8 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ntlmbuf + uVar8 + 0x10)" ( (binary_expression "ntlmbuf + uVar8 + 0x10" (binary_expression "ntlmbuf + uVar8" identifier + identifier) + number_literal) )))) = (field_expression "lmresp._16_8_" identifier . field_identifier)) ;) (expression_statement "uVar8 = uVar8 + 0x18;" (assignment_expression "uVar8 = uVar8 + 0x18" identifier = (binary_expression "uVar8 + 0x18" identifier + number_literal)) ;) })) (expression_statement "uVar9 = ntresplen + uVar8;" (assignment_expression "uVar9 = ntresplen + uVar8" identifier = (binary_expression "ntresplen + uVar8" identifier + identifier)) ;) (if_statement "if (uVar9 < 0x401) {\n    memcpy(ntlmbuf + uVar8,local_8e8,(ulong)ntresplen);\n    (*Curl_cfree)(ntlmv2resp);\n    if (local_908 + userlen + local_918 + uVar9 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy(ntlmbuf + uVar9,pcVar11,local_918);\n        memcpy(ntlmbuf + uVar9 + local_918,local_920,userlen);\n        lVar7 = uVar9 + local_918 + userlen;\n        puVar16 = ntlmbuf + lVar7;\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *puVar16 = host[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);\n              }\n            }\n          }\n          else {\n            *(undefined4 *)puVar16 = host._0_4_;\n            *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4) =\n                 *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc);\n          }\n        }\n        else {\n          *(undefined8 *)puVar16 = host._0_8_;\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar7) =\n               *(undefined8 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3f8);\n          lVar17 = (long)puVar16 - (long)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          pcVar11 = host + -lVar17;\n          puVar13 = (undefined8 *)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          for (uVar8 = (ulong)(uVar15 + (int)lVar17 >> 3); uVar8 != 0; uVar8 = uVar8 - 1) {\n            *puVar13 = *(undefined8 *)pcVar11;\n            pcVar11 = pcVar11 + ((ulong)bVar18 * -2 + 1) * 8;\n            puVar13 = puVar13 + (ulong)bVar18 * -2 + 1;\n          }\n        }\n      }\n      else {\n        unicodecpy(ntlmbuf + uVar9,pcVar11,local_918 >> 1);\n        unicodecpy(ntlmbuf + uVar9 + local_918,local_920,userlen >> 1);\n        lVar7 = uVar9 + local_918 + userlen;\n        unicodecpy(ntlmbuf + lVar7,host,local_908 >> 1);\n      }\n      CVar6 = Curl_base64_encode(data,(char *)ntlmbuf,local_908 + lVar7,outptr,outlen);\n      Curl_auth_ntlm_cleanup(ntlm);\n    }\n    else {\n      Curl_failf(data,"user + domain + host name too big");\n      CVar6 = CURLE_OUT_OF_MEMORY;\n    }\n  }\n  else {\n    Curl_failf(data,"incoming NTLM message too big");\n    CVar6 = CURLE_OUT_OF_MEMORY;\n  }" if (parenthesized_expression "(uVar9 < 0x401)" ( (binary_expression "uVar9 < 0x401" identifier < number_literal) )) (compound_statement "{\n    memcpy(ntlmbuf + uVar8,local_8e8,(ulong)ntresplen);\n    (*Curl_cfree)(ntlmv2resp);\n    if (local_908 + userlen + local_918 + uVar9 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy(ntlmbuf + uVar9,pcVar11,local_918);\n        memcpy(ntlmbuf + uVar9 + local_918,local_920,userlen);\n        lVar7 = uVar9 + local_918 + userlen;\n        puVar16 = ntlmbuf + lVar7;\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *puVar16 = host[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);\n              }\n            }\n          }\n          else {\n            *(undefined4 *)puVar16 = host._0_4_;\n            *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4) =\n                 *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc);\n          }\n        }\n        else {\n          *(undefined8 *)puVar16 = host._0_8_;\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar7) =\n               *(undefined8 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3f8);\n          lVar17 = (long)puVar16 - (long)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          pcVar11 = host + -lVar17;\n          puVar13 = (undefined8 *)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          for (uVar8 = (ulong)(uVar15 + (int)lVar17 >> 3); uVar8 != 0; uVar8 = uVar8 - 1) {\n            *puVar13 = *(undefined8 *)pcVar11;\n            pcVar11 = pcVar11 + ((ulong)bVar18 * -2 + 1) * 8;\n            puVar13 = puVar13 + (ulong)bVar18 * -2 + 1;\n          }\n        }\n      }\n      else {\n        unicodecpy(ntlmbuf + uVar9,pcVar11,local_918 >> 1);\n        unicodecpy(ntlmbuf + uVar9 + local_918,local_920,userlen >> 1);\n        lVar7 = uVar9 + local_918 + userlen;\n        unicodecpy(ntlmbuf + lVar7,host,local_908 >> 1);\n      }\n      CVar6 = Curl_base64_encode(data,(char *)ntlmbuf,local_908 + lVar7,outptr,outlen);\n      Curl_auth_ntlm_cleanup(ntlm);\n    }\n    else {\n      Curl_failf(data,"user + domain + host name too big");\n      CVar6 = CURLE_OUT_OF_MEMORY;\n    }\n  }" { (expression_statement "memcpy(ntlmbuf + uVar8,local_8e8,(ulong)ntresplen);" (call_expression "memcpy(ntlmbuf + uVar8,local_8e8,(ulong)ntresplen)" identifier (argument_list "(ntlmbuf + uVar8,local_8e8,(ulong)ntresplen)" ( (binary_expression "ntlmbuf + uVar8" identifier + identifier) , identifier , (cast_expression "(ulong)ntresplen" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (expression_statement "(*Curl_cfree)(ntlmv2resp);" (call_expression "(*Curl_cfree)(ntlmv2resp)" (parenthesized_expression "(*Curl_cfree)" ( (pointer_expression "*Curl_cfree" * identifier) )) (argument_list "(ntlmv2resp)" ( identifier ))) ;) (if_statement "if (local_908 + userlen + local_918 + uVar9 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy(ntlmbuf + uVar9,pcVar11,local_918);\n        memcpy(ntlmbuf + uVar9 + local_918,local_920,userlen);\n        lVar7 = uVar9 + local_918 + userlen;\n        puVar16 = ntlmbuf + lVar7;\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *puVar16 = host[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);\n              }\n            }\n          }\n          else {\n            *(undefined4 *)puVar16 = host._0_4_;\n            *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4) =\n                 *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc);\n          }\n        }\n        else {\n          *(undefined8 *)puVar16 = host._0_8_;\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar7) =\n               *(undefined8 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3f8);\n          lVar17 = (long)puVar16 - (long)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          pcVar11 = host + -lVar17;\n          puVar13 = (undefined8 *)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          for (uVar8 = (ulong)(uVar15 + (int)lVar17 >> 3); uVar8 != 0; uVar8 = uVar8 - 1) {\n            *puVar13 = *(undefined8 *)pcVar11;\n            pcVar11 = pcVar11 + ((ulong)bVar18 * -2 + 1) * 8;\n            puVar13 = puVar13 + (ulong)bVar18 * -2 + 1;\n          }\n        }\n      }\n      else {\n        unicodecpy(ntlmbuf + uVar9,pcVar11,local_918 >> 1);\n        unicodecpy(ntlmbuf + uVar9 + local_918,local_920,userlen >> 1);\n        lVar7 = uVar9 + local_918 + userlen;\n        unicodecpy(ntlmbuf + lVar7,host,local_908 >> 1);\n      }\n      CVar6 = Curl_base64_encode(data,(char *)ntlmbuf,local_908 + lVar7,outptr,outlen);\n      Curl_auth_ntlm_cleanup(ntlm);\n    }\n    else {\n      Curl_failf(data,"user + domain + host name too big");\n      CVar6 = CURLE_OUT_OF_MEMORY;\n    }" if (parenthesized_expression "(local_908 + userlen + local_918 + uVar9 < 0x400)" ( (binary_expression "local_908 + userlen + local_918 + uVar9 < 0x400" (binary_expression "local_908 + userlen + local_918 + uVar9" (binary_expression "local_908 + userlen + local_918" (binary_expression "local_908 + userlen" identifier + identifier) + identifier) + identifier) < number_literal) )) (compound_statement "{\n      if (uVar15 == 0) {\n        memcpy(ntlmbuf + uVar9,pcVar11,local_918);\n        memcpy(ntlmbuf + uVar9 + local_918,local_920,userlen);\n        lVar7 = uVar9 + local_918 + userlen;\n        puVar16 = ntlmbuf + lVar7;\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *puVar16 = host[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);\n              }\n            }\n          }\n          else {\n            *(undefined4 *)puVar16 = host._0_4_;\n            *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4) =\n                 *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc);\n          }\n        }\n        else {\n          *(undefined8 *)puVar16 = host._0_8_;\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar7) =\n               *(undefined8 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3f8);\n          lVar17 = (long)puVar16 - (long)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          pcVar11 = host + -lVar17;\n          puVar13 = (undefined8 *)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          for (uVar8 = (ulong)(uVar15 + (int)lVar17 >> 3); uVar8 != 0; uVar8 = uVar8 - 1) {\n            *puVar13 = *(undefined8 *)pcVar11;\n            pcVar11 = pcVar11 + ((ulong)bVar18 * -2 + 1) * 8;\n            puVar13 = puVar13 + (ulong)bVar18 * -2 + 1;\n          }\n        }\n      }\n      else {\n        unicodecpy(ntlmbuf + uVar9,pcVar11,local_918 >> 1);\n        unicodecpy(ntlmbuf + uVar9 + local_918,local_920,userlen >> 1);\n        lVar7 = uVar9 + local_918 + userlen;\n        unicodecpy(ntlmbuf + lVar7,host,local_908 >> 1);\n      }\n      CVar6 = Curl_base64_encode(data,(char *)ntlmbuf,local_908 + lVar7,outptr,outlen);\n      Curl_auth_ntlm_cleanup(ntlm);\n    }" { (if_statement "if (uVar15 == 0) {\n        memcpy(ntlmbuf + uVar9,pcVar11,local_918);\n        memcpy(ntlmbuf + uVar9 + local_918,local_920,userlen);\n        lVar7 = uVar9 + local_918 + userlen;\n        puVar16 = ntlmbuf + lVar7;\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *puVar16 = host[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);\n              }\n            }\n          }\n          else {\n            *(undefined4 *)puVar16 = host._0_4_;\n            *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4) =\n                 *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc);\n          }\n        }\n        else {\n          *(undefined8 *)puVar16 = host._0_8_;\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar7) =\n               *(undefined8 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3f8);\n          lVar17 = (long)puVar16 - (long)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          pcVar11 = host + -lVar17;\n          puVar13 = (undefined8 *)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          for (uVar8 = (ulong)(uVar15 + (int)lVar17 >> 3); uVar8 != 0; uVar8 = uVar8 - 1) {\n            *puVar13 = *(undefined8 *)pcVar11;\n            pcVar11 = pcVar11 + ((ulong)bVar18 * -2 + 1) * 8;\n            puVar13 = puVar13 + (ulong)bVar18 * -2 + 1;\n          }\n        }\n      }\n      else {\n        unicodecpy(ntlmbuf + uVar9,pcVar11,local_918 >> 1);\n        unicodecpy(ntlmbuf + uVar9 + local_918,local_920,userlen >> 1);\n        lVar7 = uVar9 + local_918 + userlen;\n        unicodecpy(ntlmbuf + lVar7,host,local_908 >> 1);\n      }" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (compound_statement "{\n        memcpy(ntlmbuf + uVar9,pcVar11,local_918);\n        memcpy(ntlmbuf + uVar9 + local_918,local_920,userlen);\n        lVar7 = uVar9 + local_918 + userlen;\n        puVar16 = ntlmbuf + lVar7;\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *puVar16 = host[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);\n              }\n            }\n          }\n          else {\n            *(undefined4 *)puVar16 = host._0_4_;\n            *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4) =\n                 *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc);\n          }\n        }\n        else {\n          *(undefined8 *)puVar16 = host._0_8_;\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar7) =\n               *(undefined8 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3f8);\n          lVar17 = (long)puVar16 - (long)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          pcVar11 = host + -lVar17;\n          puVar13 = (undefined8 *)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          for (uVar8 = (ulong)(uVar15 + (int)lVar17 >> 3); uVar8 != 0; uVar8 = uVar8 - 1) {\n            *puVar13 = *(undefined8 *)pcVar11;\n            pcVar11 = pcVar11 + ((ulong)bVar18 * -2 + 1) * 8;\n            puVar13 = puVar13 + (ulong)bVar18 * -2 + 1;\n          }\n        }\n      }" { (expression_statement "memcpy(ntlmbuf + uVar9,pcVar11,local_918);" (call_expression "memcpy(ntlmbuf + uVar9,pcVar11,local_918)" identifier (argument_list "(ntlmbuf + uVar9,pcVar11,local_918)" ( (binary_expression "ntlmbuf + uVar9" identifier + identifier) , identifier , identifier ))) ;) (expression_statement "memcpy(ntlmbuf + uVar9 + local_918,local_920,userlen);" (call_expression "memcpy(ntlmbuf + uVar9 + local_918,local_920,userlen)" identifier (argument_list "(ntlmbuf + uVar9 + local_918,local_920,userlen)" ( (binary_expression "ntlmbuf + uVar9 + local_918" (binary_expression "ntlmbuf + uVar9" identifier + identifier) + identifier) , identifier , identifier ))) ;) (expression_statement "lVar7 = uVar9 + local_918 + userlen;" (assignment_expression "lVar7 = uVar9 + local_918 + userlen" identifier = (binary_expression "uVar9 + local_918 + userlen" (binary_expression "uVar9 + local_918" identifier + identifier) + identifier)) ;) (expression_statement "puVar16 = ntlmbuf + lVar7;" (assignment_expression "puVar16 = ntlmbuf + lVar7" identifier = (binary_expression "ntlmbuf + lVar7" identifier + identifier)) ;) (expression_statement "uVar15 = (uint)local_908;" (assignment_expression "uVar15 = (uint)local_908" identifier = (cast_expression "(uint)local_908" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *puVar16 = host[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);\n              }\n            }\n          }\n          else {\n            *(undefined4 *)puVar16 = host._0_4_;\n            *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4) =\n                 *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc);\n          }\n        }\n        else {\n          *(undefined8 *)puVar16 = host._0_8_;\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar7) =\n               *(undefined8 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3f8);\n          lVar17 = (long)puVar16 - (long)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          pcVar11 = host + -lVar17;\n          puVar13 = (undefined8 *)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          for (uVar8 = (ulong)(uVar15 + (int)lVar17 >> 3); uVar8 != 0; uVar8 = uVar8 - 1) {\n            *puVar13 = *(undefined8 *)pcVar11;\n            pcVar11 = pcVar11 + ((ulong)bVar18 * -2 + 1) * 8;\n            puVar13 = puVar13 + (ulong)bVar18 * -2 + 1;\n          }\n        }" if (parenthesized_expression "(uVar15 < 8)" ( (binary_expression "uVar15 < 8" identifier < number_literal) )) (compound_statement "{\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *puVar16 = host[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);\n              }\n            }\n          }\n          else {\n            *(undefined4 *)puVar16 = host._0_4_;\n            *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4) =\n                 *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc);\n          }\n        }" { (if_statement "if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *puVar16 = host[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);\n              }\n            }\n          }\n          else {\n            *(undefined4 *)puVar16 = host._0_4_;\n            *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4) =\n                 *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc);\n          }" if (parenthesized_expression "((local_908 & 4) == 0)" ( (binary_expression "(local_908 & 4) == 0" (parenthesized_expression "(local_908 & 4)" ( (binary_expression "local_908 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if (uVar15 != 0) {\n              *puVar16 = host[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);\n              }\n            }\n          }" { (if_statement "if (uVar15 != 0) {\n              *puVar16 = host[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);\n              }\n            }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n              *puVar16 = host[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);\n              }\n            }" { (expression_statement "*puVar16 = host[0];" (assignment_expression "*puVar16 = host[0]" (pointer_expression "*puVar16" * identifier) = (subscript_expression "host[0]" identifier [ number_literal ])) ;) (if_statement "if ((local_908 & 2) != 0) {\n                *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);\n              }" if (parenthesized_expression "((local_908 & 2) != 0)" ( (binary_expression "(local_908 & 2) != 0" (parenthesized_expression "(local_908 & 2)" ( (binary_expression "local_908 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);\n              }" { (expression_statement "*(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe);" (assignment_expression "*(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2) =\n                     *(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe)" (pointer_expression "*(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2)" * (cast_expression "(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2)" ( (binary_expression "ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -2" (binary_expression "ntlmbuf + (local_908 & 0xffffffff) + lVar7" (binary_expression "ntlmbuf + (local_908 & 0xffffffff)" identifier + (parenthesized_expression "(local_908 & 0xffffffff)" ( (binary_expression "local_908 & 0xffffffff" identifier & number_literal) ))) + identifier) + number_literal) )))) = (pointer_expression "*(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe)" * (cast_expression "(undefined2 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ntlmbuf + (local_908 & 0xffffffff) + 0x3fe)" ( (binary_expression "ntlmbuf + (local_908 & 0xffffffff) + 0x3fe" (binary_expression "ntlmbuf + (local_908 & 0xffffffff)" identifier + (parenthesized_expression "(local_908 & 0xffffffff)" ( (binary_expression "local_908 & 0xffffffff" identifier & number_literal) ))) + number_literal) ))))) ;) })) })) }) (else_clause "else {\n            *(undefined4 *)puVar16 = host._0_4_;\n            *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4) =\n                 *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc);\n          }" else (compound_statement "{\n            *(undefined4 *)puVar16 = host._0_4_;\n            *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4) =\n                 *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc);\n          }" { (expression_statement "*(undefined4 *)puVar16 = host._0_4_;" (assignment_expression "*(undefined4 *)puVar16 = host._0_4_" (pointer_expression "*(undefined4 *)puVar16" * (cast_expression "(undefined4 *)puVar16" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "host._0_4_" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4) =\n                 *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc);" (assignment_expression "*(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4) =\n                 *(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc)" (pointer_expression "*(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4)" * (cast_expression "(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4)" ( (binary_expression "ntlmbuf + (local_908 & 0xffffffff) + lVar7 + -4" (binary_expression "ntlmbuf + (local_908 & 0xffffffff) + lVar7" (binary_expression "ntlmbuf + (local_908 & 0xffffffff)" identifier + (parenthesized_expression "(local_908 & 0xffffffff)" ( (binary_expression "local_908 & 0xffffffff" identifier & number_literal) ))) + identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc)" * (cast_expression "(undefined4 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ntlmbuf + (local_908 & 0xffffffff) + 0x3fc)" ( (binary_expression "ntlmbuf + (local_908 & 0xffffffff) + 0x3fc" (binary_expression "ntlmbuf + (local_908 & 0xffffffff)" identifier + (parenthesized_expression "(local_908 & 0xffffffff)" ( (binary_expression "local_908 & 0xffffffff" identifier & number_literal) ))) + number_literal) ))))) ;) }))) }) (else_clause "else {\n          *(undefined8 *)puVar16 = host._0_8_;\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar7) =\n               *(undefined8 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3f8);\n          lVar17 = (long)puVar16 - (long)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          pcVar11 = host + -lVar17;\n          puVar13 = (undefined8 *)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          for (uVar8 = (ulong)(uVar15 + (int)lVar17 >> 3); uVar8 != 0; uVar8 = uVar8 - 1) {\n            *puVar13 = *(undefined8 *)pcVar11;\n            pcVar11 = pcVar11 + ((ulong)bVar18 * -2 + 1) * 8;\n            puVar13 = puVar13 + (ulong)bVar18 * -2 + 1;\n          }\n        }" else (compound_statement "{\n          *(undefined8 *)puVar16 = host._0_8_;\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar7) =\n               *(undefined8 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3f8);\n          lVar17 = (long)puVar16 - (long)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          pcVar11 = host + -lVar17;\n          puVar13 = (undefined8 *)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);\n          for (uVar8 = (ulong)(uVar15 + (int)lVar17 >> 3); uVar8 != 0; uVar8 = uVar8 - 1) {\n            *puVar13 = *(undefined8 *)pcVar11;\n            pcVar11 = pcVar11 + ((ulong)bVar18 * -2 + 1) * 8;\n            puVar13 = puVar13 + (ulong)bVar18 * -2 + 1;\n          }\n        }" { (expression_statement "*(undefined8 *)puVar16 = host._0_8_;" (assignment_expression "*(undefined8 *)puVar16 = host._0_8_" (pointer_expression "*(undefined8 *)puVar16" * (cast_expression "(undefined8 *)puVar16" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "host._0_8_" identifier . field_identifier)) ;) (expression_statement "*(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar7) =\n               *(undefined8 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3f8);" (assignment_expression "*(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar7) =\n               *(undefined8 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3f8)" (pointer_expression "*(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar7)" * (cast_expression "(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar7)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&uStack_850 + (local_908 & 0xffffffff) + lVar7)" ( (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff) + lVar7" (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff)" (cast_expression "(long)&uStack_850" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&uStack_850" & identifier)) + (parenthesized_expression "(local_908 & 0xffffffff)" ( (binary_expression "local_908 & 0xffffffff" identifier & number_literal) ))) + identifier) )))) = (pointer_expression "*(undefined8 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3f8)" * (cast_expression "(undefined8 *)(ntlmbuf + (local_908 & 0xffffffff) + 0x3f8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ntlmbuf + (local_908 & 0xffffffff) + 0x3f8)" ( (binary_expression "ntlmbuf + (local_908 & 0xffffffff) + 0x3f8" (binary_expression "ntlmbuf + (local_908 & 0xffffffff)" identifier + (parenthesized_expression "(local_908 & 0xffffffff)" ( (binary_expression "local_908 & 0xffffffff" identifier & number_literal) ))) + number_literal) ))))) ;) (expression_statement "lVar17 = (long)puVar16 - (long)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);" (assignment_expression "lVar17 = (long)puVar16 - (long)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8)" identifier = (binary_expression "(long)puVar16 - (long)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8)" (cast_expression "(long)puVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8" (call_expression "(ulong)(ntlmbuf + lVar7 + 8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(ntlmbuf + lVar7 + 8)" ( (binary_expression "ntlmbuf + lVar7 + 8" (binary_expression "ntlmbuf + lVar7" identifier + identifier) + number_literal) ))) & number_literal) ))))) ;) (expression_statement "pcVar11 = host + -lVar17;" (assignment_expression "pcVar11 = host + -lVar17" identifier = (binary_expression "host + -lVar17" identifier + (unary_expression "-lVar17" - identifier))) ;) (expression_statement "puVar13 = (undefined8 *)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8);" (assignment_expression "puVar13 = (undefined8 *)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8)" identifier = (cast_expression "(undefined8 *)((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(ntlmbuf + lVar7 + 8) & 0xfffffffffffffff8" (call_expression "(ulong)(ntlmbuf + lVar7 + 8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(ntlmbuf + lVar7 + 8)" ( (binary_expression "ntlmbuf + lVar7 + 8" (binary_expression "ntlmbuf + lVar7" identifier + identifier) + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar8 = (ulong)(uVar15 + (int)lVar17 >> 3); uVar8 != 0; uVar8 = uVar8 - 1) {\n            *puVar13 = *(undefined8 *)pcVar11;\n            pcVar11 = pcVar11 + ((ulong)bVar18 * -2 + 1) * 8;\n            puVar13 = puVar13 + (ulong)bVar18 * -2 + 1;\n          }" for ( (assignment_expression "uVar8 = (ulong)(uVar15 + (int)lVar17 >> 3)" identifier = (call_expression "(ulong)(uVar15 + (int)lVar17 >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar15 + (int)lVar17 >> 3)" ( (binary_expression "uVar15 + (int)lVar17 >> 3" (binary_expression "uVar15 + (int)lVar17" identifier + (cast_expression "(int)lVar17" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) ; (binary_expression "uVar8 != 0" identifier != number_literal) ; (assignment_expression "uVar8 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ) (compound_statement "{\n            *puVar13 = *(undefined8 *)pcVar11;\n            pcVar11 = pcVar11 + ((ulong)bVar18 * -2 + 1) * 8;\n            puVar13 = puVar13 + (ulong)bVar18 * -2 + 1;\n          }" { (expression_statement "*puVar13 = *(undefined8 *)pcVar11;" (assignment_expression "*puVar13 = *(undefined8 *)pcVar11" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*(undefined8 *)pcVar11" * (cast_expression "(undefined8 *)pcVar11" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar11 = pcVar11 + ((ulong)bVar18 * -2 + 1) * 8;" (assignment_expression "pcVar11 = pcVar11 + ((ulong)bVar18 * -2 + 1) * 8" identifier = (binary_expression "pcVar11 + ((ulong)bVar18 * -2 + 1) * 8" identifier + (binary_expression "((ulong)bVar18 * -2 + 1) * 8" (parenthesized_expression "((ulong)bVar18 * -2 + 1)" ( (binary_expression "(ulong)bVar18 * -2 + 1" (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) + number_literal) )) * number_literal))) ;) (expression_statement "puVar13 = puVar13 + (ulong)bVar18 * -2 + 1;" (assignment_expression "puVar13 = puVar13 + (ulong)bVar18 * -2 + 1" identifier = (binary_expression "puVar13 + (ulong)bVar18 * -2 + 1" (binary_expression "puVar13 + (ulong)bVar18 * -2" identifier + (binary_expression "(ulong)bVar18 * -2" (cast_expression "(ulong)bVar18" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) }))) }) (else_clause "else {\n        unicodecpy(ntlmbuf + uVar9,pcVar11,local_918 >> 1);\n        unicodecpy(ntlmbuf + uVar9 + local_918,local_920,userlen >> 1);\n        lVar7 = uVar9 + local_918 + userlen;\n        unicodecpy(ntlmbuf + lVar7,host,local_908 >> 1);\n      }" else (compound_statement "{\n        unicodecpy(ntlmbuf + uVar9,pcVar11,local_918 >> 1);\n        unicodecpy(ntlmbuf + uVar9 + local_918,local_920,userlen >> 1);\n        lVar7 = uVar9 + local_918 + userlen;\n        unicodecpy(ntlmbuf + lVar7,host,local_908 >> 1);\n      }" { (expression_statement "unicodecpy(ntlmbuf + uVar9,pcVar11,local_918 >> 1);" (call_expression "unicodecpy(ntlmbuf + uVar9,pcVar11,local_918 >> 1)" identifier (argument_list "(ntlmbuf + uVar9,pcVar11,local_918 >> 1)" ( (binary_expression "ntlmbuf + uVar9" identifier + identifier) , identifier , (binary_expression "local_918 >> 1" identifier >> number_literal) ))) ;) (expression_statement "unicodecpy(ntlmbuf + uVar9 + local_918,local_920,userlen >> 1);" (call_expression "unicodecpy(ntlmbuf + uVar9 + local_918,local_920,userlen >> 1)" identifier (argument_list "(ntlmbuf + uVar9 + local_918,local_920,userlen >> 1)" ( (binary_expression "ntlmbuf + uVar9 + local_918" (binary_expression "ntlmbuf + uVar9" identifier + identifier) + identifier) , identifier , (binary_expression "userlen >> 1" identifier >> number_literal) ))) ;) (expression_statement "lVar7 = uVar9 + local_918 + userlen;" (assignment_expression "lVar7 = uVar9 + local_918 + userlen" identifier = (binary_expression "uVar9 + local_918 + userlen" (binary_expression "uVar9 + local_918" identifier + identifier) + identifier)) ;) (expression_statement "unicodecpy(ntlmbuf + lVar7,host,local_908 >> 1);" (call_expression "unicodecpy(ntlmbuf + lVar7,host,local_908 >> 1)" identifier (argument_list "(ntlmbuf + lVar7,host,local_908 >> 1)" ( (binary_expression "ntlmbuf + lVar7" identifier + identifier) , identifier , (binary_expression "local_908 >> 1" identifier >> number_literal) ))) ;) }))) (expression_statement "CVar6 = Curl_base64_encode(data,(char *)ntlmbuf,local_908 + lVar7,outptr,outlen);" (assignment_expression "CVar6 = Curl_base64_encode(data,(char *)ntlmbuf,local_908 + lVar7,outptr,outlen)" identifier = (call_expression "Curl_base64_encode(data,(char *)ntlmbuf,local_908 + lVar7,outptr,outlen)" identifier (argument_list "(data,(char *)ntlmbuf,local_908 + lVar7,outptr,outlen)" ( identifier , (cast_expression "(char *)ntlmbuf" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "local_908 + lVar7" identifier + identifier) , identifier , identifier )))) ;) (expression_statement "Curl_auth_ntlm_cleanup(ntlm);" (call_expression "Curl_auth_ntlm_cleanup(ntlm)" identifier (argument_list "(ntlm)" ( identifier ))) ;) }) (else_clause "else {\n      Curl_failf(data,"user + domain + host name too big");\n      CVar6 = CURLE_OUT_OF_MEMORY;\n    }" else (compound_statement "{\n      Curl_failf(data,"user + domain + host name too big");\n      CVar6 = CURLE_OUT_OF_MEMORY;\n    }" { (expression_statement "Curl_failf(data,"user + domain + host name too big");" (call_expression "Curl_failf(data,"user + domain + host name too big")" identifier (argument_list "(data,"user + domain + host name too big")" ( identifier , (string_literal ""user + domain + host name too big"" " string_content ") ))) ;) (expression_statement "CVar6 = CURLE_OUT_OF_MEMORY;" (assignment_expression "CVar6 = CURLE_OUT_OF_MEMORY" identifier = identifier) ;) }))) }) (else_clause "else {\n    Curl_failf(data,"incoming NTLM message too big");\n    CVar6 = CURLE_OUT_OF_MEMORY;\n  }" else (compound_statement "{\n    Curl_failf(data,"incoming NTLM message too big");\n    CVar6 = CURLE_OUT_OF_MEMORY;\n  }" { (expression_statement "Curl_failf(data,"incoming NTLM message too big");" (call_expression "Curl_failf(data,"incoming NTLM message too big")" identifier (argument_list "(data,"incoming NTLM message too big")" ( identifier , (string_literal ""incoming NTLM message too big"" " string_content ") ))) ;) (expression_statement "CVar6 = CURLE_OUT_OF_MEMORY;" (assignment_expression "CVar6 = CURLE_OUT_OF_MEMORY" identifier = identifier) ;) }))) (labeled_statement "LAB_001641e5:\n  if (lVar4 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (lVar4 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(lVar4 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar4 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return CVar6;" return identifier ;) })))
(translation_unit "int FUN_001640ae(undefined8 param_1,char *param_2,undefined8 param_3,long param_4,undefined8 param_5\n                ,undefined8 param_6)\n\n{\n  uint uVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  long lVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  uint uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  undefined8 *puVar12;\n  char *pcVar13;\n  undefined8 *puVar14;\n  uint uVar15;\n  long lVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  char *local_920;\n  ulong local_918;\n  ulong local_908;\n  undefined1 *local_8e8;\n  uint local_8cc;\n  undefined1 *local_8c8;\n  undefined8 local_8c0;\n  undefined1 local_8b8 [16];\n  undefined8 local_8a8;\n  undefined8 uStack_8a0;\n  undefined8 local_898;\n  undefined1 local_888 [32];\n  undefined1 local_868 [24];\n  undefined8 uStack_850;\n  undefined8 local_848;\n  undefined8 local_840 [126];\n  undefined8 uStack_450;\n  undefined8 local_448 [2];\n  undefined8 local_438 [127];\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_8cc = 0x18;\n  local_8c8 = (undefined1 *)0x0;\n  uVar15 = *(uint *)(param_4 + 4);\n  local_448[0] = 0;\n  local_448[1] = 0;\n  puVar12 = local_438;\n  for (lVar5 = 0x7e; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar12 = 0;\n    puVar12 = puVar12 + 1;\n  }\n  *(undefined1 *)puVar12 = 0;\n  local_920 = strchr(param_2,0x5c);\n  if ((local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)) {\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = param_2;\n  }\n  else {\n    local_918 = (long)local_920 - (long)param_2;\n    local_920 = local_920 + 1;\n    pcVar11 = param_2;\n  }\n  uVar6 = 0xffffffffffffffff;\n  pcVar13 = local_920;\n  do {\n    if (uVar6 == 0) break;\n    uVar6 = uVar6 - 1;\n    cVar2 = *pcVar13;\n    pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n  } while (cVar2 != '\0');\n  uVar6 = ~uVar6 - 1;\n  iVar4 = FUN_0014c0ee(local_448,0x401);\n  if (iVar4 == 0) {\n    uVar7 = 0xffffffffffffffff;\n    pcVar13 = (char *)local_448;\n    do {\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar7 - 1;\n  }\n  else {\n    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }\n  if ((*(uint *)(param_4 + 4) & 0x80000) == 0) {\n    if ((*(uint *)(param_4 + 4) & 0x200) == 0) {\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }\n    else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }\n  }\n  else {\n    iVar4 = FUN_0014ffcf(param_1,local_888,8);\n    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;\n    local_8e8 = local_8c8;\n  }\n  uVar15 = uVar15 & 1;\n  if (uVar15 != 0) {\n    local_918 = local_918 << 1;\n    uVar6 = uVar6 * 2;\n    local_908 = local_908 << 1;\n  }\n  uVar1 = local_8cc + 0x58;\n  uVar7 = local_918 + uVar1;\n  uVar3 = *(uint *)(param_4 + 4);\n  uVar8 = (uVar6 & 0xffffffff) >> 8 & 0xff;\n  uVar9 = local_8cc >> 8 & 0xff;\n  uVar10 = local_918 >> 8 & 0xff;\n  iVar4 = curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18);\n  uVar7 = (ulong)iVar4;\n  if (uVar7 < 1000) {\n    *(undefined8 *)((long)&local_848 + uVar7) = local_8a8;\n    *(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;\n    *(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;\n    uVar7 = uVar7 + 0x18;\n  }\n  uVar8 = local_8cc + uVar7;\n  if (uVar8 < 0x401) {\n    memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);\n    (*(code *)PTR_free_0018c0b8)(local_8c8);\n    if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }\n    else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }\n  }\n  else {\n    FUN_0011aa69(param_1,"incoming NTLM message too big");\n    iVar4 = 0x1b;\n  }\nLAB_001641e5:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar4;\n}\n\n" (function_definition "int FUN_001640ae(undefined8 param_1,char *param_2,undefined8 param_3,long param_4,undefined8 param_5\n                ,undefined8 param_6)\n\n{\n  uint uVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  long lVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  uint uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  undefined8 *puVar12;\n  char *pcVar13;\n  undefined8 *puVar14;\n  uint uVar15;\n  long lVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  char *local_920;\n  ulong local_918;\n  ulong local_908;\n  undefined1 *local_8e8;\n  uint local_8cc;\n  undefined1 *local_8c8;\n  undefined8 local_8c0;\n  undefined1 local_8b8 [16];\n  undefined8 local_8a8;\n  undefined8 uStack_8a0;\n  undefined8 local_898;\n  undefined1 local_888 [32];\n  undefined1 local_868 [24];\n  undefined8 uStack_850;\n  undefined8 local_848;\n  undefined8 local_840 [126];\n  undefined8 uStack_450;\n  undefined8 local_448 [2];\n  undefined8 local_438 [127];\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_8cc = 0x18;\n  local_8c8 = (undefined1 *)0x0;\n  uVar15 = *(uint *)(param_4 + 4);\n  local_448[0] = 0;\n  local_448[1] = 0;\n  puVar12 = local_438;\n  for (lVar5 = 0x7e; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar12 = 0;\n    puVar12 = puVar12 + 1;\n  }\n  *(undefined1 *)puVar12 = 0;\n  local_920 = strchr(param_2,0x5c);\n  if ((local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)) {\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = param_2;\n  }\n  else {\n    local_918 = (long)local_920 - (long)param_2;\n    local_920 = local_920 + 1;\n    pcVar11 = param_2;\n  }\n  uVar6 = 0xffffffffffffffff;\n  pcVar13 = local_920;\n  do {\n    if (uVar6 == 0) break;\n    uVar6 = uVar6 - 1;\n    cVar2 = *pcVar13;\n    pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n  } while (cVar2 != '\0');\n  uVar6 = ~uVar6 - 1;\n  iVar4 = FUN_0014c0ee(local_448,0x401);\n  if (iVar4 == 0) {\n    uVar7 = 0xffffffffffffffff;\n    pcVar13 = (char *)local_448;\n    do {\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar7 - 1;\n  }\n  else {\n    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }\n  if ((*(uint *)(param_4 + 4) & 0x80000) == 0) {\n    if ((*(uint *)(param_4 + 4) & 0x200) == 0) {\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }\n    else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }\n  }\n  else {\n    iVar4 = FUN_0014ffcf(param_1,local_888,8);\n    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;\n    local_8e8 = local_8c8;\n  }\n  uVar15 = uVar15 & 1;\n  if (uVar15 != 0) {\n    local_918 = local_918 << 1;\n    uVar6 = uVar6 * 2;\n    local_908 = local_908 << 1;\n  }\n  uVar1 = local_8cc + 0x58;\n  uVar7 = local_918 + uVar1;\n  uVar3 = *(uint *)(param_4 + 4);\n  uVar8 = (uVar6 & 0xffffffff) >> 8 & 0xff;\n  uVar9 = local_8cc >> 8 & 0xff;\n  uVar10 = local_918 >> 8 & 0xff;\n  iVar4 = curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18);\n  uVar7 = (ulong)iVar4;\n  if (uVar7 < 1000) {\n    *(undefined8 *)((long)&local_848 + uVar7) = local_8a8;\n    *(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;\n    *(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;\n    uVar7 = uVar7 + 0x18;\n  }\n  uVar8 = local_8cc + uVar7;\n  if (uVar8 < 0x401) {\n    memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);\n    (*(code *)PTR_free_0018c0b8)(local_8c8);\n    if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }\n    else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }\n  }\n  else {\n    FUN_0011aa69(param_1,"incoming NTLM message too big");\n    iVar4 = 0x1b;\n  }\nLAB_001641e5:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar4;\n}" primitive_type (function_declarator "FUN_001640ae(undefined8 param_1,char *param_2,undefined8 param_3,long param_4,undefined8 param_5\n                ,undefined8 param_6)" identifier (parameter_list "(undefined8 param_1,char *param_2,undefined8 param_3,long param_4,undefined8 param_5\n                ,undefined8 param_6)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined8 param_3" type_identifier identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  long lVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  uint uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  undefined8 *puVar12;\n  char *pcVar13;\n  undefined8 *puVar14;\n  uint uVar15;\n  long lVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  char *local_920;\n  ulong local_918;\n  ulong local_908;\n  undefined1 *local_8e8;\n  uint local_8cc;\n  undefined1 *local_8c8;\n  undefined8 local_8c0;\n  undefined1 local_8b8 [16];\n  undefined8 local_8a8;\n  undefined8 uStack_8a0;\n  undefined8 local_898;\n  undefined1 local_888 [32];\n  undefined1 local_868 [24];\n  undefined8 uStack_850;\n  undefined8 local_848;\n  undefined8 local_840 [126];\n  undefined8 uStack_450;\n  undefined8 local_448 [2];\n  undefined8 local_438 [127];\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_8cc = 0x18;\n  local_8c8 = (undefined1 *)0x0;\n  uVar15 = *(uint *)(param_4 + 4);\n  local_448[0] = 0;\n  local_448[1] = 0;\n  puVar12 = local_438;\n  for (lVar5 = 0x7e; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar12 = 0;\n    puVar12 = puVar12 + 1;\n  }\n  *(undefined1 *)puVar12 = 0;\n  local_920 = strchr(param_2,0x5c);\n  if ((local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)) {\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = param_2;\n  }\n  else {\n    local_918 = (long)local_920 - (long)param_2;\n    local_920 = local_920 + 1;\n    pcVar11 = param_2;\n  }\n  uVar6 = 0xffffffffffffffff;\n  pcVar13 = local_920;\n  do {\n    if (uVar6 == 0) break;\n    uVar6 = uVar6 - 1;\n    cVar2 = *pcVar13;\n    pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n  } while (cVar2 != '\0');\n  uVar6 = ~uVar6 - 1;\n  iVar4 = FUN_0014c0ee(local_448,0x401);\n  if (iVar4 == 0) {\n    uVar7 = 0xffffffffffffffff;\n    pcVar13 = (char *)local_448;\n    do {\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar7 - 1;\n  }\n  else {\n    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }\n  if ((*(uint *)(param_4 + 4) & 0x80000) == 0) {\n    if ((*(uint *)(param_4 + 4) & 0x200) == 0) {\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }\n    else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }\n  }\n  else {\n    iVar4 = FUN_0014ffcf(param_1,local_888,8);\n    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;\n    local_8e8 = local_8c8;\n  }\n  uVar15 = uVar15 & 1;\n  if (uVar15 != 0) {\n    local_918 = local_918 << 1;\n    uVar6 = uVar6 * 2;\n    local_908 = local_908 << 1;\n  }\n  uVar1 = local_8cc + 0x58;\n  uVar7 = local_918 + uVar1;\n  uVar3 = *(uint *)(param_4 + 4);\n  uVar8 = (uVar6 & 0xffffffff) >> 8 & 0xff;\n  uVar9 = local_8cc >> 8 & 0xff;\n  uVar10 = local_918 >> 8 & 0xff;\n  iVar4 = curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18);\n  uVar7 = (ulong)iVar4;\n  if (uVar7 < 1000) {\n    *(undefined8 *)((long)&local_848 + uVar7) = local_8a8;\n    *(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;\n    *(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;\n    uVar7 = uVar7 + 0x18;\n  }\n  uVar8 = local_8cc + uVar7;\n  if (uVar8 < 0x401) {\n    memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);\n    (*(code *)PTR_free_0018c0b8)(local_8c8);\n    if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }\n    else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }\n  }\n  else {\n    FUN_0011aa69(param_1,"incoming NTLM message too big");\n    iVar4 = 0x1b;\n  }\nLAB_001641e5:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar4;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "long lVar5;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined8 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "undefined8 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "long lVar16;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "char *local_920;" primitive_type (pointer_declarator "*local_920" * identifier) ;) (declaration "ulong local_918;" type_identifier identifier ;) (declaration "ulong local_908;" type_identifier identifier ;) (declaration "undefined1 *local_8e8;" type_identifier (pointer_declarator "*local_8e8" * identifier) ;) (declaration "uint local_8cc;" type_identifier identifier ;) (declaration "undefined1 *local_8c8;" type_identifier (pointer_declarator "*local_8c8" * identifier) ;) (declaration "undefined8 local_8c0;" type_identifier identifier ;) (declaration "undefined1 local_8b8 [16];" type_identifier (array_declarator "local_8b8 [16]" identifier [ number_literal ]) ;) (declaration "undefined8 local_8a8;" type_identifier identifier ;) (declaration "undefined8 uStack_8a0;" type_identifier identifier ;) (declaration "undefined8 local_898;" type_identifier identifier ;) (declaration "undefined1 local_888 [32];" type_identifier (array_declarator "local_888 [32]" identifier [ number_literal ]) ;) (declaration "undefined1 local_868 [24];" type_identifier (array_declarator "local_868 [24]" identifier [ number_literal ]) ;) (declaration "undefined8 uStack_850;" type_identifier identifier ;) (declaration "undefined8 local_848;" type_identifier identifier ;) (declaration "undefined8 local_840 [126];" type_identifier (array_declarator "local_840 [126]" identifier [ number_literal ]) ;) (declaration "undefined8 uStack_450;" type_identifier identifier ;) (declaration "undefined8 local_448 [2];" type_identifier (array_declarator "local_448 [2]" identifier [ number_literal ]) ;) (declaration "undefined8 local_438 [127];" type_identifier (array_declarator "local_438 [127]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_8cc = 0x18;" (assignment_expression "local_8cc = 0x18" identifier = number_literal) ;) (expression_statement "local_8c8 = (undefined1 *)0x0;" (assignment_expression "local_8c8 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar15 = *(uint *)(param_4 + 4);" (assignment_expression "uVar15 = *(uint *)(param_4 + 4)" identifier = (pointer_expression "*(uint *)(param_4 + 4)" * (cast_expression "(uint *)(param_4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_448[0] = 0;" (assignment_expression "local_448[0] = 0" (subscript_expression "local_448[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_448[1] = 0;" (assignment_expression "local_448[1] = 0" (subscript_expression "local_448[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar12 = local_438;" (assignment_expression "puVar12 = local_438" identifier = identifier) ;) (for_statement "for (lVar5 = 0x7e; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar12 = 0;\n    puVar12 = puVar12 + 1;\n  }" for ( (assignment_expression "lVar5 = 0x7e" identifier = number_literal) ; (binary_expression "lVar5 != 0" identifier != number_literal) ; (assignment_expression "lVar5 = lVar5 + -1" identifier = (binary_expression "lVar5 + -1" identifier + number_literal)) ) (compound_statement "{\n    *puVar12 = 0;\n    puVar12 = puVar12 + 1;\n  }" { (expression_statement "*puVar12 = 0;" (assignment_expression "*puVar12 = 0" (pointer_expression "*puVar12" * identifier) = number_literal) ;) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) })) (expression_statement "*(undefined1 *)puVar12 = 0;" (assignment_expression "*(undefined1 *)puVar12 = 0" (pointer_expression "*(undefined1 *)puVar12" * (cast_expression "(undefined1 *)puVar12" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "local_920 = strchr(param_2,0x5c);" (assignment_expression "local_920 = strchr(param_2,0x5c)" identifier = (call_expression "strchr(param_2,0x5c)" identifier (argument_list "(param_2,0x5c)" ( identifier , number_literal )))) ;) (if_statement "if ((local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)) {\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = param_2;\n  }\n  else {\n    local_918 = (long)local_920 - (long)param_2;\n    local_920 = local_920 + 1;\n    pcVar11 = param_2;\n  }" if (parenthesized_expression "((local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0))" ( (binary_expression "(local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)" (parenthesized_expression "(local_920 == (char *)0x0)" ( (binary_expression "local_920 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)" ( (comma_expression "local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0" (assignment_expression "local_920 = strchr(param_2,0x2f)" identifier = (call_expression "strchr(param_2,0x2f)" identifier (argument_list "(param_2,0x2f)" ( identifier , number_literal )))) , (binary_expression "local_920 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = param_2;\n  }" { (expression_statement "local_918 = 0;" (assignment_expression "local_918 = 0" identifier = number_literal) ;) (expression_statement "pcVar11 = "";" (assignment_expression "pcVar11 = """ identifier = (string_literal """" " ")) ;) (expression_statement "local_920 = param_2;" (assignment_expression "local_920 = param_2" identifier = identifier) ;) }) (else_clause "else {\n    local_918 = (long)local_920 - (long)param_2;\n    local_920 = local_920 + 1;\n    pcVar11 = param_2;\n  }" else (compound_statement "{\n    local_918 = (long)local_920 - (long)param_2;\n    local_920 = local_920 + 1;\n    pcVar11 = param_2;\n  }" { (expression_statement "local_918 = (long)local_920 - (long)param_2;" (assignment_expression "local_918 = (long)local_920 - (long)param_2" identifier = (binary_expression "(long)local_920 - (long)param_2" (cast_expression "(long)local_920" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "local_920 = local_920 + 1;" (assignment_expression "local_920 = local_920 + 1" identifier = (binary_expression "local_920 + 1" identifier + number_literal)) ;) (expression_statement "pcVar11 = param_2;" (assignment_expression "pcVar11 = param_2" identifier = identifier) ;) }))) (expression_statement "uVar6 = 0xffffffffffffffff;" (assignment_expression "uVar6 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar13 = local_920;" (assignment_expression "pcVar13 = local_920" identifier = identifier) ;) (do_statement "do {\n    if (uVar6 == 0) break;\n    uVar6 = uVar6 - 1;\n    cVar2 = *pcVar13;\n    pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n  } while (cVar2 != '\0');" do (compound_statement "{\n    if (uVar6 == 0) break;\n    uVar6 = uVar6 - 1;\n    cVar2 = *pcVar13;\n    pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n  }" { (if_statement "if (uVar6 == 0) break;" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = uVar6 - 1;" (assignment_expression "uVar6 = uVar6 - 1" identifier = (binary_expression "uVar6 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar13;" (assignment_expression "cVar2 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (expression_statement "pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar13 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar13 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar6 = ~uVar6 - 1;" (assignment_expression "uVar6 = ~uVar6 - 1" identifier = (binary_expression "~uVar6 - 1" (unary_expression "~uVar6" ~ identifier) - number_literal)) ;) (expression_statement "iVar4 = FUN_0014c0ee(local_448,0x401);" (assignment_expression "iVar4 = FUN_0014c0ee(local_448,0x401)" identifier = (call_expression "FUN_0014c0ee(local_448,0x401)" identifier (argument_list "(local_448,0x401)" ( identifier , number_literal )))) ;) (if_statement "if (iVar4 == 0) {\n    uVar7 = 0xffffffffffffffff;\n    pcVar13 = (char *)local_448;\n    do {\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar7 - 1;\n  }\n  else {\n    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar7 = 0xffffffffffffffff;\n    pcVar13 = (char *)local_448;\n    do {\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar7 - 1;\n  }" { (expression_statement "uVar7 = 0xffffffffffffffff;" (assignment_expression "uVar7 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar13 = (char *)local_448;" (assignment_expression "pcVar13 = (char *)local_448" identifier = (cast_expression "(char *)local_448" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    } while (cVar2 != '\0');" do (compound_statement "{\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    }" { (if_statement "if (uVar7 == 0) break;" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar7 = uVar7 - 1;" (assignment_expression "uVar7 = uVar7 - 1" identifier = (binary_expression "uVar7 - 1" identifier - number_literal)) ;) (expression_statement "cVar2 = *pcVar13;" (assignment_expression "cVar2 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (expression_statement "pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "pcVar13 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar13 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "local_908 = ~uVar7 - 1;" (assignment_expression "local_908 = ~uVar7 - 1" identifier = (binary_expression "~uVar7 - 1" (unary_expression "~uVar7" ~ identifier) - number_literal)) ;) }) (else_clause "else {\n    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }" else (compound_statement "{\n    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }" { (expression_statement "FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");" (call_expression "FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n")" identifier (argument_list "(param_1,"gethostname() failed, continuing without!\n")" ( identifier , (string_literal ""gethostname() failed, continuing without!\n"" " string_content escape_sequence ") ))) ;) (expression_statement "local_908 = 0;" (assignment_expression "local_908 = 0" identifier = number_literal) ;) }))) (if_statement "if ((*(uint *)(param_4 + 4) & 0x80000) == 0) {\n    if ((*(uint *)(param_4 + 4) & 0x200) == 0) {\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }\n    else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }\n  }\n  else {\n    iVar4 = FUN_0014ffcf(param_1,local_888,8);\n    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;\n    local_8e8 = local_8c8;\n  }" if (parenthesized_expression "((*(uint *)(param_4 + 4) & 0x80000) == 0)" ( (binary_expression "(*(uint *)(param_4 + 4) & 0x80000) == 0" (parenthesized_expression "(*(uint *)(param_4 + 4) & 0x80000)" ( (binary_expression "*(uint *)(param_4 + 4) & 0x80000" (pointer_expression "*(uint *)(param_4 + 4)" * (cast_expression "(uint *)(param_4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    if ((*(uint *)(param_4 + 4) & 0x200) == 0) {\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }\n    else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }\n  }" { (if_statement "if ((*(uint *)(param_4 + 4) & 0x200) == 0) {\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }\n    else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }" if (parenthesized_expression "((*(uint *)(param_4 + 4) & 0x200) == 0)" ( (binary_expression "(*(uint *)(param_4 + 4) & 0x200) == 0" (parenthesized_expression "(*(uint *)(param_4 + 4) & 0x200)" ( (binary_expression "*(uint *)(param_4 + 4) & 0x200" (pointer_expression "*(uint *)(param_4 + 4)" * (cast_expression "(uint *)(param_4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }" { (expression_statement "iVar4 = FUN_0014ed03(param_1,param_3,local_868);" (assignment_expression "iVar4 = FUN_0014ed03(param_1,param_3,local_868)" identifier = (call_expression "FUN_0014ed03(param_1,param_3,local_868)" identifier (argument_list "(param_1,param_3,local_868)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar4 != 0) goto LAB_001641e5;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001641e5;" goto statement_identifier ;)) (expression_statement "FUN_0014eaf6(local_868,param_4 + 8,local_888);" (call_expression "FUN_0014eaf6(local_868,param_4 + 8,local_888)" identifier (argument_list "(local_868,param_4 + 8,local_888)" ( identifier , (binary_expression "param_4 + 8" identifier + number_literal) , identifier ))) ;) (expression_statement "iVar4 = FUN_0014eba5(param_1,param_3,&local_848);" (assignment_expression "iVar4 = FUN_0014eba5(param_1,param_3,&local_848)" identifier = (call_expression "FUN_0014eba5(param_1,param_3,&local_848)" identifier (argument_list "(param_1,param_3,&local_848)" ( identifier , identifier , (pointer_expression "&local_848" & identifier) )))) ;) (if_statement "if (iVar4 != 0) goto LAB_001641e5;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001641e5;" goto statement_identifier ;)) (expression_statement "FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);" (call_expression "FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8)" identifier (argument_list "(&local_848,param_4 + 8,&local_8a8)" ( (pointer_expression "&local_848" & identifier) , (binary_expression "param_4 + 8" identifier + number_literal) , (pointer_expression "&local_8a8" & identifier) ))) ;) (expression_statement "local_8e8 = local_888;" (assignment_expression "local_8e8 = local_888" identifier = identifier) ;) }) (else_clause "else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }" else (compound_statement "{\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }" { (expression_statement "iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);" (assignment_expression "iVar4 = FUN_0014ffcf(param_1,&local_8c0,8)" identifier = (call_expression "FUN_0014ffcf(param_1,&local_8c0,8)" identifier (argument_list "(param_1,&local_8c0,8)" ( identifier , (pointer_expression "&local_8c0" & identifier) , number_literal )))) ;) (if_statement "if (iVar4 != 0) goto LAB_001641e5;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001641e5;" goto statement_identifier ;)) (expression_statement "local_8a8 = local_8c0;" (assignment_expression "local_8a8 = local_8c0" identifier = identifier) ;) (expression_statement "uStack_8a0 = 0;" (assignment_expression "uStack_8a0 = 0" identifier = number_literal) ;) (expression_statement "local_898 = 0;" (assignment_expression "local_898 = 0" identifier = number_literal) ;) (expression_statement "local_848 = *(undefined8 *)(param_4 + 8);" (assignment_expression "local_848 = *(undefined8 *)(param_4 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_4 + 8)" * (cast_expression "(undefined8 *)(param_4 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 8)" ( (binary_expression "param_4 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_840[0] = local_8c0;" (assignment_expression "local_840[0] = local_8c0" (subscript_expression "local_840[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);" (assignment_expression "iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10)" identifier = (call_expression "FUN_0016c0f0(&local_848,0x10,local_8b8,0x10)" identifier (argument_list "(&local_848,0x10,local_8b8,0x10)" ( (pointer_expression "&local_848" & identifier) , number_literal , identifier , number_literal )))) ;) (if_statement "if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;" if (parenthesized_expression "((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))" ( (binary_expression "(iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)" (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)" ( (comma_expression "iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0" (assignment_expression "iVar4 = FUN_0014ed03(param_1,param_3,local_868)" identifier = (call_expression "FUN_0014ed03(param_1,param_3,local_868)" identifier (argument_list "(param_1,param_3,local_868)" ( identifier , identifier , identifier )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_001641e5;" goto statement_identifier ;)) (expression_statement "local_8e8 = local_888;" (assignment_expression "local_8e8 = local_888" identifier = identifier) ;) (expression_statement "FUN_0014eaf6(local_868,local_8b8,local_8e8);" (call_expression "FUN_0014eaf6(local_868,local_8b8,local_8e8)" identifier (argument_list "(local_868,local_8b8,local_8e8)" ( identifier , identifier , identifier ))) ;) }))) }) (else_clause "else {\n    iVar4 = FUN_0014ffcf(param_1,local_888,8);\n    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;\n    local_8e8 = local_8c8;\n  }" else (compound_statement "{\n    iVar4 = FUN_0014ffcf(param_1,local_888,8);\n    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;\n    local_8e8 = local_8c8;\n  }" { (expression_statement "iVar4 = FUN_0014ffcf(param_1,local_888,8);" (assignment_expression "iVar4 = FUN_0014ffcf(param_1,local_888,8)" identifier = (call_expression "FUN_0014ffcf(param_1,local_888,8)" identifier (argument_list "(param_1,local_888,8)" ( identifier , identifier , number_literal )))) ;) (if_statement "if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;" if (parenthesized_expression "((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))" ( (binary_expression "(((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0)))" (parenthesized_expression "(((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))" ( (binary_expression "((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0)" (parenthesized_expression "((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))" ( (binary_expression "(iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)" (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)" ( (comma_expression "iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0" (assignment_expression "iVar4 = FUN_0014ed03(param_1,param_3,local_868)" identifier = (call_expression "FUN_0014ed03(param_1,param_3,local_868)" identifier (argument_list "(param_1,param_3,local_868)" ( identifier , identifier , identifier )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0)" ( (comma_expression "iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0" (assignment_expression "iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848)" identifier = (call_expression "FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848)" identifier (argument_list "(local_920,uVar6,pcVar11,local_918,local_868,&local_848)" ( identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_848" & identifier) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0)))" ( (parenthesized_expression "(iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))" ( (comma_expression "iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0)" (assignment_expression "iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8)" identifier = (call_expression "FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8)" identifier (argument_list "(&local_848,local_888,param_4 + 8,&local_8a8)" ( (pointer_expression "&local_848" & identifier) , identifier , (binary_expression "param_4 + 8" identifier + number_literal) , (pointer_expression "&local_8a8" & identifier) )))) , (binary_expression "iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0)" (binary_expression "iVar4 != 0" identifier != number_literal) || (parenthesized_expression "(iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0)" ( (comma_expression "iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0" (assignment_expression "iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc)" identifier = (call_expression "FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc)" identifier (argument_list "(&local_848,local_888,param_4,&local_8c8,&local_8cc)" ( (pointer_expression "&local_848" & identifier) , identifier , identifier , (pointer_expression "&local_8c8" & identifier) , (pointer_expression "&local_8cc" & identifier) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) )))) )) ))) )) (goto_statement "goto LAB_001641e5;" goto statement_identifier ;)) (expression_statement "local_8e8 = local_8c8;" (assignment_expression "local_8e8 = local_8c8" identifier = identifier) ;) }))) (expression_statement "uVar15 = uVar15 & 1;" (assignment_expression "uVar15 = uVar15 & 1" identifier = (binary_expression "uVar15 & 1" identifier & number_literal)) ;) (if_statement "if (uVar15 != 0) {\n    local_918 = local_918 << 1;\n    uVar6 = uVar6 * 2;\n    local_908 = local_908 << 1;\n  }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n    local_918 = local_918 << 1;\n    uVar6 = uVar6 * 2;\n    local_908 = local_908 << 1;\n  }" { (expression_statement "local_918 = local_918 << 1;" (assignment_expression "local_918 = local_918 << 1" identifier = (binary_expression "local_918 << 1" identifier << number_literal)) ;) (expression_statement "uVar6 = uVar6 * 2;" (assignment_expression "uVar6 = uVar6 * 2" identifier = (binary_expression "uVar6 * 2" identifier * number_literal)) ;) (expression_statement "local_908 = local_908 << 1;" (assignment_expression "local_908 = local_908 << 1" identifier = (binary_expression "local_908 << 1" identifier << number_literal)) ;) })) (expression_statement "uVar1 = local_8cc + 0x58;" (assignment_expression "uVar1 = local_8cc + 0x58" identifier = (binary_expression "local_8cc + 0x58" identifier + number_literal)) ;) (expression_statement "uVar7 = local_918 + uVar1;" (assignment_expression "uVar7 = local_918 + uVar1" identifier = (binary_expression "local_918 + uVar1" identifier + identifier)) ;) (expression_statement "uVar3 = *(uint *)(param_4 + 4);" (assignment_expression "uVar3 = *(uint *)(param_4 + 4)" identifier = (pointer_expression "*(uint *)(param_4 + 4)" * (cast_expression "(uint *)(param_4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 4)" ( (binary_expression "param_4 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = (uVar6 & 0xffffffff) >> 8 & 0xff;" (assignment_expression "uVar8 = (uVar6 & 0xffffffff) >> 8 & 0xff" identifier = (binary_expression "(uVar6 & 0xffffffff) >> 8 & 0xff" (binary_expression "(uVar6 & 0xffffffff) >> 8" (parenthesized_expression "(uVar6 & 0xffffffff)" ( (binary_expression "uVar6 & 0xffffffff" identifier & number_literal) )) >> number_literal) & number_literal)) ;) (expression_statement "uVar9 = local_8cc >> 8 & 0xff;" (assignment_expression "uVar9 = local_8cc >> 8 & 0xff" identifier = (binary_expression "local_8cc >> 8 & 0xff" (binary_expression "local_8cc >> 8" identifier >> number_literal) & number_literal)) ;) (expression_statement "uVar10 = local_918 >> 8 & 0xff;" (assignment_expression "uVar10 = local_918 >> 8 & 0xff" identifier = (binary_expression "local_918 >> 8 & 0xff" (binary_expression "local_918 >> 8" identifier >> number_literal) & number_literal)) ;) (expression_statement "iVar4 = curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18);" (assignment_expression "iVar4 = curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18)" identifier = (call_expression "curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18)" identifier (argument_list "(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18)" ( (pointer_expression "&local_848" & identifier) , number_literal , (pointer_expression "&DAT_00177f58" & identifier) , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , (binary_expression "local_8cc & 0xff" identifier & number_literal) , identifier , (binary_expression "local_8cc & 0xff" identifier & number_literal) , identifier , number_literal , number_literal , number_literal , number_literal , (binary_expression "local_918 & 0xff" identifier & number_literal) , identifier , (binary_expression "local_918 & 0xff" identifier & number_literal) , identifier , (binary_expression "uVar1 & 0xff" identifier & number_literal) , (binary_expression "uVar1 >> 8 & 0xff" (binary_expression "uVar1 >> 8" identifier >> number_literal) & number_literal) , number_literal , number_literal , (binary_expression "uVar6 & 0xff" identifier & number_literal) , identifier , (binary_expression "uVar6 & 0xff" identifier & number_literal) , identifier , (binary_expression "uVar7 & 0xff" identifier & number_literal) , (binary_expression "uVar7 >> 8 & 0xff" (binary_expression "uVar7 >> 8" identifier >> number_literal) & number_literal) , number_literal , number_literal , (binary_expression "local_908 & 0xff" identifier & number_literal) , (binary_expression "local_908 >> 8" identifier >> number_literal) , (binary_expression "local_908 & 0xff" identifier & number_literal) , (binary_expression "local_908 >> 8" identifier >> number_literal) , (binary_expression "uVar6 + uVar7 & 0xff" (binary_expression "uVar6 + uVar7" identifier + identifier) & number_literal) , (binary_expression "uVar6 + uVar7 >> 8 & 0xff" (binary_expression "uVar6 + uVar7 >> 8" (binary_expression "uVar6 + uVar7" identifier + identifier) >> number_literal) & number_literal) , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , number_literal , (binary_expression "uVar3 & 0xff" identifier & number_literal) , (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" identifier >> number_literal) & number_literal) , (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" identifier >> number_literal) & number_literal) , (binary_expression "uVar3 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "uVar7 = (ulong)iVar4;" (assignment_expression "uVar7 = (ulong)iVar4" identifier = (cast_expression "(ulong)iVar4" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar7 < 1000) {\n    *(undefined8 *)((long)&local_848 + uVar7) = local_8a8;\n    *(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;\n    *(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;\n    uVar7 = uVar7 + 0x18;\n  }" if (parenthesized_expression "(uVar7 < 1000)" ( (binary_expression "uVar7 < 1000" identifier < number_literal) )) (compound_statement "{\n    *(undefined8 *)((long)&local_848 + uVar7) = local_8a8;\n    *(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;\n    *(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;\n    uVar7 = uVar7 + 0x18;\n  }" { (expression_statement "*(undefined8 *)((long)&local_848 + uVar7) = local_8a8;" (assignment_expression "*(undefined8 *)((long)&local_848 + uVar7) = local_8a8" (pointer_expression "*(undefined8 *)((long)&local_848 + uVar7)" * (cast_expression "(undefined8 *)((long)&local_848 + uVar7)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_848 + uVar7)" ( (binary_expression "(long)&local_848 + uVar7" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + identifier) )))) = identifier) ;) (expression_statement "*(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;" (assignment_expression "*(undefined8 *)((long)local_840 + uVar7) = uStack_8a0" (pointer_expression "*(undefined8 *)((long)local_840 + uVar7)" * (cast_expression "(undefined8 *)((long)local_840 + uVar7)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_840 + uVar7)" ( (binary_expression "(long)local_840 + uVar7" (cast_expression "(long)local_840" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;" (assignment_expression "*(undefined8 *)((long)local_840 + uVar7 + 8) = local_898" (pointer_expression "*(undefined8 *)((long)local_840 + uVar7 + 8)" * (cast_expression "(undefined8 *)((long)local_840 + uVar7 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_840 + uVar7 + 8)" ( (binary_expression "(long)local_840 + uVar7 + 8" (binary_expression "(long)local_840 + uVar7" (cast_expression "(long)local_840" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = uVar7 + 0x18;" (assignment_expression "uVar7 = uVar7 + 0x18" identifier = (binary_expression "uVar7 + 0x18" identifier + number_literal)) ;) })) (expression_statement "uVar8 = local_8cc + uVar7;" (assignment_expression "uVar8 = local_8cc + uVar7" identifier = (binary_expression "local_8cc + uVar7" identifier + identifier)) ;) (if_statement "if (uVar8 < 0x401) {\n    memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);\n    (*(code *)PTR_free_0018c0b8)(local_8c8);\n    if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }\n    else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }\n  }\n  else {\n    FUN_0011aa69(param_1,"incoming NTLM message too big");\n    iVar4 = 0x1b;\n  }" if (parenthesized_expression "(uVar8 < 0x401)" ( (binary_expression "uVar8 < 0x401" identifier < number_literal) )) (compound_statement "{\n    memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);\n    (*(code *)PTR_free_0018c0b8)(local_8c8);\n    if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }\n    else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }\n  }" { (expression_statement "memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);" (call_expression "memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc)" identifier (argument_list "((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc)" ( (cast_expression "(void *)((long)&local_848 + uVar7)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_848 + uVar7)" ( (binary_expression "(long)&local_848 + uVar7" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + identifier) ))) , identifier , (cast_expression "(ulong)local_8cc" ( (type_descriptor "ulong" type_identifier) ) identifier) ))) ;) (expression_statement "(*(code *)PTR_free_0018c0b8)(local_8c8);" (call_expression "(*(code *)PTR_free_0018c0b8)(local_8c8)" (parenthesized_expression "(*(code *)PTR_free_0018c0b8)" ( (pointer_expression "*(code *)PTR_free_0018c0b8" * (cast_expression "(code *)PTR_free_0018c0b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_8c8)" ( identifier ))) ;) (if_statement "if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }\n    else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }" if (parenthesized_expression "(local_908 + uVar6 + local_918 + uVar8 < 0x400)" ( (binary_expression "local_908 + uVar6 + local_918 + uVar8 < 0x400" (binary_expression "local_908 + uVar6 + local_918 + uVar8" (binary_expression "local_908 + uVar6 + local_918" (binary_expression "local_908 + uVar6" identifier + identifier) + identifier) + identifier) < number_literal) )) (compound_statement "{\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }" { (if_statement "if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (compound_statement "{\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }" { (expression_statement "memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);" (call_expression "memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918)" identifier (argument_list "((void *)((long)&local_848 + uVar8),pcVar11,local_918)" ( (cast_expression "(void *)((long)&local_848 + uVar8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_848 + uVar8)" ( (binary_expression "(long)&local_848 + uVar8" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + identifier) ))) , identifier , identifier ))) ;) (expression_statement "memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);" (call_expression "memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6)" identifier (argument_list "((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6)" ( (cast_expression "(void *)((long)&local_848 + uVar8 + local_918)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_848 + uVar8 + local_918)" ( (binary_expression "(long)&local_848 + uVar8 + local_918" (binary_expression "(long)&local_848 + uVar8" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + identifier) + identifier) ))) , identifier , identifier ))) ;) (expression_statement "lVar5 = uVar8 + local_918 + uVar6;" (assignment_expression "lVar5 = uVar8 + local_918 + uVar6" identifier = (binary_expression "uVar8 + local_918 + uVar6" (binary_expression "uVar8 + local_918" identifier + identifier) + identifier)) ;) (expression_statement "pcVar11 = (char *)((long)&local_848 + lVar5);" (assignment_expression "pcVar11 = (char *)((long)&local_848 + lVar5)" identifier = (cast_expression "(char *)((long)&local_848 + lVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&local_848 + lVar5)" ( (binary_expression "(long)&local_848 + lVar5" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + identifier) )))) ;) (expression_statement "uVar15 = (uint)local_908;" (assignment_expression "uVar15 = (uint)local_908" identifier = (cast_expression "(uint)local_908" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }" if (parenthesized_expression "(uVar15 < 8)" ( (binary_expression "uVar15 < 8" identifier < number_literal) )) (compound_statement "{\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }" { (if_statement "if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }" if (parenthesized_expression "((local_908 & 4) == 0)" ( (binary_expression "(local_908 & 4) == 0" (parenthesized_expression "(local_908 & 4)" ( (binary_expression "local_908 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }" { (if_statement "if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }" { (expression_statement "*pcVar11 = (char)local_448[0];" (assignment_expression "*pcVar11 = (char)local_448[0]" (pointer_expression "*pcVar11" * identifier) = (cast_expression "(char)local_448[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_448[0]" identifier [ number_literal ]))) ;) (if_statement "if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }" if (parenthesized_expression "((local_908 & 2) != 0)" ( (binary_expression "(local_908 & 2) != 0" (parenthesized_expression "(local_908 & 2)" ( (binary_expression "local_908 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }" { (expression_statement "*(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));" (assignment_expression "*(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2))" (pointer_expression "*(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6)" * (cast_expression "(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6)" ( (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6" (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff) + lVar5" (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff)" (cast_expression "(long)&uStack_850" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&uStack_850" & identifier)) + (parenthesized_expression "(local_908 & 0xffffffff)" ( (binary_expression "local_908 & 0xffffffff" identifier & number_literal) ))) + identifier) + number_literal) )))) = (pointer_expression "*(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2))" * (cast_expression "(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_448 + ((local_908 & 0xffffffff) - 2))" ( (binary_expression "(long)local_448 + ((local_908 & 0xffffffff) - 2)" (cast_expression "(long)local_448" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((local_908 & 0xffffffff) - 2)" ( (binary_expression "(local_908 & 0xffffffff) - 2" (parenthesized_expression "(local_908 & 0xffffffff)" ( (binary_expression "local_908 & 0xffffffff" identifier & number_literal) )) - number_literal) ))) ))))) ;) })) })) }) (else_clause "else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }" else (compound_statement "{\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }" { (expression_statement "*(undefined4 *)pcVar11 = (undefined4)local_448[0];" (assignment_expression "*(undefined4 *)pcVar11 = (undefined4)local_448[0]" (pointer_expression "*(undefined4 *)pcVar11" * (cast_expression "(undefined4 *)pcVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined4)local_448[0]" ( (type_descriptor "undefined4" type_identifier) ) (subscript_expression "local_448[0]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));" (assignment_expression "*(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4))" (pointer_expression "*(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4)" * (cast_expression "(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4)" ( (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4" (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff) + lVar5" (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff)" (cast_expression "(long)&uStack_850" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&uStack_850" & identifier)) + (parenthesized_expression "(local_908 & 0xffffffff)" ( (binary_expression "local_908 & 0xffffffff" identifier & number_literal) ))) + identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4))" * (cast_expression "(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_448 + ((local_908 & 0xffffffff) - 4))" ( (binary_expression "(long)local_448 + ((local_908 & 0xffffffff) - 4)" (cast_expression "(long)local_448" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((local_908 & 0xffffffff) - 4)" ( (binary_expression "(local_908 & 0xffffffff) - 4" (parenthesized_expression "(local_908 & 0xffffffff)" ( (binary_expression "local_908 & 0xffffffff" identifier & number_literal) )) - number_literal) ))) ))))) ;) }))) }) (else_clause "else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }" else (compound_statement "{\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }" { (expression_statement "*(undefined8 *)pcVar11 = local_448[0];" (assignment_expression "*(undefined8 *)pcVar11 = local_448[0]" (pointer_expression "*(undefined8 *)pcVar11" * (cast_expression "(undefined8 *)pcVar11" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (subscript_expression "local_448[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));" (assignment_expression "*(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff))" (pointer_expression "*(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5)" * (cast_expression "(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5)" ( (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff) + lVar5" (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff)" (cast_expression "(long)&uStack_850" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&uStack_850" & identifier)) + (parenthesized_expression "(local_908 & 0xffffffff)" ( (binary_expression "local_908 & 0xffffffff" identifier & number_literal) ))) + identifier) )))) = (pointer_expression "*(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff))" * (cast_expression "(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&uStack_450 + (local_908 & 0xffffffff))" ( (binary_expression "(long)&uStack_450 + (local_908 & 0xffffffff)" (cast_expression "(long)&uStack_450" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&uStack_450" & identifier)) + (parenthesized_expression "(local_908 & 0xffffffff)" ( (binary_expression "local_908 & 0xffffffff" identifier & number_literal) ))) ))))) ;) (expression_statement "puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);" (assignment_expression "puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8)" identifier = (cast_expression "(undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_840 + lVar5 & 0xfffffffffffffff8)" ( (binary_expression "(long)local_840 + lVar5 & 0xfffffffffffffff8" (binary_expression "(long)local_840 + lVar5" (cast_expression "(long)local_840" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) & number_literal) )))) ;) (expression_statement "lVar16 = (long)pcVar11 - (long)puVar14;" (assignment_expression "lVar16 = (long)pcVar11 - (long)puVar14" identifier = (binary_expression "(long)pcVar11 - (long)puVar14" (cast_expression "(long)pcVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)puVar14" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "puVar12 = (undefined8 *)((long)local_448 - lVar16);" (assignment_expression "puVar12 = (undefined8 *)((long)local_448 - lVar16)" identifier = (cast_expression "(undefined8 *)((long)local_448 - lVar16)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_448 - lVar16)" ( (binary_expression "(long)local_448 - lVar16" (cast_expression "(long)local_448" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - identifier) )))) ;) (for_statement "for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }" for ( (assignment_expression "uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3)" identifier = (call_expression "(ulong)(uVar15 + (int)lVar16 >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar15 + (int)lVar16 >> 3)" ( (binary_expression "uVar15 + (int)lVar16 >> 3" (binary_expression "uVar15 + (int)lVar16" identifier + (cast_expression "(int)lVar16" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) )))) ; (binary_expression "uVar6 != 0" identifier != number_literal) ; (assignment_expression "uVar6 = uVar6 - 1" identifier = (binary_expression "uVar6 - 1" identifier - number_literal)) ) (compound_statement "{\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }" { (expression_statement "*puVar14 = *puVar12;" (assignment_expression "*puVar14 = *puVar12" (pointer_expression "*puVar14" * identifier) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;" (assignment_expression "puVar12 = puVar12 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "puVar12 + (ulong)bVar17 * -2 + 1" (binary_expression "puVar12 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (ulong)bVar17 * -2 + 1" identifier = (binary_expression "puVar14 + (ulong)bVar17 * -2 + 1" (binary_expression "puVar14 + (ulong)bVar17 * -2" identifier + (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) }))) }) (else_clause "else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }" else (compound_statement "{\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }" { (expression_statement "FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);" (call_expression "FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1)" identifier (argument_list "((long)&local_848 + uVar8,pcVar11,local_918 >> 1)" ( (binary_expression "(long)&local_848 + uVar8" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + identifier) , identifier , (binary_expression "local_918 >> 1" identifier >> number_literal) ))) ;) (expression_statement "FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);" (call_expression "FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1)" identifier (argument_list "((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1)" ( (binary_expression "(long)&local_848 + uVar8 + local_918" (binary_expression "(long)&local_848 + uVar8" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + identifier) + identifier) , identifier , (binary_expression "uVar6 >> 1" identifier >> number_literal) ))) ;) (expression_statement "lVar5 = uVar8 + local_918 + uVar6;" (assignment_expression "lVar5 = uVar8 + local_918 + uVar6" identifier = (binary_expression "uVar8 + local_918 + uVar6" (binary_expression "uVar8 + local_918" identifier + identifier) + identifier)) ;) (expression_statement "FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);" (call_expression "FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1)" identifier (argument_list "((long)&local_848 + lVar5,local_448,local_908 >> 1)" ( (binary_expression "(long)&local_848 + lVar5" (cast_expression "(long)&local_848" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&local_848" & identifier)) + identifier) , identifier , (binary_expression "local_908 >> 1" identifier >> number_literal) ))) ;) }))) (expression_statement "iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);" (assignment_expression "iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6)" identifier = (call_expression "FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6)" identifier (argument_list "(param_1,&local_848,local_908 + lVar5,param_5,param_6)" ( identifier , (pointer_expression "&local_848" & identifier) , (binary_expression "local_908 + lVar5" identifier + identifier) , identifier , identifier )))) ;) (expression_statement "FUN_00163fa8(param_4);" (call_expression "FUN_00163fa8(param_4)" identifier (argument_list "(param_4)" ( identifier ))) ;) }) (else_clause "else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }" else (compound_statement "{\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }" { (expression_statement "FUN_0011aa69(param_1,"user + domain + host name too big");" (call_expression "FUN_0011aa69(param_1,"user + domain + host name too big")" identifier (argument_list "(param_1,"user + domain + host name too big")" ( identifier , (string_literal ""user + domain + host name too big"" " string_content ") ))) ;) (expression_statement "iVar4 = 0x1b;" (assignment_expression "iVar4 = 0x1b" identifier = number_literal) ;) }))) }) (else_clause "else {\n    FUN_0011aa69(param_1,"incoming NTLM message too big");\n    iVar4 = 0x1b;\n  }" else (compound_statement "{\n    FUN_0011aa69(param_1,"incoming NTLM message too big");\n    iVar4 = 0x1b;\n  }" { (expression_statement "FUN_0011aa69(param_1,"incoming NTLM message too big");" (call_expression "FUN_0011aa69(param_1,"incoming NTLM message too big")" identifier (argument_list "(param_1,"incoming NTLM message too big")" ( identifier , (string_literal ""incoming NTLM message too big"" " string_content ") ))) ;) (expression_statement "iVar4 = 0x1b;" (assignment_expression "iVar4 = 0x1b" identifier = number_literal) ;) }))) (labeled_statement "LAB_001641e5:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) 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 IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 IDENT + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ IDENT) - LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ IDENT) - LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) )))) , (binary_expression IDENT != LIT)) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) )))) , (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) , (binary_expression IDENT != LIT)) )))) )) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (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 = (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 = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , (pointer_expression & IDENT) , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , (binary_expression IDENT & LIT) , IDENT , (binary_expression IDENT & LIT) , IDENT , LIT , LIT , LIT , LIT , (binary_expression IDENT & LIT) , IDENT , (binary_expression IDENT & LIT) , IDENT , (binary_expression IDENT & LIT) , (binary_expression (binary_expression IDENT >> LIT) & LIT) , LIT , LIT , (binary_expression IDENT & LIT) , IDENT , (binary_expression IDENT & LIT) , IDENT , (binary_expression IDENT & LIT) , (binary_expression (binary_expression IDENT >> LIT) & LIT) , LIT , LIT , (binary_expression IDENT & LIT) , (binary_expression IDENT >> LIT) , (binary_expression IDENT & LIT) , (binary_expression IDENT >> LIT) , (binary_expression (binary_expression IDENT + IDENT) & LIT) , (binary_expression (binary_expression (binary_expression IDENT + IDENT) >> LIT) & LIT) , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , LIT , (binary_expression IDENT & LIT) , (binary_expression (binary_expression IDENT >> LIT) & LIT) , (binary_expression (binary_expression IDENT >> LIT) & LIT) , (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) ))) , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT + IDENT) + IDENT) + IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) ))) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + IDENT) ))) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) + IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - LIT) ))) ))))) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) + IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - LIT) ))) ))))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - IDENT) )))) ;) (for_statement for ( (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) >> LIT) )))) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT - LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) , IDENT , (binary_expression IDENT >> LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) + IDENT) , IDENT , (binary_expression IDENT >> LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) , IDENT , (binary_expression IDENT >> LIT) ))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , (binary_expression IDENT + IDENT) , IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "int FUN_001640ae(undefined8 param_1,char *param_2,undefined8 param_3,long param_4,undefined8 param_5\n                ,undefined8 param_6)\n\n{\n  uint uVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  long lVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  uint uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  undefined8 *puVar12;\n  char *pcVar13;\n  undefined8 *puVar14;\n  uint uVar15;\n  long lVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  char *local_920;\n  ulong local_918;\n  ulong local_908;\n  undefined1 *local_8e8;\n  uint local_8cc;\n  undefined1 *local_8c8;\n  undefined8 local_8c0;\n  undefined1 local_8b8 [16];\n  undefined8 local_8a8;\n  undefined8 uStack_8a0;\n  undefined8 local_898;\n  undefined1 local_888 [32];\n  undefined1 local_868 [24];\n  undefined8 uStack_850;\n  undefined8 local_848;\n  undefined8 local_840 [126];\n  undefined8 uStack_450;\n  undefined8 local_448 [2];\n  undefined8 local_438 [127];\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_8cc = 0x18;\n  local_8c8 = (undefined1 *)0x0;\n  uVar15 = *(uint *)(param_4 + 4);\n  local_448[0] = 0;\n  local_448[1] = 0;\n  puVar12 = local_438;\n  for (lVar5 = 0x7e; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar12 = 0;\n    puVar12 = puVar12 + 1;\n  }\n  *(undefined1 *)puVar12 = 0;\n  local_920 = strchr(param_2,0x5c);\n  if ((local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)) {\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = param_2;\n  }\n  else {\n    local_918 = (long)local_920 - (long)param_2;\n    local_920 = local_920 + 1;\n    pcVar11 = param_2;\n  }\n  uVar6 = 0xffffffffffffffff;\n  pcVar13 = local_920;\n  do {\n    if (uVar6 == 0) break;\n    uVar6 = uVar6 - 1;\n    cVar2 = *pcVar13;\n    pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n  } while (cVar2 != '\0');\n  uVar6 = ~uVar6 - 1;\n  iVar4 = FUN_0014c0ee(local_448,0x401);\n  if (iVar4 == 0) {\n    uVar7 = 0xffffffffffffffff;\n    pcVar13 = (char *)local_448;\n    do {\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar7 - 1;\n  }\n  else {\n    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }\n  if ((*(uint *)(param_4 + 4) & 0x80000) == 0) {\n    if ((*(uint *)(param_4 + 4) & 0x200) == 0) {\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }\n    else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }\n  }\n  else {\n    iVar4 = FUN_0014ffcf(param_1,local_888,8);\n    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;\n    local_8e8 = local_8c8;\n  }\n  uVar15 = uVar15 & 1;\n  if (uVar15 != 0) {\n    local_918 = local_918 << 1;\n    uVar6 = uVar6 * 2;\n    local_908 = local_908 << 1;\n  }\n  uVar1 = local_8cc + 0x58;\n  uVar7 = local_918 + uVar1;\n  uVar3 = *(uint *)(param_4 + 4);\n  uVar8 = (uVar6 & 0xffffffff) >> 8 & 0xff;\n  uVar9 = local_8cc >> 8 & 0xff;\n  uVar10 = local_918 >> 8 & 0xff;\n  iVar4 = curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18);\n  uVar7 = (ulong)iVar4;\n  if (uVar7 < 1000) {\n    *(undefined8 *)((long)&local_848 + uVar7) = local_8a8;\n    *(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;\n    *(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;\n    uVar7 = uVar7 + 0x18;\n  }\n  uVar8 = local_8cc + uVar7;\n  if (uVar8 < 0x401) {\n    memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);\n    (*(code *)PTR_free_0018c0b8)(local_8c8);\n    if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }\n    else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }\n  }\n  else {\n    FUN_0011aa69(param_1,"incoming NTLM message too big");\n    iVar4 = 0x1b;\n  }\nLAB_001641e5:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar4;\n}" (primitive_type "int") (function_declarator "FUN_001640ae(undefined8 param_1,char *param_2,undefined8 param_3,long param_4,undefined8 param_5\n                ,undefined8 param_6)" (identifier "FUN_001640ae") (parameter_list "(undefined8 param_1,char *param_2,undefined8 param_3,long param_4,undefined8 param_5\n                ,undefined8 param_6)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined8 param_3" (type_identifier "undefined8") (identifier "param_3")) (, ",") (parameter_declaration "long param_4" (sized_type_specifier "long" (long "long")) (identifier "param_4")) (, ",") (parameter_declaration "undefined8 param_5" (type_identifier "undefined8") (identifier "param_5")) (, ",") (parameter_declaration "undefined8 param_6" (type_identifier "undefined8") (identifier "param_6")) () ")"))) (compound_statement "{\n  uint uVar1;\n  char cVar2;\n  uint uVar3;\n  int iVar4;\n  long lVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  uint uVar9;\n  ulong uVar10;\n  char *pcVar11;\n  undefined8 *puVar12;\n  char *pcVar13;\n  undefined8 *puVar14;\n  uint uVar15;\n  long lVar16;\n  long in_FS_OFFSET;\n  byte bVar17;\n  char *local_920;\n  ulong local_918;\n  ulong local_908;\n  undefined1 *local_8e8;\n  uint local_8cc;\n  undefined1 *local_8c8;\n  undefined8 local_8c0;\n  undefined1 local_8b8 [16];\n  undefined8 local_8a8;\n  undefined8 uStack_8a0;\n  undefined8 local_898;\n  undefined1 local_888 [32];\n  undefined1 local_868 [24];\n  undefined8 uStack_850;\n  undefined8 local_848;\n  undefined8 local_840 [126];\n  undefined8 uStack_450;\n  undefined8 local_448 [2];\n  undefined8 local_438 [127];\n  long local_40;\n  \n  bVar17 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  local_8cc = 0x18;\n  local_8c8 = (undefined1 *)0x0;\n  uVar15 = *(uint *)(param_4 + 4);\n  local_448[0] = 0;\n  local_448[1] = 0;\n  puVar12 = local_438;\n  for (lVar5 = 0x7e; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar12 = 0;\n    puVar12 = puVar12 + 1;\n  }\n  *(undefined1 *)puVar12 = 0;\n  local_920 = strchr(param_2,0x5c);\n  if ((local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)) {\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = param_2;\n  }\n  else {\n    local_918 = (long)local_920 - (long)param_2;\n    local_920 = local_920 + 1;\n    pcVar11 = param_2;\n  }\n  uVar6 = 0xffffffffffffffff;\n  pcVar13 = local_920;\n  do {\n    if (uVar6 == 0) break;\n    uVar6 = uVar6 - 1;\n    cVar2 = *pcVar13;\n    pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n  } while (cVar2 != '\0');\n  uVar6 = ~uVar6 - 1;\n  iVar4 = FUN_0014c0ee(local_448,0x401);\n  if (iVar4 == 0) {\n    uVar7 = 0xffffffffffffffff;\n    pcVar13 = (char *)local_448;\n    do {\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar7 - 1;\n  }\n  else {\n    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }\n  if ((*(uint *)(param_4 + 4) & 0x80000) == 0) {\n    if ((*(uint *)(param_4 + 4) & 0x200) == 0) {\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }\n    else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }\n  }\n  else {\n    iVar4 = FUN_0014ffcf(param_1,local_888,8);\n    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;\n    local_8e8 = local_8c8;\n  }\n  uVar15 = uVar15 & 1;\n  if (uVar15 != 0) {\n    local_918 = local_918 << 1;\n    uVar6 = uVar6 * 2;\n    local_908 = local_908 << 1;\n  }\n  uVar1 = local_8cc + 0x58;\n  uVar7 = local_918 + uVar1;\n  uVar3 = *(uint *)(param_4 + 4);\n  uVar8 = (uVar6 & 0xffffffff) >> 8 & 0xff;\n  uVar9 = local_8cc >> 8 & 0xff;\n  uVar10 = local_918 >> 8 & 0xff;\n  iVar4 = curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18);\n  uVar7 = (ulong)iVar4;\n  if (uVar7 < 1000) {\n    *(undefined8 *)((long)&local_848 + uVar7) = local_8a8;\n    *(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;\n    *(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;\n    uVar7 = uVar7 + 0x18;\n  }\n  uVar8 = local_8cc + uVar7;\n  if (uVar8 < 0x401) {\n    memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);\n    (*(code *)PTR_free_0018c0b8)(local_8c8);\n    if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }\n    else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }\n  }\n  else {\n    FUN_0011aa69(param_1,"incoming NTLM message too big");\n    iVar4 = 0x1b;\n  }\nLAB_001641e5:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar4;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "long lVar5;" (sized_type_specifier "long" (long "long")) (identifier "lVar5") (; ";")) (declaration "ulong uVar6;" (type_identifier "ulong") (identifier "uVar6") (; ";")) (declaration "ulong uVar7;" (type_identifier "ulong") (identifier "uVar7") (; ";")) (declaration "ulong uVar8;" (type_identifier "ulong") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "ulong uVar10;" (type_identifier "ulong") (identifier "uVar10") (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "undefined8 *puVar12;" (type_identifier "undefined8") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "char *pcVar13;" (primitive_type "char") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "undefined8 *puVar14;" (type_identifier "undefined8") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "long lVar16;" (sized_type_specifier "long" (long "long")) (identifier "lVar16") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "byte bVar17;" (type_identifier "byte") (identifier "bVar17") (; ";")) (declaration "char *local_920;" (primitive_type "char") (pointer_declarator "*local_920" (* "*") (identifier "local_920")) (; ";")) (declaration "ulong local_918;" (type_identifier "ulong") (identifier "local_918") (; ";")) (declaration "ulong local_908;" (type_identifier "ulong") (identifier "local_908") (; ";")) (declaration "undefined1 *local_8e8;" (type_identifier "undefined1") (pointer_declarator "*local_8e8" (* "*") (identifier "local_8e8")) (; ";")) (declaration "uint local_8cc;" (type_identifier "uint") (identifier "local_8cc") (; ";")) (declaration "undefined1 *local_8c8;" (type_identifier "undefined1") (pointer_declarator "*local_8c8" (* "*") (identifier "local_8c8")) (; ";")) (declaration "undefined8 local_8c0;" (type_identifier "undefined8") (identifier "local_8c0") (; ";")) (declaration "undefined1 local_8b8 [16];" (type_identifier "undefined1") (array_declarator "local_8b8 [16]" (identifier "local_8b8") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined8 local_8a8;" (type_identifier "undefined8") (identifier "local_8a8") (; ";")) (declaration "undefined8 uStack_8a0;" (type_identifier "undefined8") (identifier "uStack_8a0") (; ";")) (declaration "undefined8 local_898;" (type_identifier "undefined8") (identifier "local_898") (; ";")) (declaration "undefined1 local_888 [32];" (type_identifier "undefined1") (array_declarator "local_888 [32]" (identifier "local_888") ([ "[") (number_literal "32") (] "]")) (; ";")) (declaration "undefined1 local_868 [24];" (type_identifier "undefined1") (array_declarator "local_868 [24]" (identifier "local_868") ([ "[") (number_literal "24") (] "]")) (; ";")) (declaration "undefined8 uStack_850;" (type_identifier "undefined8") (identifier "uStack_850") (; ";")) (declaration "undefined8 local_848;" (type_identifier "undefined8") (identifier "local_848") (; ";")) (declaration "undefined8 local_840 [126];" (type_identifier "undefined8") (array_declarator "local_840 [126]" (identifier "local_840") ([ "[") (number_literal "126") (] "]")) (; ";")) (declaration "undefined8 uStack_450;" (type_identifier "undefined8") (identifier "uStack_450") (; ";")) (declaration "undefined8 local_448 [2];" (type_identifier "undefined8") (array_declarator "local_448 [2]" (identifier "local_448") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined8 local_438 [127];" (type_identifier "undefined8") (array_declarator "local_438 [127]" (identifier "local_438") ([ "[") (number_literal "127") (] "]")) (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "bVar17 = 0;" (assignment_expression "bVar17 = 0" (identifier "bVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "local_8cc = 0x18;" (assignment_expression "local_8cc = 0x18" (identifier "local_8cc") (= "=") (number_literal "0x18")) (; ";")) (expression_statement "local_8c8 = (undefined1 *)0x0;" (assignment_expression "local_8c8 = (undefined1 *)0x0" (identifier "local_8c8") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar15 = *(uint *)(param_4 + 4);" (assignment_expression "uVar15 = *(uint *)(param_4 + 4)" (identifier "uVar15") (= "=") (pointer_expression "*(uint *)(param_4 + 4)" (* "*") (cast_expression "(uint *)(param_4 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_448[0] = 0;" (assignment_expression "local_448[0] = 0" (subscript_expression "local_448[0]" (identifier "local_448") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_448[1] = 0;" (assignment_expression "local_448[1] = 0" (subscript_expression "local_448[1]" (identifier "local_448") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar12 = local_438;" (assignment_expression "puVar12 = local_438" (identifier "puVar12") (= "=") (identifier "local_438")) (; ";")) (for_statement "for (lVar5 = 0x7e; lVar5 != 0; lVar5 = lVar5 + -1) {\n    *puVar12 = 0;\n    puVar12 = puVar12 + 1;\n  }" (for "for") (( "(") (assignment_expression "lVar5 = 0x7e" (identifier "lVar5") (= "=") (number_literal "0x7e")) (; ";") (binary_expression "lVar5 != 0" (identifier "lVar5") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "lVar5 = lVar5 + -1" (identifier "lVar5") (= "=") (binary_expression "lVar5 + -1" (identifier "lVar5") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n    *puVar12 = 0;\n    puVar12 = puVar12 + 1;\n  }" ({ "{") (expression_statement "*puVar12 = 0;" (assignment_expression "*puVar12 = 0" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" (identifier "puVar12") (= "=") (binary_expression "puVar12 + 1" (identifier "puVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)puVar12 = 0;" (assignment_expression "*(undefined1 *)puVar12 = 0" (pointer_expression "*(undefined1 *)puVar12" (* "*") (cast_expression "(undefined1 *)puVar12" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_920 = strchr(param_2,0x5c);" (assignment_expression "local_920 = strchr(param_2,0x5c)" (identifier "local_920") (= "=") (call_expression "strchr(param_2,0x5c)" (identifier "strchr") (argument_list "(param_2,0x5c)" (( "(") (identifier "param_2") (, ",") (number_literal "0x5c") () ")")))) (; ";")) (if_statement "if ((local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)) {\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = param_2;\n  }\n  else {\n    local_918 = (long)local_920 - (long)param_2;\n    local_920 = local_920 + 1;\n    pcVar11 = param_2;\n  }" (if "if") (parenthesized_expression "((local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0))" (( "(") (binary_expression "(local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)" (parenthesized_expression "(local_920 == (char *)0x0)" (( "(") (binary_expression "local_920 == (char *)0x0" (identifier "local_920") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)" (( "(") (comma_expression "local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0" (assignment_expression "local_920 = strchr(param_2,0x2f)" (identifier "local_920") (= "=") (call_expression "strchr(param_2,0x2f)" (identifier "strchr") (argument_list "(param_2,0x2f)" (( "(") (identifier "param_2") (, ",") (number_literal "0x2f") () ")")))) (, ",") (binary_expression "local_920 == (char *)0x0" (identifier "local_920") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n    local_918 = 0;\n    pcVar11 = "";\n    local_920 = param_2;\n  }" ({ "{") (expression_statement "local_918 = 0;" (assignment_expression "local_918 = 0" (identifier "local_918") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar11 = "";" (assignment_expression "pcVar11 = """ (identifier "pcVar11") (= "=") (string_literal """" (" """) (" """))) (; ";")) (expression_statement "local_920 = param_2;" (assignment_expression "local_920 = param_2" (identifier "local_920") (= "=") (identifier "param_2")) (; ";")) (} "}")) (else_clause "else {\n    local_918 = (long)local_920 - (long)param_2;\n    local_920 = local_920 + 1;\n    pcVar11 = param_2;\n  }" (else "else") (compound_statement "{\n    local_918 = (long)local_920 - (long)param_2;\n    local_920 = local_920 + 1;\n    pcVar11 = param_2;\n  }" ({ "{") (expression_statement "local_918 = (long)local_920 - (long)param_2;" (assignment_expression "local_918 = (long)local_920 - (long)param_2" (identifier "local_918") (= "=") (binary_expression "(long)local_920 - (long)param_2" (cast_expression "(long)local_920" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_920")) (- "-") (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")))) (; ";")) (expression_statement "local_920 = local_920 + 1;" (assignment_expression "local_920 = local_920 + 1" (identifier "local_920") (= "=") (binary_expression "local_920 + 1" (identifier "local_920") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar11 = param_2;" (assignment_expression "pcVar11 = param_2" (identifier "pcVar11") (= "=") (identifier "param_2")) (; ";")) (} "}")))) (expression_statement "uVar6 = 0xffffffffffffffff;" (assignment_expression "uVar6 = 0xffffffffffffffff" (identifier "uVar6") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar13 = local_920;" (assignment_expression "pcVar13 = local_920" (identifier "pcVar13") (= "=") (identifier "local_920")) (; ";")) (do_statement "do {\n    if (uVar6 == 0) break;\n    uVar6 = uVar6 - 1;\n    cVar2 = *pcVar13;\n    pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n  } while (cVar2 != '\0');" (do "do") (compound_statement "{\n    if (uVar6 == 0) break;\n    uVar6 = uVar6 - 1;\n    cVar2 = *pcVar13;\n    pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n  }" ({ "{") (if_statement "if (uVar6 == 0) break;" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar6 = uVar6 - 1;" (assignment_expression "uVar6 = uVar6 - 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 - 1" (identifier "uVar6") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar2 = *pcVar13;" (assignment_expression "cVar2 = *pcVar13" (identifier "cVar2") (= "=") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13"))) (; ";")) (expression_statement "pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1" (identifier "pcVar13") (= "=") (binary_expression "pcVar13 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar13 + (ulong)bVar17 * -2" (identifier "pcVar13") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "uVar6 = ~uVar6 - 1;" (assignment_expression "uVar6 = ~uVar6 - 1" (identifier "uVar6") (= "=") (binary_expression "~uVar6 - 1" (unary_expression "~uVar6" (~ "~") (identifier "uVar6")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "iVar4 = FUN_0014c0ee(local_448,0x401);" (assignment_expression "iVar4 = FUN_0014c0ee(local_448,0x401)" (identifier "iVar4") (= "=") (call_expression "FUN_0014c0ee(local_448,0x401)" (identifier "FUN_0014c0ee") (argument_list "(local_448,0x401)" (( "(") (identifier "local_448") (, ",") (number_literal "0x401") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) {\n    uVar7 = 0xffffffffffffffff;\n    pcVar13 = (char *)local_448;\n    do {\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar7 - 1;\n  }\n  else {\n    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar7 = 0xffffffffffffffff;\n    pcVar13 = (char *)local_448;\n    do {\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    } while (cVar2 != '\0');\n    local_908 = ~uVar7 - 1;\n  }" ({ "{") (expression_statement "uVar7 = 0xffffffffffffffff;" (assignment_expression "uVar7 = 0xffffffffffffffff" (identifier "uVar7") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar13 = (char *)local_448;" (assignment_expression "pcVar13 = (char *)local_448" (identifier "pcVar13") (= "=") (cast_expression "(char *)local_448" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_448"))) (; ";")) (do_statement "do {\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    } while (cVar2 != '\0');" (do "do") (compound_statement "{\n      if (uVar7 == 0) break;\n      uVar7 = uVar7 - 1;\n      cVar2 = *pcVar13;\n      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;\n    }" ({ "{") (if_statement "if (uVar7 == 0) break;" (if "if") (parenthesized_expression "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar7 = uVar7 - 1;" (assignment_expression "uVar7 = uVar7 - 1" (identifier "uVar7") (= "=") (binary_expression "uVar7 - 1" (identifier "uVar7") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar2 = *pcVar13;" (assignment_expression "cVar2 = *pcVar13" (identifier "cVar2") (= "=") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13"))) (; ";")) (expression_statement "pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;" (assignment_expression "pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1" (identifier "pcVar13") (= "=") (binary_expression "pcVar13 + (ulong)bVar17 * -2 + 1" (binary_expression "pcVar13 + (ulong)bVar17 * -2" (identifier "pcVar13") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "local_908 = ~uVar7 - 1;" (assignment_expression "local_908 = ~uVar7 - 1" (identifier "local_908") (= "=") (binary_expression "~uVar7 - 1" (unary_expression "~uVar7" (~ "~") (identifier "uVar7")) (- "-") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }" (else "else") (compound_statement "{\n    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");\n    local_908 = 0;\n  }" ({ "{") (expression_statement "FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");" (call_expression "FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n")" (identifier "FUN_0011a8d8") (argument_list "(param_1,"gethostname() failed, continuing without!\n")" (( "(") (identifier "param_1") (, ",") (string_literal ""gethostname() failed, continuing without!\n"" (" """) (string_content "gethostname() failed, continuing without!") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "local_908 = 0;" (assignment_expression "local_908 = 0" (identifier "local_908") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if ((*(uint *)(param_4 + 4) & 0x80000) == 0) {\n    if ((*(uint *)(param_4 + 4) & 0x200) == 0) {\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }\n    else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }\n  }\n  else {\n    iVar4 = FUN_0014ffcf(param_1,local_888,8);\n    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;\n    local_8e8 = local_8c8;\n  }" (if "if") (parenthesized_expression "((*(uint *)(param_4 + 4) & 0x80000) == 0)" (( "(") (binary_expression "(*(uint *)(param_4 + 4) & 0x80000) == 0" (parenthesized_expression "(*(uint *)(param_4 + 4) & 0x80000)" (( "(") (binary_expression "*(uint *)(param_4 + 4) & 0x80000" (pointer_expression "*(uint *)(param_4 + 4)" (* "*") (cast_expression "(uint *)(param_4 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0x80000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if ((*(uint *)(param_4 + 4) & 0x200) == 0) {\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }\n    else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }\n  }" ({ "{") (if_statement "if ((*(uint *)(param_4 + 4) & 0x200) == 0) {\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }\n    else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }" (if "if") (parenthesized_expression "((*(uint *)(param_4 + 4) & 0x200) == 0)" (( "(") (binary_expression "(*(uint *)(param_4 + 4) & 0x200) == 0" (parenthesized_expression "(*(uint *)(param_4 + 4) & 0x200)" (( "(") (binary_expression "*(uint *)(param_4 + 4) & 0x200" (pointer_expression "*(uint *)(param_4 + 4)" (* "*") (cast_expression "(uint *)(param_4 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0x200")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar4 = FUN_0014ed03(param_1,param_3,local_868);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(local_868,param_4 + 8,local_888);\n      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);\n      if (iVar4 != 0) goto LAB_001641e5;\n      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);\n      local_8e8 = local_888;\n    }" ({ "{") (expression_statement "iVar4 = FUN_0014ed03(param_1,param_3,local_868);" (assignment_expression "iVar4 = FUN_0014ed03(param_1,param_3,local_868)" (identifier "iVar4") (= "=") (call_expression "FUN_0014ed03(param_1,param_3,local_868)" (identifier "FUN_0014ed03") (argument_list "(param_1,param_3,local_868)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "local_868") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) goto LAB_001641e5;" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001641e5;" (goto "goto") (statement_identifier "LAB_001641e5") (; ";"))) (expression_statement "FUN_0014eaf6(local_868,param_4 + 8,local_888);" (call_expression "FUN_0014eaf6(local_868,param_4 + 8,local_888)" (identifier "FUN_0014eaf6") (argument_list "(local_868,param_4 + 8,local_888)" (( "(") (identifier "local_868") (, ",") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8")) (, ",") (identifier "local_888") () ")"))) (; ";")) (expression_statement "iVar4 = FUN_0014eba5(param_1,param_3,&local_848);" (assignment_expression "iVar4 = FUN_0014eba5(param_1,param_3,&local_848)" (identifier "iVar4") (= "=") (call_expression "FUN_0014eba5(param_1,param_3,&local_848)" (identifier "FUN_0014eba5") (argument_list "(param_1,param_3,&local_848)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (pointer_expression "&local_848" (& "&") (identifier "local_848")) () ")")))) (; ";")) (if_statement "if (iVar4 != 0) goto LAB_001641e5;" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001641e5;" (goto "goto") (statement_identifier "LAB_001641e5") (; ";"))) (expression_statement "FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);" (call_expression "FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8)" (identifier "FUN_0014eaf6") (argument_list "(&local_848,param_4 + 8,&local_8a8)" (( "(") (pointer_expression "&local_848" (& "&") (identifier "local_848")) (, ",") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8")) (, ",") (pointer_expression "&local_8a8" (& "&") (identifier "local_8a8")) () ")"))) (; ";")) (expression_statement "local_8e8 = local_888;" (assignment_expression "local_8e8 = local_888" (identifier "local_8e8") (= "=") (identifier "local_888")) (; ";")) (} "}")) (else_clause "else {\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }" (else "else") (compound_statement "{\n      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);\n      if (iVar4 != 0) goto LAB_001641e5;\n      local_8a8 = local_8c0;\n      uStack_8a0 = 0;\n      local_898 = 0;\n      local_848 = *(undefined8 *)(param_4 + 8);\n      local_840[0] = local_8c0;\n      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);\n      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;\n      local_8e8 = local_888;\n      FUN_0014eaf6(local_868,local_8b8,local_8e8);\n    }" ({ "{") (expression_statement "iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);" (assignment_expression "iVar4 = FUN_0014ffcf(param_1,&local_8c0,8)" (identifier "iVar4") (= "=") (call_expression "FUN_0014ffcf(param_1,&local_8c0,8)" (identifier "FUN_0014ffcf") (argument_list "(param_1,&local_8c0,8)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_8c0" (& "&") (identifier "local_8c0")) (, ",") (number_literal "8") () ")")))) (; ";")) (if_statement "if (iVar4 != 0) goto LAB_001641e5;" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001641e5;" (goto "goto") (statement_identifier "LAB_001641e5") (; ";"))) (expression_statement "local_8a8 = local_8c0;" (assignment_expression "local_8a8 = local_8c0" (identifier "local_8a8") (= "=") (identifier "local_8c0")) (; ";")) (expression_statement "uStack_8a0 = 0;" (assignment_expression "uStack_8a0 = 0" (identifier "uStack_8a0") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_898 = 0;" (assignment_expression "local_898 = 0" (identifier "local_898") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_848 = *(undefined8 *)(param_4 + 8);" (assignment_expression "local_848 = *(undefined8 *)(param_4 + 8)" (identifier "local_848") (= "=") (pointer_expression "*(undefined8 *)(param_4 + 8)" (* "*") (cast_expression "(undefined8 *)(param_4 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 8)" (( "(") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_840[0] = local_8c0;" (assignment_expression "local_840[0] = local_8c0" (subscript_expression "local_840[0]" (identifier "local_840") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "local_8c0")) (; ";")) (expression_statement "iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);" (assignment_expression "iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10)" (identifier "iVar4") (= "=") (call_expression "FUN_0016c0f0(&local_848,0x10,local_8b8,0x10)" (identifier "FUN_0016c0f0") (argument_list "(&local_848,0x10,local_8b8,0x10)" (( "(") (pointer_expression "&local_848" (& "&") (identifier "local_848")) (, ",") (number_literal "0x10") (, ",") (identifier "local_8b8") (, ",") (number_literal "0x10") () ")")))) (; ";")) (if_statement "if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))\n      goto LAB_001641e5;" (if "if") (parenthesized_expression "((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))" (( "(") (binary_expression "(iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)" (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)" (( "(") (comma_expression "iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0" (assignment_expression "iVar4 = FUN_0014ed03(param_1,param_3,local_868)" (identifier "iVar4") (= "=") (call_expression "FUN_0014ed03(param_1,param_3,local_868)" (identifier "FUN_0014ed03") (argument_list "(param_1,param_3,local_868)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "local_868") () ")")))) (, ",") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_001641e5;" (goto "goto") (statement_identifier "LAB_001641e5") (; ";"))) (expression_statement "local_8e8 = local_888;" (assignment_expression "local_8e8 = local_888" (identifier "local_8e8") (= "=") (identifier "local_888")) (; ";")) (expression_statement "FUN_0014eaf6(local_868,local_8b8,local_8e8);" (call_expression "FUN_0014eaf6(local_868,local_8b8,local_8e8)" (identifier "FUN_0014eaf6") (argument_list "(local_868,local_8b8,local_8e8)" (( "(") (identifier "local_868") (, ",") (identifier "local_8b8") (, ",") (identifier "local_8e8") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    iVar4 = FUN_0014ffcf(param_1,local_888,8);\n    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;\n    local_8e8 = local_8c8;\n  }" (else "else") (compound_statement "{\n    iVar4 = FUN_0014ffcf(param_1,local_888,8);\n    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;\n    local_8e8 = local_8c8;\n  }" ({ "{") (expression_statement "iVar4 = FUN_0014ffcf(param_1,local_888,8);" (assignment_expression "iVar4 = FUN_0014ffcf(param_1,local_888,8)" (identifier "iVar4") (= "=") (call_expression "FUN_0014ffcf(param_1,local_888,8)" (identifier "FUN_0014ffcf") (argument_list "(param_1,local_888,8)" (( "(") (identifier "param_1") (, ",") (identifier "local_888") (, ",") (number_literal "8") () ")")))) (; ";")) (if_statement "if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))\n    goto LAB_001641e5;" (if "if") (parenthesized_expression "((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))" (( "(") (binary_expression "(((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))\n       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0)))" (parenthesized_expression "(((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))" (( "(") (binary_expression "((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||\n        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0)" (parenthesized_expression "((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))" (( "(") (binary_expression "(iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)" (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)" (( "(") (comma_expression "iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0" (assignment_expression "iVar4 = FUN_0014ed03(param_1,param_3,local_868)" (identifier "iVar4") (= "=") (call_expression "FUN_0014ed03(param_1,param_3,local_868)" (identifier "FUN_0014ed03") (argument_list "(param_1,param_3,local_868)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (identifier "local_868") () ")")))) (, ",") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0)" (( "(") (comma_expression "iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0" (assignment_expression "iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848)" (identifier "iVar4") (= "=") (call_expression "FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848)" (identifier "FUN_0014ee5c") (argument_list "(local_920,uVar6,pcVar11,local_918,local_868,&local_848)" (( "(") (identifier "local_920") (, ",") (identifier "uVar6") (, ",") (identifier "pcVar11") (, ",") (identifier "local_918") (, ",") (identifier "local_868") (, ",") (pointer_expression "&local_848" (& "&") (identifier "local_848")) () ")")))) (, ",") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0)))" (( "(") (parenthesized_expression "(iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))" (( "(") (comma_expression "iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0)" (assignment_expression "iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8)" (identifier "iVar4") (= "=") (call_expression "FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8)" (identifier "FUN_0014f0be") (argument_list "(&local_848,local_888,param_4 + 8,&local_8a8)" (( "(") (pointer_expression "&local_848" (& "&") (identifier "local_848")) (, ",") (identifier "local_888") (, ",") (binary_expression "param_4 + 8" (identifier "param_4") (+ "+") (number_literal "8")) (, ",") (pointer_expression "&local_8a8" (& "&") (identifier "local_8a8")) () ")")))) (, ",") (binary_expression "iVar4 != 0 ||\n           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0)" (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0)" (( "(") (comma_expression "iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0" (assignment_expression "iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc)" (identifier "iVar4") (= "=") (call_expression "FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc)" (identifier "FUN_0014ef6e") (argument_list "(&local_848,local_888,param_4,&local_8c8,&local_8cc)" (( "(") (pointer_expression "&local_848" (& "&") (identifier "local_848")) (, ",") (identifier "local_888") (, ",") (identifier "param_4") (, ",") (pointer_expression "&local_8c8" (& "&") (identifier "local_8c8")) (, ",") (pointer_expression "&local_8cc" (& "&") (identifier "local_8cc")) () ")")))) (, ",") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0"))) () ")")))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_001641e5;" (goto "goto") (statement_identifier "LAB_001641e5") (; ";"))) (expression_statement "local_8e8 = local_8c8;" (assignment_expression "local_8e8 = local_8c8" (identifier "local_8e8") (= "=") (identifier "local_8c8")) (; ";")) (} "}")))) (expression_statement "uVar15 = uVar15 & 1;" (assignment_expression "uVar15 = uVar15 & 1" (identifier "uVar15") (= "=") (binary_expression "uVar15 & 1" (identifier "uVar15") (& "&") (number_literal "1"))) (; ";")) (if_statement "if (uVar15 != 0) {\n    local_918 = local_918 << 1;\n    uVar6 = uVar6 * 2;\n    local_908 = local_908 << 1;\n  }" (if "if") (parenthesized_expression "(uVar15 != 0)" (( "(") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_918 = local_918 << 1;\n    uVar6 = uVar6 * 2;\n    local_908 = local_908 << 1;\n  }" ({ "{") (expression_statement "local_918 = local_918 << 1;" (assignment_expression "local_918 = local_918 << 1" (identifier "local_918") (= "=") (binary_expression "local_918 << 1" (identifier "local_918") (<< "<<") (number_literal "1"))) (; ";")) (expression_statement "uVar6 = uVar6 * 2;" (assignment_expression "uVar6 = uVar6 * 2" (identifier "uVar6") (= "=") (binary_expression "uVar6 * 2" (identifier "uVar6") (* "*") (number_literal "2"))) (; ";")) (expression_statement "local_908 = local_908 << 1;" (assignment_expression "local_908 = local_908 << 1" (identifier "local_908") (= "=") (binary_expression "local_908 << 1" (identifier "local_908") (<< "<<") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar1 = local_8cc + 0x58;" (assignment_expression "uVar1 = local_8cc + 0x58" (identifier "uVar1") (= "=") (binary_expression "local_8cc + 0x58" (identifier "local_8cc") (+ "+") (number_literal "0x58"))) (; ";")) (expression_statement "uVar7 = local_918 + uVar1;" (assignment_expression "uVar7 = local_918 + uVar1" (identifier "uVar7") (= "=") (binary_expression "local_918 + uVar1" (identifier "local_918") (+ "+") (identifier "uVar1"))) (; ";")) (expression_statement "uVar3 = *(uint *)(param_4 + 4);" (assignment_expression "uVar3 = *(uint *)(param_4 + 4)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(param_4 + 4)" (* "*") (cast_expression "(uint *)(param_4 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 4)" (( "(") (binary_expression "param_4 + 4" (identifier "param_4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar8 = (uVar6 & 0xffffffff) >> 8 & 0xff;" (assignment_expression "uVar8 = (uVar6 & 0xffffffff) >> 8 & 0xff" (identifier "uVar8") (= "=") (binary_expression "(uVar6 & 0xffffffff) >> 8 & 0xff" (binary_expression "(uVar6 & 0xffffffff) >> 8" (parenthesized_expression "(uVar6 & 0xffffffff)" (( "(") (binary_expression "uVar6 & 0xffffffff" (identifier "uVar6") (& "&") (number_literal "0xffffffff")) () ")")) (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "uVar9 = local_8cc >> 8 & 0xff;" (assignment_expression "uVar9 = local_8cc >> 8 & 0xff" (identifier "uVar9") (= "=") (binary_expression "local_8cc >> 8 & 0xff" (binary_expression "local_8cc >> 8" (identifier "local_8cc") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "uVar10 = local_918 >> 8 & 0xff;" (assignment_expression "uVar10 = local_918 >> 8 & 0xff" (identifier "uVar10") (= "=") (binary_expression "local_918 >> 8 & 0xff" (binary_expression "local_918 >> 8" (identifier "local_918") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "iVar4 = curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18);" (assignment_expression "iVar4 = curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18)" (identifier "iVar4") (= "=") (call_expression "curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18)" (identifier "curl_msnprintf") (argument_list "(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,\n                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,\n                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,\n                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,\n                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,\n                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,\n                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18)" (( "(") (pointer_expression "&local_848" (& "&") (identifier "local_848")) (, ",") (number_literal "0x400") (, ",") (pointer_expression "&DAT_00177f58" (& "&") (identifier "DAT_00177f58")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0x18") (, ",") (number_literal "0") (, ",") (number_literal "0x18") (, ",") (number_literal "0") (, ",") (number_literal "0x40") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (binary_expression "local_8cc & 0xff" (identifier "local_8cc") (& "&") (number_literal "0xff")) (, ",") (identifier "uVar9") (, ",") (binary_expression "local_8cc & 0xff" (identifier "local_8cc") (& "&") (number_literal "0xff")) (, ",") (identifier "uVar9") (, ",") (number_literal "0x58") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (binary_expression "local_918 & 0xff" (identifier "local_918") (& "&") (number_literal "0xff")) (, ",") (identifier "uVar10") (, ",") (binary_expression "local_918 & 0xff" (identifier "local_918") (& "&") (number_literal "0xff")) (, ",") (identifier "uVar10") (, ",") (binary_expression "uVar1 & 0xff" (identifier "uVar1") (& "&") (number_literal "0xff")) (, ",") (binary_expression "uVar1 >> 8 & 0xff" (binary_expression "uVar1 >> 8" (identifier "uVar1") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (binary_expression "uVar6 & 0xff" (identifier "uVar6") (& "&") (number_literal "0xff")) (, ",") (identifier "uVar8") (, ",") (binary_expression "uVar6 & 0xff" (identifier "uVar6") (& "&") (number_literal "0xff")) (, ",") (identifier "uVar8") (, ",") (binary_expression "uVar7 & 0xff" (identifier "uVar7") (& "&") (number_literal "0xff")) (, ",") (binary_expression "uVar7 >> 8 & 0xff" (binary_expression "uVar7 >> 8" (identifier "uVar7") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (binary_expression "local_908 & 0xff" (identifier "local_908") (& "&") (number_literal "0xff")) (, ",") (binary_expression "local_908 >> 8" (identifier "local_908") (>> ">>") (number_literal "8")) (, ",") (binary_expression "local_908 & 0xff" (identifier "local_908") (& "&") (number_literal "0xff")) (, ",") (binary_expression "local_908 >> 8" (identifier "local_908") (>> ">>") (number_literal "8")) (, ",") (binary_expression "uVar6 + uVar7 & 0xff" (binary_expression "uVar6 + uVar7" (identifier "uVar6") (+ "+") (identifier "uVar7")) (& "&") (number_literal "0xff")) (, ",") (binary_expression "uVar6 + uVar7 >> 8 & 0xff" (binary_expression "uVar6 + uVar7 >> 8" (binary_expression "uVar6 + uVar7" (identifier "uVar6") (+ "+") (identifier "uVar7")) (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (binary_expression "uVar3 & 0xff" (identifier "uVar3") (& "&") (number_literal "0xff")) (, ",") (binary_expression "uVar3 >> 8 & 0xff" (binary_expression "uVar3 >> 8" (identifier "uVar3") (>> ">>") (number_literal "8")) (& "&") (number_literal "0xff")) (, ",") (binary_expression "uVar3 >> 0x10 & 0xff" (binary_expression "uVar3 >> 0x10" (identifier "uVar3") (>> ">>") (number_literal "0x10")) (& "&") (number_literal "0xff")) (, ",") (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "uVar7 = (ulong)iVar4;" (assignment_expression "uVar7 = (ulong)iVar4" (identifier "uVar7") (= "=") (cast_expression "(ulong)iVar4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "iVar4"))) (; ";")) (if_statement "if (uVar7 < 1000) {\n    *(undefined8 *)((long)&local_848 + uVar7) = local_8a8;\n    *(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;\n    *(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;\n    uVar7 = uVar7 + 0x18;\n  }" (if "if") (parenthesized_expression "(uVar7 < 1000)" (( "(") (binary_expression "uVar7 < 1000" (identifier "uVar7") (< "<") (number_literal "1000")) () ")")) (compound_statement "{\n    *(undefined8 *)((long)&local_848 + uVar7) = local_8a8;\n    *(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;\n    *(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;\n    uVar7 = uVar7 + 0x18;\n  }" ({ "{") (expression_statement "*(undefined8 *)((long)&local_848 + uVar7) = local_8a8;" (assignment_expression "*(undefined8 *)((long)&local_848 + uVar7) = local_8a8" (pointer_expression "*(undefined8 *)((long)&local_848 + uVar7)" (* "*") (cast_expression "(undefined8 *)((long)&local_848 + uVar7)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_848 + uVar7)" (( "(") (binary_expression "(long)&local_848 + uVar7" (cast_expression "(long)&local_848" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_848" (& "&") (identifier "local_848"))) (+ "+") (identifier "uVar7")) () ")")))) (= "=") (identifier "local_8a8")) (; ";")) (expression_statement "*(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;" (assignment_expression "*(undefined8 *)((long)local_840 + uVar7) = uStack_8a0" (pointer_expression "*(undefined8 *)((long)local_840 + uVar7)" (* "*") (cast_expression "(undefined8 *)((long)local_840 + uVar7)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_840 + uVar7)" (( "(") (binary_expression "(long)local_840 + uVar7" (cast_expression "(long)local_840" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_840")) (+ "+") (identifier "uVar7")) () ")")))) (= "=") (identifier "uStack_8a0")) (; ";")) (expression_statement "*(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;" (assignment_expression "*(undefined8 *)((long)local_840 + uVar7 + 8) = local_898" (pointer_expression "*(undefined8 *)((long)local_840 + uVar7 + 8)" (* "*") (cast_expression "(undefined8 *)((long)local_840 + uVar7 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_840 + uVar7 + 8)" (( "(") (binary_expression "(long)local_840 + uVar7 + 8" (binary_expression "(long)local_840 + uVar7" (cast_expression "(long)local_840" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_840")) (+ "+") (identifier "uVar7")) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "local_898")) (; ";")) (expression_statement "uVar7 = uVar7 + 0x18;" (assignment_expression "uVar7 = uVar7 + 0x18" (identifier "uVar7") (= "=") (binary_expression "uVar7 + 0x18" (identifier "uVar7") (+ "+") (number_literal "0x18"))) (; ";")) (} "}"))) (expression_statement "uVar8 = local_8cc + uVar7;" (assignment_expression "uVar8 = local_8cc + uVar7" (identifier "uVar8") (= "=") (binary_expression "local_8cc + uVar7" (identifier "local_8cc") (+ "+") (identifier "uVar7"))) (; ";")) (if_statement "if (uVar8 < 0x401) {\n    memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);\n    (*(code *)PTR_free_0018c0b8)(local_8c8);\n    if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }\n    else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }\n  }\n  else {\n    FUN_0011aa69(param_1,"incoming NTLM message too big");\n    iVar4 = 0x1b;\n  }" (if "if") (parenthesized_expression "(uVar8 < 0x401)" (( "(") (binary_expression "uVar8 < 0x401" (identifier "uVar8") (< "<") (number_literal "0x401")) () ")")) (compound_statement "{\n    memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);\n    (*(code *)PTR_free_0018c0b8)(local_8c8);\n    if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }\n    else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }\n  }" ({ "{") (expression_statement "memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);" (call_expression "memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc)" (identifier "memcpy") (argument_list "((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc)" (( "(") (cast_expression "(void *)((long)&local_848 + uVar7)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_848 + uVar7)" (( "(") (binary_expression "(long)&local_848 + uVar7" (cast_expression "(long)&local_848" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_848" (& "&") (identifier "local_848"))) (+ "+") (identifier "uVar7")) () ")"))) (, ",") (identifier "local_8e8") (, ",") (cast_expression "(ulong)local_8cc" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_8cc")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_0018c0b8)(local_8c8);" (call_expression "(*(code *)PTR_free_0018c0b8)(local_8c8)" (parenthesized_expression "(*(code *)PTR_free_0018c0b8)" (( "(") (pointer_expression "*(code *)PTR_free_0018c0b8" (* "*") (cast_expression "(code *)PTR_free_0018c0b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0018c0b8"))) () ")")) (argument_list "(local_8c8)" (( "(") (identifier "local_8c8") () ")"))) (; ";")) (if_statement "if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }\n    else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }" (if "if") (parenthesized_expression "(local_908 + uVar6 + local_918 + uVar8 < 0x400)" (( "(") (binary_expression "local_908 + uVar6 + local_918 + uVar8 < 0x400" (binary_expression "local_908 + uVar6 + local_918 + uVar8" (binary_expression "local_908 + uVar6 + local_918" (binary_expression "local_908 + uVar6" (identifier "local_908") (+ "+") (identifier "uVar6")) (+ "+") (identifier "local_918")) (+ "+") (identifier "uVar8")) (< "<") (number_literal "0x400")) () ")")) (compound_statement "{\n      if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }\n      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);\n      FUN_00163fa8(param_4);\n    }" ({ "{") (if_statement "if (uVar15 == 0) {\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }\n      else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }" (if "if") (parenthesized_expression "(uVar15 == 0)" (( "(") (binary_expression "uVar15 == 0" (identifier "uVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);\n        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);\n        lVar5 = uVar8 + local_918 + uVar6;\n        pcVar11 = (char *)((long)&local_848 + lVar5);\n        uVar15 = (uint)local_908;\n        if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }\n      }" ({ "{") (expression_statement "memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);" (call_expression "memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918)" (identifier "memcpy") (argument_list "((void *)((long)&local_848 + uVar8),pcVar11,local_918)" (( "(") (cast_expression "(void *)((long)&local_848 + uVar8)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_848 + uVar8)" (( "(") (binary_expression "(long)&local_848 + uVar8" (cast_expression "(long)&local_848" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_848" (& "&") (identifier "local_848"))) (+ "+") (identifier "uVar8")) () ")"))) (, ",") (identifier "pcVar11") (, ",") (identifier "local_918") () ")"))) (; ";")) (expression_statement "memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);" (call_expression "memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6)" (identifier "memcpy") (argument_list "((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6)" (( "(") (cast_expression "(void *)((long)&local_848 + uVar8 + local_918)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_848 + uVar8 + local_918)" (( "(") (binary_expression "(long)&local_848 + uVar8 + local_918" (binary_expression "(long)&local_848 + uVar8" (cast_expression "(long)&local_848" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_848" (& "&") (identifier "local_848"))) (+ "+") (identifier "uVar8")) (+ "+") (identifier "local_918")) () ")"))) (, ",") (identifier "local_920") (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "lVar5 = uVar8 + local_918 + uVar6;" (assignment_expression "lVar5 = uVar8 + local_918 + uVar6" (identifier "lVar5") (= "=") (binary_expression "uVar8 + local_918 + uVar6" (binary_expression "uVar8 + local_918" (identifier "uVar8") (+ "+") (identifier "local_918")) (+ "+") (identifier "uVar6"))) (; ";")) (expression_statement "pcVar11 = (char *)((long)&local_848 + lVar5);" (assignment_expression "pcVar11 = (char *)((long)&local_848 + lVar5)" (identifier "pcVar11") (= "=") (cast_expression "(char *)((long)&local_848 + lVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&local_848 + lVar5)" (( "(") (binary_expression "(long)&local_848 + lVar5" (cast_expression "(long)&local_848" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_848" (& "&") (identifier "local_848"))) (+ "+") (identifier "lVar5")) () ")")))) (; ";")) (expression_statement "uVar15 = (uint)local_908;" (assignment_expression "uVar15 = (uint)local_908" (identifier "uVar15") (= "=") (cast_expression "(uint)local_908" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_908"))) (; ";")) (if_statement "if (uVar15 < 8) {\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }\n        else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }" (if "if") (parenthesized_expression "(uVar15 < 8)" (( "(") (binary_expression "uVar15 < 8" (identifier "uVar15") (< "<") (number_literal "8")) () ")")) (compound_statement "{\n          if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }\n        }" ({ "{") (if_statement "if ((local_908 & 4) == 0) {\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }\n          else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }" (if "if") (parenthesized_expression "((local_908 & 4) == 0)" (( "(") (binary_expression "(local_908 & 4) == 0" (parenthesized_expression "(local_908 & 4)" (( "(") (binary_expression "local_908 & 4" (identifier "local_908") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }\n          }" ({ "{") (if_statement "if (uVar15 != 0) {\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }" (if "if") (parenthesized_expression "(uVar15 != 0)" (( "(") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              *pcVar11 = (char)local_448[0];\n              if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }\n            }" ({ "{") (expression_statement "*pcVar11 = (char)local_448[0];" (assignment_expression "*pcVar11 = (char)local_448[0]" (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) (= "=") (cast_expression "(char)local_448[0]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_448[0]" (identifier "local_448") ([ "[") (number_literal "0") (] "]")))) (; ";")) (if_statement "if ((local_908 & 2) != 0) {\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }" (if "if") (parenthesized_expression "((local_908 & 2) != 0)" (( "(") (binary_expression "(local_908 & 2) != 0" (parenthesized_expression "(local_908 & 2)" (( "(") (binary_expression "local_908 & 2" (identifier "local_908") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));\n              }" ({ "{") (expression_statement "*(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));" (assignment_expression "*(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =\n                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2))" (pointer_expression "*(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6)" (* "*") (cast_expression "(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6)" (( "(") (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6" (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff) + lVar5" (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff)" (cast_expression "(long)&uStack_850" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&uStack_850" (& "&") (identifier "uStack_850"))) (+ "+") (parenthesized_expression "(local_908 & 0xffffffff)" (( "(") (binary_expression "local_908 & 0xffffffff" (identifier "local_908") (& "&") (number_literal "0xffffffff")) () ")"))) (+ "+") (identifier "lVar5")) (+ "+") (number_literal "6")) () ")")))) (= "=") (pointer_expression "*(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2))" (* "*") (cast_expression "(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2))" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_448 + ((local_908 & 0xffffffff) - 2))" (( "(") (binary_expression "(long)local_448 + ((local_908 & 0xffffffff) - 2)" (cast_expression "(long)local_448" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_448")) (+ "+") (parenthesized_expression "((local_908 & 0xffffffff) - 2)" (( "(") (binary_expression "(local_908 & 0xffffffff) - 2" (parenthesized_expression "(local_908 & 0xffffffff)" (( "(") (binary_expression "local_908 & 0xffffffff" (identifier "local_908") (& "&") (number_literal "0xffffffff")) () ")")) (- "-") (number_literal "2")) () ")"))) () ")"))))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }" (else "else") (compound_statement "{\n            *(undefined4 *)pcVar11 = (undefined4)local_448[0];\n            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));\n          }" ({ "{") (expression_statement "*(undefined4 *)pcVar11 = (undefined4)local_448[0];" (assignment_expression "*(undefined4 *)pcVar11 = (undefined4)local_448[0]" (pointer_expression "*(undefined4 *)pcVar11" (* "*") (cast_expression "(undefined4 *)pcVar11" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar11"))) (= "=") (cast_expression "(undefined4)local_448[0]" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (subscript_expression "local_448[0]" (identifier "local_448") ([ "[") (number_literal "0") (] "]")))) (; ";")) (expression_statement "*(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));" (assignment_expression "*(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =\n                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4))" (pointer_expression "*(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4)" (* "*") (cast_expression "(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4)" (( "(") (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4" (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff) + lVar5" (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff)" (cast_expression "(long)&uStack_850" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&uStack_850" (& "&") (identifier "uStack_850"))) (+ "+") (parenthesized_expression "(local_908 & 0xffffffff)" (( "(") (binary_expression "local_908 & 0xffffffff" (identifier "local_908") (& "&") (number_literal "0xffffffff")) () ")"))) (+ "+") (identifier "lVar5")) (+ "+") (number_literal "4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4))" (* "*") (cast_expression "(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_448 + ((local_908 & 0xffffffff) - 4))" (( "(") (binary_expression "(long)local_448 + ((local_908 & 0xffffffff) - 4)" (cast_expression "(long)local_448" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_448")) (+ "+") (parenthesized_expression "((local_908 & 0xffffffff) - 4)" (( "(") (binary_expression "(local_908 & 0xffffffff) - 4" (parenthesized_expression "(local_908 & 0xffffffff)" (( "(") (binary_expression "local_908 & 0xffffffff" (identifier "local_908") (& "&") (number_literal "0xffffffff")) () ")")) (- "-") (number_literal "4")) () ")"))) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }" (else "else") (compound_statement "{\n          *(undefined8 *)pcVar11 = local_448[0];\n          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));\n          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);\n          lVar16 = (long)pcVar11 - (long)puVar14;\n          puVar12 = (undefined8 *)((long)local_448 - lVar16);\n          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }\n        }" ({ "{") (expression_statement "*(undefined8 *)pcVar11 = local_448[0];" (assignment_expression "*(undefined8 *)pcVar11 = local_448[0]" (pointer_expression "*(undefined8 *)pcVar11" (* "*") (cast_expression "(undefined8 *)pcVar11" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar11"))) (= "=") (subscript_expression "local_448[0]" (identifier "local_448") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));" (assignment_expression "*(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =\n               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff))" (pointer_expression "*(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5)" (* "*") (cast_expression "(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5)" (( "(") (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff) + lVar5" (binary_expression "(long)&uStack_850 + (local_908 & 0xffffffff)" (cast_expression "(long)&uStack_850" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&uStack_850" (& "&") (identifier "uStack_850"))) (+ "+") (parenthesized_expression "(local_908 & 0xffffffff)" (( "(") (binary_expression "local_908 & 0xffffffff" (identifier "local_908") (& "&") (number_literal "0xffffffff")) () ")"))) (+ "+") (identifier "lVar5")) () ")")))) (= "=") (pointer_expression "*(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff))" (* "*") (cast_expression "(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff))" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&uStack_450 + (local_908 & 0xffffffff))" (( "(") (binary_expression "(long)&uStack_450 + (local_908 & 0xffffffff)" (cast_expression "(long)&uStack_450" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&uStack_450" (& "&") (identifier "uStack_450"))) (+ "+") (parenthesized_expression "(local_908 & 0xffffffff)" (( "(") (binary_expression "local_908 & 0xffffffff" (identifier "local_908") (& "&") (number_literal "0xffffffff")) () ")"))) () ")"))))) (; ";")) (expression_statement "puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);" (assignment_expression "puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8)" (identifier "puVar14") (= "=") (cast_expression "(undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_840 + lVar5 & 0xfffffffffffffff8)" (( "(") (binary_expression "(long)local_840 + lVar5 & 0xfffffffffffffff8" (binary_expression "(long)local_840 + lVar5" (cast_expression "(long)local_840" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_840")) (+ "+") (identifier "lVar5")) (& "&") (number_literal "0xfffffffffffffff8")) () ")")))) (; ";")) (expression_statement "lVar16 = (long)pcVar11 - (long)puVar14;" (assignment_expression "lVar16 = (long)pcVar11 - (long)puVar14" (identifier "lVar16") (= "=") (binary_expression "(long)pcVar11 - (long)puVar14" (cast_expression "(long)pcVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar11")) (- "-") (cast_expression "(long)puVar14" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar14")))) (; ";")) (expression_statement "puVar12 = (undefined8 *)((long)local_448 - lVar16);" (assignment_expression "puVar12 = (undefined8 *)((long)local_448 - lVar16)" (identifier "puVar12") (= "=") (cast_expression "(undefined8 *)((long)local_448 - lVar16)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_448 - lVar16)" (( "(") (binary_expression "(long)local_448 - lVar16" (cast_expression "(long)local_448" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_448")) (- "-") (identifier "lVar16")) () ")")))) (; ";")) (for_statement "for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }" (for "for") (( "(") (assignment_expression "uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3)" (identifier "uVar6") (= "=") (call_expression "(ulong)(uVar15 + (int)lVar16 >> 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar15 + (int)lVar16 >> 3)" (( "(") (binary_expression "uVar15 + (int)lVar16 >> 3" (binary_expression "uVar15 + (int)lVar16" (identifier "uVar15") (+ "+") (cast_expression "(int)lVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar16"))) (>> ">>") (number_literal "3")) () ")")))) (; ";") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "uVar6 = uVar6 - 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 - 1" (identifier "uVar6") (- "-") (number_literal "1"))) () ")") (compound_statement "{\n            *puVar14 = *puVar12;\n            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;\n            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;\n          }" ({ "{") (expression_statement "*puVar14 = *puVar12;" (assignment_expression "*puVar14 = *puVar12" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;" (assignment_expression "puVar12 = puVar12 + (ulong)bVar17 * -2 + 1" (identifier "puVar12") (= "=") (binary_expression "puVar12 + (ulong)bVar17 * -2 + 1" (binary_expression "puVar12 + (ulong)bVar17 * -2" (identifier "puVar12") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;" (assignment_expression "puVar14 = puVar14 + (ulong)bVar17 * -2 + 1" (identifier "puVar14") (= "=") (binary_expression "puVar14 + (ulong)bVar17 * -2 + 1" (binary_expression "puVar14 + (ulong)bVar17 * -2" (identifier "puVar14") (+ "+") (binary_expression "(ulong)bVar17 * -2" (cast_expression "(ulong)bVar17" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar17")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }" (else "else") (compound_statement "{\n        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);\n        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);\n        lVar5 = uVar8 + local_918 + uVar6;\n        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);\n      }" ({ "{") (expression_statement "FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);" (call_expression "FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1)" (identifier "FUN_00163d76") (argument_list "((long)&local_848 + uVar8,pcVar11,local_918 >> 1)" (( "(") (binary_expression "(long)&local_848 + uVar8" (cast_expression "(long)&local_848" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_848" (& "&") (identifier "local_848"))) (+ "+") (identifier "uVar8")) (, ",") (identifier "pcVar11") (, ",") (binary_expression "local_918 >> 1" (identifier "local_918") (>> ">>") (number_literal "1")) () ")"))) (; ";")) (expression_statement "FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);" (call_expression "FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1)" (identifier "FUN_00163d76") (argument_list "((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1)" (( "(") (binary_expression "(long)&local_848 + uVar8 + local_918" (binary_expression "(long)&local_848 + uVar8" (cast_expression "(long)&local_848" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_848" (& "&") (identifier "local_848"))) (+ "+") (identifier "uVar8")) (+ "+") (identifier "local_918")) (, ",") (identifier "local_920") (, ",") (binary_expression "uVar6 >> 1" (identifier "uVar6") (>> ">>") (number_literal "1")) () ")"))) (; ";")) (expression_statement "lVar5 = uVar8 + local_918 + uVar6;" (assignment_expression "lVar5 = uVar8 + local_918 + uVar6" (identifier "lVar5") (= "=") (binary_expression "uVar8 + local_918 + uVar6" (binary_expression "uVar8 + local_918" (identifier "uVar8") (+ "+") (identifier "local_918")) (+ "+") (identifier "uVar6"))) (; ";")) (expression_statement "FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);" (call_expression "FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1)" (identifier "FUN_00163d76") (argument_list "((long)&local_848 + lVar5,local_448,local_908 >> 1)" (( "(") (binary_expression "(long)&local_848 + lVar5" (cast_expression "(long)&local_848" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&local_848" (& "&") (identifier "local_848"))) (+ "+") (identifier "lVar5")) (, ",") (identifier "local_448") (, ",") (binary_expression "local_908 >> 1" (identifier "local_908") (>> ">>") (number_literal "1")) () ")"))) (; ";")) (} "}")))) (expression_statement "iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);" (assignment_expression "iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6)" (identifier "iVar4") (= "=") (call_expression "FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6)" (identifier "FUN_0010fd4c") (argument_list "(param_1,&local_848,local_908 + lVar5,param_5,param_6)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_848" (& "&") (identifier "local_848")) (, ",") (binary_expression "local_908 + lVar5" (identifier "local_908") (+ "+") (identifier "lVar5")) (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "FUN_00163fa8(param_4);" (call_expression "FUN_00163fa8(param_4)" (identifier "FUN_00163fa8") (argument_list "(param_4)" (( "(") (identifier "param_4") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }" (else "else") (compound_statement "{\n      FUN_0011aa69(param_1,"user + domain + host name too big");\n      iVar4 = 0x1b;\n    }" ({ "{") (expression_statement "FUN_0011aa69(param_1,"user + domain + host name too big");" (call_expression "FUN_0011aa69(param_1,"user + domain + host name too big")" (identifier "FUN_0011aa69") (argument_list "(param_1,"user + domain + host name too big")" (( "(") (identifier "param_1") (, ",") (string_literal ""user + domain + host name too big"" (" """) (string_content "user + domain + host name too big") (" """)) () ")"))) (; ";")) (expression_statement "iVar4 = 0x1b;" (assignment_expression "iVar4 = 0x1b" (identifier "iVar4") (= "=") (number_literal "0x1b")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    FUN_0011aa69(param_1,"incoming NTLM message too big");\n    iVar4 = 0x1b;\n  }" (else "else") (compound_statement "{\n    FUN_0011aa69(param_1,"incoming NTLM message too big");\n    iVar4 = 0x1b;\n  }" ({ "{") (expression_statement "FUN_0011aa69(param_1,"incoming NTLM message too big");" (call_expression "FUN_0011aa69(param_1,"incoming NTLM message too big")" (identifier "FUN_0011aa69") (argument_list "(param_1,"incoming NTLM message too big")" (( "(") (identifier "param_1") (, ",") (string_literal ""incoming NTLM message too big"" (" """) (string_content "incoming NTLM message too big") (" """)) () ")"))) (; ";")) (expression_statement "iVar4 = 0x1b;" (assignment_expression "iVar4 = 0x1b" (identifier "iVar4") (= "=") (number_literal "0x1b")) (; ";")) (} "}")))) (labeled_statement "LAB_001641e5:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (statement_identifier "LAB_001641e5") (: ":") (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (!= "!=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return iVar4;" (return "return") (identifier "iVar4") (; ";")) (} "}")))

/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

type_1 function_1
                   (type_2 *data,char *userp,char *passwdp,type_3 *ntlm,char **outptr,
                   size_t *outlen)

{
  type_4 var_28;
  char var_9;
  type_4 var_30;
  long var_39;
  int var_11;
  type_1 var_14;
  long var_3;
  type_5 var_7;
  type_5 var_32;
  type_5 uVar10;
  char *var_4;
  char *var_8;
  type_6 *var_34;
  type_5 uVar14;
  type_4 var_23;
  type_7 *puVar16;
  long lVar17;
  size_t var_25;
  long var_1;
  type_8 bVar18;
  char *var_6;
  size_t var_24;
  type_5 var_26;
  type_7 *local_8e8;
  type_4 var_27;
  type_7 *ntlmv2resp;
  type_7 entropy_1 [8];
  type_7 md5sum [16];
  type_7 lmresp [24];
  type_7 ntresp [24];
  type_7 ntbuffer [24];
  type_6 uStack_850;
  type_7 var_31 [1024];
  char var_2 [1025];
  
  bVar18 = 0;
  var_39 = *(long *)(var_1 + 0x28);
  var_27 = 0x18;
  ntlmv2resp = (type_7 *)0x0;
  var_23 = ntlm->flags;
  var_2[0] = '\0';
  var_2[1] = '\0';
  var_2[2] = '\0';
  var_2[3] = '\0';
  var_2[4] = '\0';
  var_2[5] = '\0';
  var_2[6] = '\0';
  var_2[7] = '\0';
  var_2[8] = '\0';
  var_2[9] = '\0';
  var_2[10] = '\0';
  var_2[0xb] = '\0';
  var_2[0xc] = '\0';
  var_2[0xd] = '\0';
  var_2[0xe] = '\0';
  var_2[0xf] = '\0';
  var_4 = var_2 + 0x10;
  for (var_3 = 0x7e; var_3 != 0; var_3 = var_3 + -1) {
    var_4[0] = '\0';
    var_4[1] = '\0';
    var_4[2] = '\0';
    var_4[3] = '\0';
    var_4[4] = '\0';
    var_4[5] = '\0';
    var_4[6] = '\0';
    var_4[7] = '\0';
    var_4 = var_4 + 8;
  }
  *var_4 = '\0';
  var_6 = var_5(userp,0x5c);
  if ((var_6 == (char *)0x0) && (var_6 = var_5(userp,0x2f), var_6 == (char *)0x0)) {
    var_24 = 0;
    var_4 = "";
    var_6 = userp;
  }
  else {
    var_24 = (long)var_6 - (long)userp;
    var_6 = var_6 + 1;
    var_4 = userp;
  }
  var_7 = 0xffffffffffffffff;
  var_8 = var_6;
  do {
    if (var_7 == 0) break;
    var_7 = var_7 - 1;
    var_9 = *var_8;
    var_8 = var_8 + (type_5)bVar18 * -2 + 1;
  } while (var_9 != '\0');
  var_25 = ~var_7 - 1;
  var_11 = var_10(var_2,0x401);
  if (var_11 == 0) {
    var_7 = 0xffffffffffffffff;
    var_8 = var_2;
    do {
      if (var_7 == 0) break;
      var_7 = var_7 - 1;
      var_9 = *var_8;
      var_8 = var_8 + (type_5)bVar18 * -2 + 1;
    } while (var_9 != '\0');
    var_26 = ~var_7 - 1;
  }
  else {
    var_12(data,"gethostname() failed, continuing without!\n");
    var_26 = 0;
  }
  if ((ntlm->flags & 0x80000) == 0) {
    if ((ntlm->flags & 0x200) == 0) {
      var_14 = var_13(data,passwdp,ntbuffer);
      if (var_14 != var_15) goto LAB_001641e5;
      var_16(ntbuffer,ntlm->nonce,ntresp);
      var_14 = var_17(data,passwdp,var_31);
      if (var_14 != var_15) goto LAB_001641e5;
      var_16(var_31,ntlm->nonce,lmresp);
      local_8e8 = ntresp;
    }
    else {
      var_14 = var_18(data,entropy_1,8);
      if (var_14 != var_15) goto LAB_001641e5;
      lmresp[0] = entropy_1[0];
      lmresp[1] = entropy_1[1];
      lmresp[2] = entropy_1[2];
      lmresp[3] = entropy_1[3];
      lmresp[4] = entropy_1[4];
      lmresp[5] = entropy_1[5];
      lmresp[6] = entropy_1[6];
      lmresp[7] = entropy_1[7];
      lmresp[8] = '\0';
      lmresp[9] = '\0';
      lmresp[10] = '\0';
      lmresp[0xb] = '\0';
      lmresp[0xc] = '\0';
      lmresp[0xd] = '\0';
      lmresp[0xe] = '\0';
      lmresp[0xf] = '\0';
      lmresp[0x10] = '\0';
      lmresp[0x11] = '\0';
      lmresp[0x12] = '\0';
      lmresp[0x13] = '\0';
      lmresp[0x14] = '\0';
      lmresp[0x15] = '\0';
      lmresp[0x16] = '\0';
      lmresp[0x17] = '\0';
      var_31._0_8_ = *(type_6 *)ntlm->nonce;
      var_31[8] = entropy_1[0];
      var_31[9] = entropy_1[1];
      var_31[10] = entropy_1[2];
      var_31[0xb] = entropy_1[3];
      var_31[0xc] = entropy_1[4];
      var_31[0xd] = entropy_1[5];
      var_31[0xe] = entropy_1[6];
      var_31[0xf] = entropy_1[7];
      var_14 = var_19(var_31,0x10,md5sum,0x10);
      if ((var_14 != var_15) ||
         (var_14 = var_13(data,passwdp,ntbuffer), var_14 != var_15))
      goto LAB_001641e5;
      local_8e8 = ntresp;
      var_16(ntbuffer,md5sum,local_8e8);
    }
  }
  else {
    var_14 = var_18(data,ntresp,8);
    if ((((var_14 != var_15) ||
         (var_14 = var_13(data,passwdp,ntbuffer), var_14 != var_15)) ||
        (var_14 = var_20(var_6,var_25,var_4,var_24,ntbuffer,var_31)
        , var_14 != var_15)) ||
       ((var_14 = var_21(var_31,ntresp,ntlm->nonce,lmresp), var_14 != var_15
        || (var_14 = var_22(var_31,ntresp,ntlm,&ntlmv2resp,&var_27),
           var_14 != var_15)))) goto LAB_001641e5;
    local_8e8 = ntlmv2resp;
  }
  var_23 = var_23 & 1;
  if (var_23 != 0) {
    var_24 = var_24 << 1;
    var_25 = var_25 * 2;
    var_26 = var_26 << 1;
  }
  var_28 = var_27 + 0x58;
  var_7 = var_24 + var_28;
  var_30 = ntlm->flags;
  var_32 = (var_25 & 0xffffffff) >> 8 & 0xff;
  uVar14 = (type_5)(var_27 >> 8 & 0xff);
  uVar10 = var_24 >> 8 & 0xff;
  var_11 = var_29((char *)var_31,0x400,
                         "NTLMSSP%c\x03%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"
                         ,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,(type_5)(var_27 & 0xff),uVar14,
                         (type_5)(var_27 & 0xff),uVar14,0x58,0,0,0,var_24 & 0xff,uVar10,
                         var_24 & 0xff,uVar10,(type_5)var_28 & 0xff,(type_5)(var_28 >> 8) & 0xff,0,0,
                         var_25 & 0xff,var_32,var_25 & 0xff,var_32,var_7 & 0xff,var_7 >> 8 & 0xff,0,
                         0,var_26 & 0xff,var_26 >> 8,var_26 & 0xff,var_26 >> 8,
                         var_25 + var_7 & 0xff,var_25 + var_7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,
                         (type_5)(var_30 & 0xff),(type_5)(var_30 >> 8 & 0xff),
                         (type_5)(var_30 >> 0x10 & 0xff),(type_5)(var_30 >> 0x18));
  var_7 = (type_5)var_11;
  if (var_7 < 1000) {
    *(type_6 *)(var_31 + var_7) = lmresp._0_8_;
    *(type_6 *)(var_31 + var_7 + 8) = lmresp._8_8_;
    *(type_6 *)(var_31 + var_7 + 0x10) = lmresp._16_8_;
    var_7 = var_7 + 0x18;
  }
  var_32 = var_27 + var_7;
  if (var_32 < 0x401) {
    var_33(var_31 + var_7,local_8e8,(type_5)var_27);
    (*Curl_cfree)(ntlmv2resp);
    if (var_26 + var_25 + var_24 + var_32 < 0x400) {
      if (var_23 == 0) {
        var_33(var_31 + var_32,var_4,var_24);
        var_33(var_31 + var_32 + var_24,var_6,var_25);
        var_3 = var_32 + var_24 + var_25;
        puVar16 = var_31 + var_3;
        var_23 = (type_4)var_26;
        if (var_23 < 8) {
          if ((var_26 & 4) == 0) {
            if (var_23 != 0) {
              *puVar16 = var_2[0];
              if ((var_26 & 2) != 0) {
                *(type_9 *)(var_31 + (var_26 & 0xffffffff) + var_3 + -2) =
                     *(type_9 *)(var_31 + (var_26 & 0xffffffff) + 0x3fe);
              }
            }
          }
          else {
            *(type_10 *)puVar16 = var_2._0_4_;
            *(type_10 *)(var_31 + (var_26 & 0xffffffff) + var_3 + -4) =
                 *(type_10 *)(var_31 + (var_26 & 0xffffffff) + 0x3fc);
          }
        }
        else {
          *(type_6 *)puVar16 = var_2._0_8_;
          *(type_6 *)((long)&uStack_850 + (var_26 & 0xffffffff) + var_3) =
               *(type_6 *)(var_31 + (var_26 & 0xffffffff) + 0x3f8);
          lVar17 = (long)puVar16 - (long)((type_5)(var_31 + var_3 + 8) & 0xfffffffffffffff8);
          var_4 = var_2 + -lVar17;
          var_34 = (type_6 *)((type_5)(var_31 + var_3 + 8) & 0xfffffffffffffff8);
          for (var_7 = (type_5)(var_23 + (int)lVar17 >> 3); var_7 != 0; var_7 = var_7 - 1) {
            *var_34 = *(type_6 *)var_4;
            var_4 = var_4 + ((type_5)bVar18 * -2 + 1) * 8;
            var_34 = var_34 + (type_5)bVar18 * -2 + 1;
          }
        }
      }
      else {
        var_35(var_31 + var_32,var_4,var_24 >> 1);
        var_35(var_31 + var_32 + var_24,var_6,var_25 >> 1);
        var_3 = var_32 + var_24 + var_25;
        var_35(var_31 + var_3,var_2,var_26 >> 1);
      }
      var_14 = var_36(data,(char *)var_31,var_26 + var_3,outptr,outlen);
      var_37(ntlm);
    }
    else {
      var_38(data,"user + domain + host name too big");
      var_14 = CURLE_OUT_OF_MEMORY;
    }
  }
  else {
    var_38(data,"incoming NTLM message too big");
    var_14 = CURLE_OUT_OF_MEMORY;
  }
LAB_001641e5:
  if (var_39 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    var_40();
  }
  return var_14;
}


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

int MASKED(undefined8 param_1,char *param_2,undefined8 param_3,long param_4,undefined8 param_5
                ,undefined8 param_6)

{
  uint uVar1;
  char cVar2;
  uint uVar3;
  int iVar4;
  long lVar5;
  ulong uVar6;
  ulong uVar7;
  ulong uVar8;
  uint uVar9;
  ulong uVar10;
  char *pcVar11;
  undefined8 *puVar12;
  char *pcVar13;
  undefined8 *puVar14;
  uint uVar15;
  long lVar16;
  long in_FS_OFFSET;
  byte bVar17;
  char *local_920;
  ulong local_918;
  ulong local_908;
  undefined1 *local_8e8;
  uint local_8cc;
  undefined1 *local_8c8;
  undefined8 local_8c0;
  undefined1 local_8b8 [16];
  undefined8 local_8a8;
  undefined8 uStack_8a0;
  undefined8 local_898;
  undefined1 local_888 [32];
  undefined1 local_868 [24];
  undefined8 uStack_850;
  undefined8 local_848;
  undefined8 local_840 [126];
  undefined8 uStack_450;
  undefined8 local_448 [2];
  undefined8 local_438 [127];
  long local_40;
  
  bVar17 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  local_8cc = 0x18;
  local_8c8 = (undefined1 *)0x0;
  uVar15 = *(uint *)(param_4 + 4);
  local_448[0] = 0;
  local_448[1] = 0;
  puVar12 = local_438;
  for (lVar5 = 0x7e; lVar5 != 0; lVar5 = lVar5 + -1) {
    *puVar12 = 0;
    puVar12 = puVar12 + 1;
  }
  *(undefined1 *)puVar12 = 0;
  local_920 = strchr(param_2,0x5c);
  if ((local_920 == (char *)0x0) && (local_920 = strchr(param_2,0x2f), local_920 == (char *)0x0)) {
    local_918 = 0;
    pcVar11 = "";
    local_920 = param_2;
  }
  else {
    local_918 = (long)local_920 - (long)param_2;
    local_920 = local_920 + 1;
    pcVar11 = param_2;
  }
  uVar6 = 0xffffffffffffffff;
  pcVar13 = local_920;
  do {
    if (uVar6 == 0) break;
    uVar6 = uVar6 - 1;
    cVar2 = *pcVar13;
    pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;
  } while (cVar2 != '\0');
  uVar6 = ~uVar6 - 1;
  iVar4 = FUN_0014c0ee(local_448,0x401);
  if (iVar4 == 0) {
    uVar7 = 0xffffffffffffffff;
    pcVar13 = (char *)local_448;
    do {
      if (uVar7 == 0) break;
      uVar7 = uVar7 - 1;
      cVar2 = *pcVar13;
      pcVar13 = pcVar13 + (ulong)bVar17 * -2 + 1;
    } while (cVar2 != '\0');
    local_908 = ~uVar7 - 1;
  }
  else {
    FUN_0011a8d8(param_1,"gethostname() failed, continuing without!\n");
    local_908 = 0;
  }
  if ((*(uint *)(param_4 + 4) & 0x80000) == 0) {
    if ((*(uint *)(param_4 + 4) & 0x200) == 0) {
      iVar4 = FUN_0014ed03(param_1,param_3,local_868);
      if (iVar4 != 0) goto LAB_001641e5;
      FUN_0014eaf6(local_868,param_4 + 8,local_888);
      iVar4 = FUN_0014eba5(param_1,param_3,&local_848);
      if (iVar4 != 0) goto LAB_001641e5;
      FUN_0014eaf6(&local_848,param_4 + 8,&local_8a8);
      local_8e8 = local_888;
    }
    else {
      iVar4 = FUN_0014ffcf(param_1,&local_8c0,8);
      if (iVar4 != 0) goto LAB_001641e5;
      local_8a8 = local_8c0;
      uStack_8a0 = 0;
      local_898 = 0;
      local_848 = *(undefined8 *)(param_4 + 8);
      local_840[0] = local_8c0;
      iVar4 = FUN_0016c0f0(&local_848,0x10,local_8b8,0x10);
      if ((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0))
      goto LAB_001641e5;
      local_8e8 = local_888;
      FUN_0014eaf6(local_868,local_8b8,local_8e8);
    }
  }
  else {
    iVar4 = FUN_0014ffcf(param_1,local_888,8);
    if ((((iVar4 != 0) || (iVar4 = FUN_0014ed03(param_1,param_3,local_868), iVar4 != 0)) ||
        (iVar4 = FUN_0014ee5c(local_920,uVar6,pcVar11,local_918,local_868,&local_848), iVar4 != 0))
       || ((iVar4 = FUN_0014f0be(&local_848,local_888,param_4 + 8,&local_8a8), iVar4 != 0 ||
           (iVar4 = FUN_0014ef6e(&local_848,local_888,param_4,&local_8c8,&local_8cc), iVar4 != 0))))
    goto LAB_001641e5;
    local_8e8 = local_8c8;
  }
  uVar15 = uVar15 & 1;
  if (uVar15 != 0) {
    local_918 = local_918 << 1;
    uVar6 = uVar6 * 2;
    local_908 = local_908 << 1;
  }
  uVar1 = local_8cc + 0x58;
  uVar7 = local_918 + uVar1;
  uVar3 = *(uint *)(param_4 + 4);
  uVar8 = (uVar6 & 0xffffffff) >> 8 & 0xff;
  uVar9 = local_8cc >> 8 & 0xff;
  uVar10 = local_918 >> 8 & 0xff;
  iVar4 = curl_msnprintf(&local_848,0x400,&DAT_00177f58,0,0,0,0,0x18,0,0x18,0,0x40,0,0,0,
                         local_8cc & 0xff,uVar9,local_8cc & 0xff,uVar9,0x58,0,0,0,local_918 & 0xff,
                         uVar10,local_918 & 0xff,uVar10,uVar1 & 0xff,uVar1 >> 8 & 0xff,0,0,
                         uVar6 & 0xff,uVar8,uVar6 & 0xff,uVar8,uVar7 & 0xff,uVar7 >> 8 & 0xff,0,0,
                         local_908 & 0xff,local_908 >> 8,local_908 & 0xff,local_908 >> 8,
                         uVar6 + uVar7 & 0xff,uVar6 + uVar7 >> 8 & 0xff,0,0,0,0,0,0,0,0,0,0,
                         uVar3 & 0xff,uVar3 >> 8 & 0xff,uVar3 >> 0x10 & 0xff,uVar3 >> 0x18);
  uVar7 = (ulong)iVar4;
  if (uVar7 < 1000) {
    *(undefined8 *)((long)&local_848 + uVar7) = local_8a8;
    *(undefined8 *)((long)local_840 + uVar7) = uStack_8a0;
    *(undefined8 *)((long)local_840 + uVar7 + 8) = local_898;
    uVar7 = uVar7 + 0x18;
  }
  uVar8 = local_8cc + uVar7;
  if (uVar8 < 0x401) {
    memcpy((void *)((long)&local_848 + uVar7),local_8e8,(ulong)local_8cc);
    (*(code *)PTR_free_0018c0b8)(local_8c8);
    if (local_908 + uVar6 + local_918 + uVar8 < 0x400) {
      if (uVar15 == 0) {
        memcpy((void *)((long)&local_848 + uVar8),pcVar11,local_918);
        memcpy((void *)((long)&local_848 + uVar8 + local_918),local_920,uVar6);
        lVar5 = uVar8 + local_918 + uVar6;
        pcVar11 = (char *)((long)&local_848 + lVar5);
        uVar15 = (uint)local_908;
        if (uVar15 < 8) {
          if ((local_908 & 4) == 0) {
            if (uVar15 != 0) {
              *pcVar11 = (char)local_448[0];
              if ((local_908 & 2) != 0) {
                *(undefined2 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 6) =
                     *(undefined2 *)((long)local_448 + ((local_908 & 0xffffffff) - 2));
              }
            }
          }
          else {
            *(undefined4 *)pcVar11 = (undefined4)local_448[0];
            *(undefined4 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5 + 4) =
                 *(undefined4 *)((long)local_448 + ((local_908 & 0xffffffff) - 4));
          }
        }
        else {
          *(undefined8 *)pcVar11 = local_448[0];
          *(undefined8 *)((long)&uStack_850 + (local_908 & 0xffffffff) + lVar5) =
               *(undefined8 *)((long)&uStack_450 + (local_908 & 0xffffffff));
          puVar14 = (undefined8 *)((long)local_840 + lVar5 & 0xfffffffffffffff8);
          lVar16 = (long)pcVar11 - (long)puVar14;
          puVar12 = (undefined8 *)((long)local_448 - lVar16);
          for (uVar6 = (ulong)(uVar15 + (int)lVar16 >> 3); uVar6 != 0; uVar6 = uVar6 - 1) {
            *puVar14 = *puVar12;
            puVar12 = puVar12 + (ulong)bVar17 * -2 + 1;
            puVar14 = puVar14 + (ulong)bVar17 * -2 + 1;
          }
        }
      }
      else {
        FUN_00163d76((long)&local_848 + uVar8,pcVar11,local_918 >> 1);
        FUN_00163d76((long)&local_848 + uVar8 + local_918,local_920,uVar6 >> 1);
        lVar5 = uVar8 + local_918 + uVar6;
        FUN_00163d76((long)&local_848 + lVar5,local_448,local_908 >> 1);
      }
      iVar4 = FUN_0010fd4c(param_1,&local_848,local_908 + lVar5,param_5,param_6);
      FUN_00163fa8(param_4);
    }
    else {
      FUN_0011aa69(param_1,"user + domain + host name too big");
      iVar4 = 0x1b;
    }
  }
  else {
    FUN_0011aa69(param_1,"incoming NTLM message too big");
    iVar4 = 0x1b;
  }
LAB_001641e5:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar4;
}

