
uchar * rfc4716_loadpub(FILE *fp,char **algorithm,int *pub_blob_len,char **commentptr,
                       char **errorstr)

{
  byte *pbVar1;
  int iVar2;
  undefined4 uVar3;
  char *pcVar4;
  int iVar5;
  char *pcVar6;
  char cVar11;
  int iVar7;
  undefined1 *puVar8;
  uint uVar9;
  int iVar10;
  char *pcVar12;
  char *pcVar13;
  byte *pbVar14;
  char **ppcVar15;
  byte *pbVar16;
  char **ppcVar17;
  char *pcVar18;
  char **ppcVar19;
  byte *pbVar20;
  int iVar21;
  byte *pbVar22;
  int in_t9;
  code *pcVar23;
  int *piVar24;
  byte *pbVar25;
  char *pcStack_58;
  int iStack_50;
  uchar base64out [3];
  char base64in [4];
  
  piVar24 = (int *)(in_t9 + 0x40970);
  iVar2 = **(int **)(in_t9 + 0x39258);
  ppcVar15 = algorithm;
  pbVar16 = (byte *)pub_blob_len;
  ppcVar17 = commentptr;
  uVar3 = (**(code **)(in_t9 + 0x38d44))();
  pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);
  if (pcVar4 == (char *)0x0) {
    pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8);
    pbVar25 = (byte *)0x0;
    pcStack_58 = (char *)0x0;
  }
  else {
    ppcVar15 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ae4);
    iVar5 = (**(code **)(in_t9 + 0x391cc))(pcVar4);
    if (iVar5 == 0) {
      (**(code **)(in_t9 + 0x389c4))(pcVar4);
      pcStack_58 = (char *)0x0;
      iVar5 = *(int *)(in_t9 + 0x38a34);
      iVar10 = *(int *)(in_t9 + 0x38a34);
      ppcVar19 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ac0);
      iVar21 = *(int *)(in_t9 + 0x38a34);
      while( true ) {
        uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);
        pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);
        if (pcVar4 == (char *)0x0) break;
        puVar8 = (undefined1 *)(**(code **)(in_t9 + 0x3926c))(pcVar4,iVar5 + -0x4ac4);
        if (puVar8 == (undefined1 *)0x0) {
          ppcVar15 = (char **)0x1;
          pbVar25 = (byte *)(**(code **)(in_t9 + 0x389d4))(0x1000);
          pbVar1 = (byte *)0x0;
          pbVar22 = pbVar1;
          if (*pcVar4 == '-') {
            ppcVar15 = *(char ***)(in_t9 + 0x38a34);
            goto LAB_00047a78;
          }
          iStack_50 = 0x1000;
          pbVar20 = pbVar1;
          goto LAB_00047bb8;
        }
        *puVar8 = 0;
        iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4,iVar10 + -0x4c58);
        ppcVar15 = ppcVar19;
        if (iVar7 == 0) {
          pcVar18 = puVar8 + 2;
          if (puVar8[2] == '\"') {
            iVar7 = (**(code **)(in_t9 + 0x391f8))(pcVar18);
            if (pcVar18[iVar7 + -1] == '\"') {
              pcVar18[iVar7 + -1] = '\0';
              pcVar18 = puVar8 + 3;
            }
          }
          cVar11 = *pcVar18;
          pcVar13 = pcVar4;
          if (cVar11 != '\0') {
            ppcVar15 = (char **)&DAT_0000005c;
            pcVar12 = pcVar4;
            do {
              pcVar6 = pcVar18;
              if ((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')) {
                pcVar6 = pcVar18;
              }
              pcVar13 = pcVar12 + 1;
              *pcVar12 = *pcVar6;
              pcVar18 = pcVar6 + 1;
              cVar11 = pcVar6[1];
              pcVar12 = pcVar13;
            } while (cVar11 != '\0');
          }
          *pcVar13 = '\0';
          (**(code **)(in_t9 + 0x389c4))(pcStack_58);
          pcStack_58 = (char *)(**(code **)(in_t9 + 0x389fc))(pcVar4);
        }
        else {
          iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4);
          if (iVar7 != 0) {
            pbVar16 = (byte *)0x2;
            ppcVar15 = (char **)(iVar21 + -0x4ab8);
            iVar7 = (**(code **)(in_t9 + 0x390e8))(pcVar4);
            if (iVar7 != 0) {
              pbVar25 = (byte *)0x0;
              pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);
              goto LAB_000477c4;
            }
          }
        }
        (**(code **)(in_t9 + 0x389c4))(pcVar4);
      }
      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b04);
      pbVar25 = (byte *)0x0;
    }
    else {
      pbVar25 = (byte *)0x0;
      pcStack_58 = (char *)0x0;
      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8);
    }
  }
  goto LAB_000477c4;
  while (ppcVar15 = *(char ***)(in_t9 + 0x38a34), *pcVar4 != '-') {
LAB_00047bb8:
    cVar11 = *pcVar4;
    pcVar18 = pcVar4;
    while (cVar11 != '\0') {
      pbVar14 = pbVar20 + 1;
      base64in[(int)pbVar20] = cVar11;
      if (pbVar14 == (byte *)0x4) {
        pbVar16 = (byte *)(**(code **)(in_t9 + 0x38ab4))(base64in,base64out);
        pbVar20 = pbVar16 + (int)pbVar22;
        if (iStack_50 < (int)pbVar20) {
          iVar5 = (int)pbVar20 * 5;
          if (iVar5 < 0) {
            iVar5 = iVar5 + 3;
          }
          iStack_50 = (iVar5 >> 2) + 0x400;
          pbVar25 = (byte *)(**(code **)(in_t9 + 0x38a00))(pbVar25,iStack_50,1);
        }
        ppcVar15 = (char **)base64out;
        (**(code **)(in_t9 + 0x39208))(pbVar25 + (int)pbVar22);
        pbVar14 = pbVar1;
        pbVar22 = pbVar20;
      }
      pcVar18 = pcVar18 + 1;
      pbVar20 = pbVar14;
      cVar11 = *pcVar18;
    }
    (**(code **)(in_t9 + 0x389c4))(pcVar4);
    uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);
    pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);
    if (pcVar4 == (char *)0x0) {
      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30);
      goto LAB_000477c4;
    }
  }
LAB_00047a78:
  ppcVar15 = ppcVar15 + -0x12ad;
  iVar5 = (**(code **)(in_t9 + 0x391cc))(pcVar4);
  if (iVar5 == 0) {
    (**(code **)(in_t9 + 0x389c4))(pcVar4);
    pcVar4 = (char *)0x0;
    if ((int)pbVar22 < 4) {
      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b5c);
    }
    else {
      ppcVar19 = (char **)(**(code **)(in_t9 + 0x38a98))
                                    ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 |
                                     (uint)pbVar25[3] | (uint)pbVar25[2] << 8);
      if ((int)ppcVar19 < 0) {
        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);
      }
      else {
        if ((int)ppcVar19 < (int)(pbVar22 + -3)) {
          pbVar16 = pbVar25 + 4;
          if (algorithm != (char **)0x0) {
            pcVar4 = (char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50);
            *algorithm = pcVar4;
            ppcVar15 = ppcVar19;
          }
          if (pub_blob_len != (int *)0x0) {
            *pub_blob_len = (int)pbVar22;
          }
          if (commentptr == (char **)0x0) {
            (**(code **)(in_t9 + 0x389c4))(pcStack_58);
          }
          else {
            *commentptr = pcStack_58;
          }
          goto LAB_00047814;
        }
        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);
      }
    }
  }
  else {
    pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30);
  }
LAB_000477c4:
  (**(code **)(in_t9 + 0x389c4))(pcVar4);
  (**(code **)(in_t9 + 0x389c4))(pcStack_58);
  (**(code **)(in_t9 + 0x389c4))(pbVar25);
  if (errorstr == (char **)0x0) {
    pbVar25 = (byte *)0x0;
  }
  else {
    *errorstr = pcVar18;
    pbVar25 = (byte *)0x0;
  }
LAB_00047814:
  if (iVar2 == **(int **)(in_t9 + 0x39258)) {
    return pbVar25;
  }
  pcVar23 = *(code **)(in_t9 + 0x39114);
  (*pcVar23)();
  uVar3 = (**(code **)(pcVar23 + 0x38728))();
  uVar3 = (**(code **)(pcVar23 + 0x3872c))(uVar3);
  puVar8 = (undefined1 *)(**(code **)(pcVar23 + 0x38b40))(uVar3,0x20);
  if (puVar8 == (undefined1 *)0x0) {
    iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a20;
    pbVar25 = (byte *)0x0;
    pcVar4 = (char *)0x0;
  }
  else {
    pcVar18 = puVar8 + 1;
    *puVar8 = 0;
    pcVar4 = (char *)(**(code **)(pcVar23 + 0x38b40))(pcVar18,0x20);
    if (pcVar4 != (char *)0x0) {
      *pcVar4 = '\0';
      pcVar4 = (char *)(**(code **)(pcVar23 + 0x383e0))(pcVar4 + 1);
    }
    uVar9 = (**(code **)(pcVar23 + 0x38bdc))(pcVar18);
    iVar2 = (uVar9 >> 2) * 3;
    pbVar25 = (byte *)(**(code **)(pcVar23 + 0x383b8))(iVar2,1);
    iVar5 = 0;
    while( true ) {
      iVar10 = (**(code **)(pcVar23 + 0x38ba0))(pcVar18,0,4);
      if (iVar10 != 0) break;
      if (iVar2 <= iVar5 + 2) {
        (**(code **)(pcVar23 + 0x389cc))
                  (*(int *)(pcVar23 + 0x38418) + -0x49f8,*(int *)(pcVar23 + 0x38418) + -0x4e7c,0x441
                   ,*(int *)(pcVar23 + 0x38418) + -0x46b0);
        break;
      }
      iVar10 = (**(code **)(pcVar23 + 0x38498))(pcVar18,pbVar25 + iVar5);
      iVar5 = iVar5 + iVar10;
      pcVar18 = pcVar18 + 4;
    }
    if (*pcVar18 == '\0') {
      uVar9 = (**(code **)(pcVar23 + 0x38bdc))(uVar3);
      if ((int)(uVar9 + 3) < iVar5) {
        if (uVar9 == ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 | (uint)pbVar25[3] |
                     (uint)pbVar25[2] << 8)) {
          iVar2 = (**(code **)(pcVar23 + 0x38b88))(pbVar25 + 4,uVar3,uVar9);
          if (iVar2 == 0) {
            if (ppcVar15 != (char **)0x0) {
              pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3);
              *ppcVar15 = pcVar18;
            }
            if (pbVar16 != (byte *)0x0) {
              *(int *)pbVar16 = iVar5;
            }
            if (ppcVar17 == (char **)0x0) {
              (**(code **)(pcVar23 + 0x383a8))(pcVar4);
            }
            else {
              *ppcVar17 = pcVar4;
            }
            (**(code **)(pcVar23 + 0x383a8))(uVar3);
            return pbVar25;
          }
          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;
        }
        else {
          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;
        }
      }
      else {
        iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;
      }
    }
    else {
      iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a5c;
    }
  }
  (**(code **)(pcVar23 + 0x383a8))(uVar3);
  (**(code **)(pcVar23 + 0x383a8))(pcVar4);
  (**(code **)(pcVar23 + 0x383a8))(pbVar25);
  if (piVar24 != (int *)0x0) {
    *piVar24 = iVar2;
    piVar24 = (int *)0x0;
  }
  return (uchar *)piVar24;
}



/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

byte * rfc4716_loadpub(undefined4 param_1,undefined4 *param_2,byte *param_3,undefined4 *param_4,
                      undefined4 *param_5)

{
  undefined4 uVar1;
  byte *pbVar2;
  int iVar3;
  byte bVar8;
  undefined1 *puVar4;
  uint uVar5;
  int iVar6;
  undefined4 uVar7;
  byte *pbVar9;
  byte *pbVar10;
  byte *pbVar11;
  undefined4 *puVar12;
  byte *pbVar13;
  undefined4 *puVar14;
  undefined *puVar15;
  char *pcVar16;
  int iVar17;
  byte *pbVar18;
  undefined *puVar19;
  undefined4 *puVar20;
  byte *pbVar21;
  undefined4 *puVar22;
  byte *pbVar23;
  undefined4 local_58;
  int local_50;
  undefined4 uStack_34;
  byte abStack_30 [4];
  int local_2c;
  
  local_2c = *(int *)PTR___stack_chk_guard_00080958;
  puVar12 = param_2;
  pbVar13 = param_3;
  puVar14 = param_4;
  uVar1 = (*(code *)PTR_fgetline_00080444)();
  pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);
  if (pbVar2 == (byte *)0x0) {
    puVar15 = PTR_DAT_00080134 + -0x4bb8;
    pbVar23 = (byte *)0x0;
    local_58 = 0;
  }
  else {
    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);
    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);
    if (iVar3 == 0) {
      (*(code *)PTR_safefree_000800c4)(pbVar2);
      local_58 = 0;
      puVar15 = PTR_DAT_00080134 + -0x4ac4;
      puVar19 = PTR_DAT_00080134 + -0x4c58;
      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);
      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);
      while( true ) {
        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);
        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);
        if (pbVar2 == (byte *)0x0) break;
        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);
        if (puVar4 == (undefined1 *)0x0) {
          puVar12 = (undefined4 *)0x1;
          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);
          pbVar10 = (byte *)0x0;
          pbVar9 = pbVar10;
          if (*pbVar2 == 0x2d) goto LAB_00047a78;
          local_50 = 0x1000;
          pbVar21 = pbVar10;
          goto LAB_00047bb8;
        }
        *puVar4 = 0;
        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);
        puVar12 = puVar20;
        if (iVar3 == 0) {
          pbVar23 = puVar4 + 2;
          if (puVar4[2] == '\"') {
            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);
            if (pbVar23[iVar3 + -1] == 0x22) {
              pbVar23[iVar3 + -1] = 0;
              pbVar23 = puVar4 + 3;
            }
          }
          bVar8 = *pbVar23;
          pbVar10 = pbVar2;
          if (bVar8 != 0) {
            puVar12 = (undefined4 *)&DAT_0000005c;
            pbVar9 = pbVar2;
            do {
              pbVar21 = pbVar23;
              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {
                pbVar21 = pbVar23;
              }
              pbVar10 = pbVar9 + 1;
              *pbVar9 = *pbVar21;
              pbVar23 = pbVar21 + 1;
              bVar8 = pbVar21[1];
              pbVar9 = pbVar10;
            } while (bVar8 != 0);
          }
          *pbVar10 = 0;
          (*(code *)PTR_safefree_000800c4)(local_58);
          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);
        }
        else {
          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);
          if (iVar3 != 0) {
            pbVar13 = (byte *)0x2;
            puVar12 = puVar22;
            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);
            if (iVar3 != 0) {
              pbVar23 = (byte *)0x0;
              puVar15 = PTR_DAT_00080134 + -0x4b8c;
              goto LAB_000477c4;
            }
          }
        }
        (*(code *)PTR_safefree_000800c4)(pbVar2);
      }
      puVar15 = PTR_DAT_00080134 + -0x4b04;
      pbVar23 = (byte *)0x0;
    }
    else {
      pbVar23 = (byte *)0x0;
      local_58 = 0;
      puVar15 = PTR_DAT_00080134 + -0x4bb8;
    }
  }
  goto LAB_000477c4;
  while (puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d) {
LAB_00047bb8:
    bVar8 = *pbVar2;
    pbVar18 = pbVar2;
    while (bVar8 != 0) {
      pbVar11 = pbVar21 + 1;
      abStack_30[(int)pbVar21] = bVar8;
      if (pbVar11 == &DAT_00000004) {
        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);
        pbVar21 = pbVar13 + (int)pbVar9;
        if (local_50 < (int)pbVar21) {
          iVar3 = (int)pbVar21 * 5;
          if (iVar3 < 0) {
            iVar3 = iVar3 + 3;
          }
          local_50 = (iVar3 >> 2) + 0x400;
          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);
        }
        puVar12 = &uStack_34;
        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);
        pbVar11 = pbVar10;
        pbVar9 = pbVar21;
      }
      pbVar18 = pbVar18 + 1;
      pbVar21 = pbVar11;
      bVar8 = *pbVar18;
    }
    (*(code *)PTR_safefree_000800c4)(pbVar2);
    uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);
    pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);
    if (pbVar2 == (byte *)0x0) {
      puVar15 = PTR_DAT_00080134 + -0x4b30;
      goto LAB_000477c4;
    }
  }
LAB_00047a78:
  puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4);
  iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);
  if (iVar3 == 0) {
    (*(code *)PTR_safefree_000800c4)(pbVar2);
    pbVar2 = (byte *)0x0;
    if ((int)pbVar9 < 4) {
      puVar15 = PTR_DAT_00080134 + -0x4b5c;
    }
    else {
      puVar20 = (undefined4 *)
                (*(code *)PTR_toint_00080198)
                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |
                           (uint)pbVar23[2] << 8);
      if ((int)puVar20 < 0) {
        puVar15 = PTR_DAT_00080134 + -0x4bec;
      }
      else {
        if ((int)puVar20 < (int)(pbVar9 + -3)) {
          pbVar13 = pbVar23 + 4;
          if (param_2 != (undefined4 *)0x0) {
            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);
            *param_2 = uVar1;
            puVar12 = puVar20;
          }
          if (param_3 != (byte *)0x0) {
            *(byte **)param_3 = pbVar9;
          }
          if (param_4 == (undefined4 *)0x0) {
            (*(code *)PTR_safefree_000800c4)(local_58);
          }
          else {
            *param_4 = local_58;
          }
          goto LAB_00047814;
        }
        puVar15 = PTR_DAT_00080134 + -0x4bec;
      }
    }
  }
  else {
    puVar15 = PTR_DAT_00080134 + -0x4b30;
  }
LAB_000477c4:
  (*(code *)PTR_safefree_000800c4)(pbVar2);
  (*(code *)PTR_safefree_000800c4)(local_58);
  (*(code *)PTR_safefree_000800c4)(pbVar23);
  if (param_5 == (undefined4 *)0x0) {
    pbVar23 = (byte *)0x0;
  }
  else {
    *param_5 = puVar15;
    pbVar23 = (byte *)0x0;
  }
LAB_00047814:
  if (local_2c == *(int *)PTR___stack_chk_guard_00080958) {
    return pbVar23;
  }
  puVar15 = PTR___stack_chk_fail_00080814;
  (*(code *)PTR___stack_chk_fail_00080814)();
  uVar1 = (**(code **)(puVar15 + 0x38728))();
  uVar1 = (**(code **)(puVar15 + 0x3872c))(uVar1);
  puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20);
  if (puVar4 == (undefined1 *)0x0) {
    iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;
    pbVar2 = (byte *)0x0;
    puVar4 = (undefined1 *)0x0;
  }
  else {
    pcVar16 = puVar4 + 1;
    *puVar4 = 0;
    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);
    if (puVar4 != (undefined1 *)0x0) {
      *puVar4 = 0;
      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);
    }
    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);
    iVar3 = (uVar5 >> 2) * 3;
    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);
    iVar17 = 0;
    while( true ) {
      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);
      if (iVar6 != 0) break;
      if (iVar3 <= iVar17 + 2) {
        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))
                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,
                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,
                                    *(int *)(puVar15 + 0x38418) + -0x46b0);
        return pbVar2;
      }
      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);
      iVar17 = iVar17 + iVar6;
      pcVar16 = pcVar16 + 4;
    }
    if (*pcVar16 == '\0') {
      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);
      if ((int)(uVar5 + 3) < iVar17) {
        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |
                     (uint)pbVar2[2] << 8)) {
          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);
          if (iVar3 == 0) {
            if (puVar12 != (undefined4 *)0x0) {
              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);
              *puVar12 = uVar7;
            }
            if (pbVar13 != (byte *)0x0) {
              *(int *)pbVar13 = iVar17;
            }
            if (puVar14 == (undefined4 *)0x0) {
              (**(code **)(puVar15 + 0x383a8))(puVar4);
            }
            else {
              *puVar14 = puVar4;
            }
            (**(code **)(puVar15 + 0x383a8))(uVar1);
            return pbVar2;
          }
          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;
        }
        else {
          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;
        }
      }
      else {
        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;
      }
    }
    else {
      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;
    }
  }
  (**(code **)(puVar15 + 0x383a8))(uVar1);
  (**(code **)(puVar15 + 0x383a8))(puVar4);
  (**(code **)(puVar15 + 0x383a8))(pbVar2);
  __gp_1 = iVar3;
  return (byte *)0x0;
}


lui gp,0x4
addiu gp,gp,0x970
addu gp,gp,t9
addiu sp,sp,-0x78
sw ra,0x74(sp)
sw s8,0x70(sp)
sw s7,0x6c(sp)
sw s6,0x68(sp)
sw s5,0x64(sp)
sw s4,0x60(sp)
sw s3,0x5c(sp)
sw s2,0x58(sp)
sw s1,0x54(sp)
sw s0,0x50(sp)
sw gp,0x10(sp)
sw a0,0x1c(sp)
sw a1,0x34(sp)
sw a2,0x38(sp)
sw a3,0x3c(sp)
lw v0,0x88(sp)
sw v0,0x30(sp)
lw v0,-0x7718(gp)
lw v0,0x0(v0)
sw v0,0x4c(sp)
lw t9,-0x7c2c(gp)
jalr t9
_nop
lw gp,0x10(sp)
or a0,v0,zero
lw t9,-0x7c28(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x00047cbc
_or s1,v0,zero
lw a1,-0x7f3c(gp)
addiu a1,a1,-0x4ae4
or a0,v0,zero
lw t9,-0x77a4(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x00047854
_sw v0,0x2c(sp)
sw zero,0x18(sp)
sw zero,0x20(sp)
lw s0,-0x7f3c(gp)
addiu s0,s0,-0x4bb8
or a0,s1,zero
lw t9,-0x7fac(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw a0,0x20(sp)
lw t9,-0x7fac(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw a0,0x18(sp)
lw t9,-0x7fac(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw v0,0x30(sp)
beq v0,zero,0x00047d08
_nop
sw s0,0x0(v0)
sw zero,0x18(sp)
lw v0,0x18(sp)
lw a0,0x4c(sp)
lw v1,-0x7718(gp)
lw v1,0x0(v1)
bne a0,v1,0x00047d10
_lw ra,0x74(sp)
lw s8,0x70(sp)
lw s7,0x6c(sp)
lw s6,0x68(sp)
lw s5,0x64(sp)
lw s4,0x60(sp)
lw s3,0x5c(sp)
lw s2,0x58(sp)
lw s1,0x54(sp)
lw s0,0x50(sp)
jr ra
_addiu sp,sp,0x78
or a0,s1,zero
lw t9,-0x7fac(gp)
jalr t9
_nop
lw gp,0x10(sp)
sw zero,0x20(sp)
lw s2,-0x7f3c(gp)
addiu s2,s2,-0x4ac4
lw s4,-0x7f3c(gp)
addiu s4,s4,-0x4c58
lw s5,-0x7f3c(gp)
addiu s5,s5,-0x4ac0
lw s6,-0x7f3c(gp)
b 0x0004796c
_addiu s6,s6,-0x4ab8
lb v1,0x2(s3)
li v0,0x22
beq v1,v0,0x000478b4
_addiu s0,s3,0x2
lb v0,0x0(s0)
beq v0,zero,0x00047928
_or v1,s1,zero
b 0x00047918
_li a1,0x5c
or a0,s0,zero
lw t9,-0x7778(gp)
jalr t9
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x1
addu v0,s0,v0
lb a0,0x0(v0)
li v1,0x22
bne a0,v1,0x000478a0
_nop
sb zero,0x0(v0)
b 0x000478a0
_addiu s0,s3,0x3
lb v0,0x1(s0)
bne v0,zero,0x000478fc
_addiu v0,s0,0x1
or v0,s0,zero
addiu v1,v1,0x1
lb a0,0x0(v0)
sb a0,-0x1(v1)
addiu s0,v0,0x1
lb v0,0x1(v0)
beq v0,zero,0x00047928
_nop
beq v0,a1,0x000478ec
_or v0,s0,zero
b 0x00047900
_addiu v1,v1,0x1
sb zero,0x0(v1)
lw a0,0x20(sp)
lw t9,-0x7fac(gp)
jalr t9
_nop
lw gp,0x10(sp)
or a0,s1,zero
lw t9,-0x7f74(gp)
jalr t9
_nop
lw gp,0x10(sp)
sw v0,0x20(sp)
or a0,s1,zero
lw t9,-0x7fac(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw a0,0x1c(sp)
lw t9,-0x7c2c(gp)
jalr t9
_nop
lw gp,0x10(sp)
or a0,v0,zero
lw t9,-0x7c28(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x00047cd0
_or s1,v0,zero
or a1,s2,zero
or a0,v0,zero
lw t9,-0x7704(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x00047a2c
_or s3,v0,zero
sb zero,0x0(v0)
or a1,s4,zero
or a0,s1,zero
lw t9,-0x77a4(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x00047890
_or a1,s5,zero
or a0,s1,zero
lw t9,-0x77a4(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x0004795c
_or a0,s1,zero
li a2,0x2
or a1,s6,zero
lw t9,-0x7888(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x0004795c
_or a0,s1,zero
sw zero,0x18(sp)
lw s0,-0x7f3c(gp)
b 0x000477c4
_addiu s0,s0,-0x4b8c
li a1,0x1
li a0,0x1000
lw t9,-0x7f9c(gp)
jalr t9
_nop
lw gp,0x10(sp)
sw v0,0x18(sp)
lb v1,0x0(s1)
li v0,0x2d
beq v1,v0,0x00047a74
_lw s6,0x2c(sp)
or s0,s6,zero
li v0,0x1000
sw v0,0x28(sp)
li s4,0x4
addiu s7,sp,0x44
b 0x00047bb8
_addiu s8,sp,0x48
lw a1,-0x7f3c(gp)
addiu a1,a1,-0x4ab4
or a0,s1,zero
lw t9,-0x77a4(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x00047bd4
_lw s0,-0x7f3c(gp)
b 0x000477c0
_addiu s0,s0,-0x4b30
or a1,s7,zero
or a0,s8,zero
lw t9,-0x7ebc(gp)
jalr t9
_nop
lw gp,0x10(sp)
or s0,v0,zero
addu s5,v0,s6
lw v0,0x28(sp)
slt v0,v0,s5
bne v0,zero,0x00047b24
_sll v0,s5,0x2
or a2,s0,zero
or a1,s7,zero
lw v0,0x18(sp)
addu a0,v0,s6
lw t9,-0x7768(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw s0,0x24(sp)
or s6,s5,zero
addiu s2,s2,0x1
lb v0,0x0(s2)
beq v0,zero,0x00047b68
_or a0,s1,zero
addiu v1,s0,0x1
addiu a0,sp,0x50
addu s0,a0,s0
beq v1,s4,0x00047aa0
_sb v0,-0x8(s0)
b 0x00047af8
_or s0,v1,zero
addu v0,v0,s5
bltz v0,0x00047b60
_nop
sra v0,v0,0x2
addiu v0,v0,0x400
sw v0,0x28(sp)
li a2,0x1
or a1,v0,zero
lw a0,0x18(sp)
lw t9,-0x7f70(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x00047ad0
_sw v0,0x18(sp)
b 0x00047b30
_addiu v0,v0,0x3
lw t9,-0x7fac(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw a0,0x1c(sp)
lw t9,-0x7c2c(gp)
jalr t9
_nop
lw gp,0x10(sp)
or a0,v0,zero
lw t9,-0x7c28(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x00047ce0
_or s1,v0,zero
lb v1,0x0(v0)
li v0,0x2d
beq v1,v0,0x00047a78
_lw a1,-0x7f3c(gp)
lb v0,0x0(s1)
or s2,s1,zero
lw v1,0x2c(sp)
bne v0,zero,0x00047b08
_sw v1,0x24(sp)
b 0x00047b68
_or a0,s1,zero
or a0,s1,zero
lw t9,-0x7fac(gp)
jalr t9
_nop
lw gp,0x10(sp)
slti v0,s6,0x4
beq v0,zero,0x00047c00
_or s1,s3,zero
lw s0,-0x7f3c(gp)
b 0x000477c0
_addiu s0,s0,-0x4b5c
lw s0,0x18(sp)
lbu v0,0x0(s0)
sll v0,v0,0x18
lbu v1,0x1(s0)
sll v1,v1,0x10
or v0,v0,v1
lbu v1,0x3(s0)
or v0,v0,v1
lbu a0,0x2(s0)
sll a0,a0,0x8
or a0,v0,a0
lw t9,-0x7ed8(gp)
jalr t9
_nop
lw gp,0x10(sp)
bltz v0,0x00047cec
_addiu v1,s6,-0x3
slt v1,v0,v1
beq v1,zero,0x00047cfc
_or s1,s3,zero
lw s1,0x34(sp)
beq s1,zero,0x00047c7c
_addiu a2,s0,0x4
or a1,v0,zero
lw a0,-0x7fc8(gp)
addiu a0,a0,0x4a50
lw t9,-0x7fb8(gp)
jalr t9
_nop
lw gp,0x10(sp)
sw v0,0x0(s1)
lw v0,0x38(sp)
beq v0,zero,0x00047c8c
_nop
sw s6,0x0(v0)
lw v0,0x3c(sp)
beq v0,zero,0x00047ca0
_lw v1,0x20(sp)
b 0x00047810
_sw v1,0x0(v0)
lw a0,0x20(sp)
lw t9,-0x7fac(gp)
jalr t9
_nop
lw gp,0x10(sp)
b 0x00047814
_lw v0,0x18(sp)
sw v0,0x18(sp)
sw v0,0x20(sp)
lw s0,-0x7f3c(gp)
b 0x000477c0
_addiu s0,s0,-0x4bb8
sw v0,0x18(sp)
lw s0,-0x7f3c(gp)
b 0x000477c0
_addiu s0,s0,-0x4b04
lw s0,-0x7f3c(gp)
b 0x000477c0
_addiu s0,s0,-0x4b30
or s1,s3,zero
lw s0,-0x7f3c(gp)
b 0x000477c0
_addiu s0,s0,-0x4bec
lw s0,-0x7f3c(gp)
b 0x000477c0
_addiu s0,s0,-0x4bec
b 0x00047810
_sw v0,0x18(sp)
lw t9,-0x785c(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nbyte * rfc4716_loadpub(undefined4 param_1,undefined4 *param_2,byte *param_3,undefined4 *param_4,\n                      undefined4 *param_5)\n\n{\n  undefined4 uVar1;\n  byte *pbVar2;\n  int iVar3;\n  byte bVar8;\n  undefined1 *puVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 uVar7;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 *puVar12;\n  byte *pbVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  int iVar17;\n  byte *pbVar18;\n  undefined *puVar19;\n  undefined4 *puVar20;\n  byte *pbVar21;\n  undefined4 *puVar22;\n  byte *pbVar23;\n  undefined4 local_58;\n  int local_50;\n  undefined4 uStack_34;\n  byte abStack_30 [4];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_00080958;\n  puVar12 = param_2;\n  pbVar13 = param_3;\n  puVar14 = param_4;\n  uVar1 = (*(code *)PTR_fgetline_00080444)();\n  pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n  if (pbVar2 == (byte *)0x0) {\n    puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    pbVar23 = (byte *)0x0;\n    local_58 = 0;\n  }\n  else {\n    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);\n    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n    if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }\n  }\n  goto LAB_000477c4;\n  while (puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d) {\nLAB_00047bb8:\n    bVar8 = *pbVar2;\n    pbVar18 = pbVar2;\n    while (bVar8 != 0) {\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n    pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n    if (pbVar2 == (byte *)0x0) {\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }\n  }\nLAB_00047a78:\n  puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4);\n  iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n  if (iVar3 == 0) {\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    pbVar2 = (byte *)0x0;\n    if ((int)pbVar9 < 4) {\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }\n    else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }\n  }\n  else {\n    puVar15 = PTR_DAT_00080134 + -0x4b30;\n  }\nLAB_000477c4:\n  (*(code *)PTR_safefree_000800c4)(pbVar2);\n  (*(code *)PTR_safefree_000800c4)(local_58);\n  (*(code *)PTR_safefree_000800c4)(pbVar23);\n  if (param_5 == (undefined4 *)0x0) {\n    pbVar23 = (byte *)0x0;\n  }\n  else {\n    *param_5 = puVar15;\n    pbVar23 = (byte *)0x0;\n  }\nLAB_00047814:\n  if (local_2c == *(int *)PTR___stack_chk_guard_00080958) {\n    return pbVar23;\n  }\n  puVar15 = PTR___stack_chk_fail_00080814;\n  (*(code *)PTR___stack_chk_fail_00080814)();\n  uVar1 = (**(code **)(puVar15 + 0x38728))();\n  uVar1 = (**(code **)(puVar15 + 0x3872c))(uVar1);\n  puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20);\n  if (puVar4 == (undefined1 *)0x0) {\n    iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;\n    pbVar2 = (byte *)0x0;\n    puVar4 = (undefined1 *)0x0;\n  }\n  else {\n    pcVar16 = puVar4 + 1;\n    *puVar4 = 0;\n    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);\n    if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }\n    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);\n    iVar3 = (uVar5 >> 2) * 3;\n    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);\n    iVar17 = 0;\n    while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }\n    if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }\n  }\n  (**(code **)(puVar15 + 0x383a8))(uVar1);\n  (**(code **)(puVar15 + 0x383a8))(puVar4);\n  (**(code **)(puVar15 + 0x383a8))(pbVar2);\n  __gp_1 = iVar3;\n  return (byte *)0x0;\n}\n\n" comment (function_definition "byte * rfc4716_loadpub(undefined4 param_1,undefined4 *param_2,byte *param_3,undefined4 *param_4,\n                      undefined4 *param_5)\n\n{\n  undefined4 uVar1;\n  byte *pbVar2;\n  int iVar3;\n  byte bVar8;\n  undefined1 *puVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 uVar7;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 *puVar12;\n  byte *pbVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  int iVar17;\n  byte *pbVar18;\n  undefined *puVar19;\n  undefined4 *puVar20;\n  byte *pbVar21;\n  undefined4 *puVar22;\n  byte *pbVar23;\n  undefined4 local_58;\n  int local_50;\n  undefined4 uStack_34;\n  byte abStack_30 [4];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_00080958;\n  puVar12 = param_2;\n  pbVar13 = param_3;\n  puVar14 = param_4;\n  uVar1 = (*(code *)PTR_fgetline_00080444)();\n  pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n  if (pbVar2 == (byte *)0x0) {\n    puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    pbVar23 = (byte *)0x0;\n    local_58 = 0;\n  }\n  else {\n    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);\n    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n    if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }\n  }\n  goto LAB_000477c4;\n  while (puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d) {\nLAB_00047bb8:\n    bVar8 = *pbVar2;\n    pbVar18 = pbVar2;\n    while (bVar8 != 0) {\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n    pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n    if (pbVar2 == (byte *)0x0) {\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }\n  }\nLAB_00047a78:\n  puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4);\n  iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n  if (iVar3 == 0) {\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    pbVar2 = (byte *)0x0;\n    if ((int)pbVar9 < 4) {\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }\n    else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }\n  }\n  else {\n    puVar15 = PTR_DAT_00080134 + -0x4b30;\n  }\nLAB_000477c4:\n  (*(code *)PTR_safefree_000800c4)(pbVar2);\n  (*(code *)PTR_safefree_000800c4)(local_58);\n  (*(code *)PTR_safefree_000800c4)(pbVar23);\n  if (param_5 == (undefined4 *)0x0) {\n    pbVar23 = (byte *)0x0;\n  }\n  else {\n    *param_5 = puVar15;\n    pbVar23 = (byte *)0x0;\n  }\nLAB_00047814:\n  if (local_2c == *(int *)PTR___stack_chk_guard_00080958) {\n    return pbVar23;\n  }\n  puVar15 = PTR___stack_chk_fail_00080814;\n  (*(code *)PTR___stack_chk_fail_00080814)();\n  uVar1 = (**(code **)(puVar15 + 0x38728))();\n  uVar1 = (**(code **)(puVar15 + 0x3872c))(uVar1);\n  puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20);\n  if (puVar4 == (undefined1 *)0x0) {\n    iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;\n    pbVar2 = (byte *)0x0;\n    puVar4 = (undefined1 *)0x0;\n  }\n  else {\n    pcVar16 = puVar4 + 1;\n    *puVar4 = 0;\n    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);\n    if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }\n    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);\n    iVar3 = (uVar5 >> 2) * 3;\n    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);\n    iVar17 = 0;\n    while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }\n    if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }\n  }\n  (**(code **)(puVar15 + 0x383a8))(uVar1);\n  (**(code **)(puVar15 + 0x383a8))(puVar4);\n  (**(code **)(puVar15 + 0x383a8))(pbVar2);\n  __gp_1 = iVar3;\n  return (byte *)0x0;\n}" type_identifier (pointer_declarator "* rfc4716_loadpub(undefined4 param_1,undefined4 *param_2,byte *param_3,undefined4 *param_4,\n                      undefined4 *param_5)" * (function_declarator "rfc4716_loadpub(undefined4 param_1,undefined4 *param_2,byte *param_3,undefined4 *param_4,\n                      undefined4 *param_5)" identifier (parameter_list "(undefined4 param_1,undefined4 *param_2,byte *param_3,undefined4 *param_4,\n                      undefined4 *param_5)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined4 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) )))) (compound_statement "{\n  undefined4 uVar1;\n  byte *pbVar2;\n  int iVar3;\n  byte bVar8;\n  undefined1 *puVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 uVar7;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 *puVar12;\n  byte *pbVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  int iVar17;\n  byte *pbVar18;\n  undefined *puVar19;\n  undefined4 *puVar20;\n  byte *pbVar21;\n  undefined4 *puVar22;\n  byte *pbVar23;\n  undefined4 local_58;\n  int local_50;\n  undefined4 uStack_34;\n  byte abStack_30 [4];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_00080958;\n  puVar12 = param_2;\n  pbVar13 = param_3;\n  puVar14 = param_4;\n  uVar1 = (*(code *)PTR_fgetline_00080444)();\n  pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n  if (pbVar2 == (byte *)0x0) {\n    puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    pbVar23 = (byte *)0x0;\n    local_58 = 0;\n  }\n  else {\n    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);\n    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n    if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }\n  }\n  goto LAB_000477c4;\n  while (puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d) {\nLAB_00047bb8:\n    bVar8 = *pbVar2;\n    pbVar18 = pbVar2;\n    while (bVar8 != 0) {\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n    pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n    if (pbVar2 == (byte *)0x0) {\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }\n  }\nLAB_00047a78:\n  puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4);\n  iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n  if (iVar3 == 0) {\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    pbVar2 = (byte *)0x0;\n    if ((int)pbVar9 < 4) {\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }\n    else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }\n  }\n  else {\n    puVar15 = PTR_DAT_00080134 + -0x4b30;\n  }\nLAB_000477c4:\n  (*(code *)PTR_safefree_000800c4)(pbVar2);\n  (*(code *)PTR_safefree_000800c4)(local_58);\n  (*(code *)PTR_safefree_000800c4)(pbVar23);\n  if (param_5 == (undefined4 *)0x0) {\n    pbVar23 = (byte *)0x0;\n  }\n  else {\n    *param_5 = puVar15;\n    pbVar23 = (byte *)0x0;\n  }\nLAB_00047814:\n  if (local_2c == *(int *)PTR___stack_chk_guard_00080958) {\n    return pbVar23;\n  }\n  puVar15 = PTR___stack_chk_fail_00080814;\n  (*(code *)PTR___stack_chk_fail_00080814)();\n  uVar1 = (**(code **)(puVar15 + 0x38728))();\n  uVar1 = (**(code **)(puVar15 + 0x3872c))(uVar1);\n  puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20);\n  if (puVar4 == (undefined1 *)0x0) {\n    iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;\n    pbVar2 = (byte *)0x0;\n    puVar4 = (undefined1 *)0x0;\n  }\n  else {\n    pcVar16 = puVar4 + 1;\n    *puVar4 = 0;\n    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);\n    if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }\n    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);\n    iVar3 = (uVar5 >> 2) * 3;\n    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);\n    iVar17 = 0;\n    while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }\n    if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }\n  }\n  (**(code **)(puVar15 + 0x383a8))(uVar1);\n  (**(code **)(puVar15 + 0x383a8))(puVar4);\n  (**(code **)(puVar15 + 0x383a8))(pbVar2);\n  __gp_1 = iVar3;\n  return (byte *)0x0;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "undefined4 uStack_34;" type_identifier identifier ;) (declaration "byte abStack_30 [4];" type_identifier (array_declarator "abStack_30 [4]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00080958;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00080958" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00080958" * (cast_expression "(int *)PTR___stack_chk_guard_00080958" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar12 = param_2;" (assignment_expression "puVar12 = param_2" identifier = identifier) ;) (expression_statement "pbVar13 = param_3;" (assignment_expression "pbVar13 = param_3" identifier = identifier) ;) (expression_statement "puVar14 = param_4;" (assignment_expression "puVar14 = param_4" identifier = identifier) ;) (expression_statement "uVar1 = (*(code *)PTR_fgetline_00080444)();" (assignment_expression "uVar1 = (*(code *)PTR_fgetline_00080444)()" identifier = (call_expression "(*(code *)PTR_fgetline_00080444)()" (parenthesized_expression "(*(code *)PTR_fgetline_00080444)" ( (pointer_expression "*(code *)PTR_fgetline_00080444" * (cast_expression "(code *)PTR_fgetline_00080444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);" (assignment_expression "pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1)" identifier = (cast_expression "(byte *)(*(code *)PTR_chomp_00080448)(uVar1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_chomp_00080448)(uVar1)" (parenthesized_expression "(*(code *)PTR_chomp_00080448)" ( (pointer_expression "*(code *)PTR_chomp_00080448" * (cast_expression "(code *)PTR_chomp_00080448" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar1)" ( identifier ))))) ;) (if_statement "if (pbVar2 == (byte *)0x0) {\n    puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    pbVar23 = (byte *)0x0;\n    local_58 = 0;\n  }\n  else {\n    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);\n    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n    if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }\n  }" if (parenthesized_expression "(pbVar2 == (byte *)0x0)" ( (binary_expression "pbVar2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    pbVar23 = (byte *)0x0;\n    local_58 = 0;\n  }" { (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4bb8;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4bb8" identifier = (binary_expression "PTR_DAT_00080134 + -0x4bb8" identifier + number_literal)) ;) (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);\n    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n    if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }\n  }" else (compound_statement "{\n    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);\n    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n    if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }\n  }" { (expression_statement "puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);" (assignment_expression "puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4)" identifier = (cast_expression "(undefined4 *)(PTR_DAT_00080134 + -0x4ae4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00080134 + -0x4ae4)" ( (binary_expression "PTR_DAT_00080134 + -0x4ae4" identifier + number_literal) )))) ;) (expression_statement "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2)" identifier = (call_expression "(*(code *)PTR_strcmp_000808cc)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strcmp_000808cc)" ( (pointer_expression "*(code *)PTR_strcmp_000808cc" * (cast_expression "(code *)PTR_strcmp_000808cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }" { (expression_statement "(*(code *)PTR_safefree_000800c4)(pbVar2);" (call_expression "(*(code *)PTR_safefree_000800c4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" ( (pointer_expression "*(code *)PTR_safefree_000800c4" * (cast_expression "(code *)PTR_safefree_000800c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier ))) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4ac4;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4ac4" identifier = (binary_expression "PTR_DAT_00080134 + -0x4ac4" identifier + number_literal)) ;) (expression_statement "puVar19 = PTR_DAT_00080134 + -0x4c58;" (assignment_expression "puVar19 = PTR_DAT_00080134 + -0x4c58" identifier = (binary_expression "PTR_DAT_00080134 + -0x4c58" identifier + number_literal)) ;) (expression_statement "puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);" (assignment_expression "puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0)" identifier = (cast_expression "(undefined4 *)(PTR_DAT_00080134 + -0x4ac0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00080134 + -0x4ac0)" ( (binary_expression "PTR_DAT_00080134 + -0x4ac0" identifier + number_literal) )))) ;) (expression_statement "puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);" (assignment_expression "puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8)" identifier = (cast_expression "(undefined4 *)(PTR_DAT_00080134 + -0x4ab8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00080134 + -0x4ab8)" ( (binary_expression "PTR_DAT_00080134 + -0x4ab8" identifier + number_literal) )))) ;) (while_statement "while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }" { (expression_statement "uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);" (assignment_expression "uVar1 = (*(code *)PTR_fgetline_00080444)(param_1)" identifier = (call_expression "(*(code *)PTR_fgetline_00080444)(param_1)" (parenthesized_expression "(*(code *)PTR_fgetline_00080444)" ( (pointer_expression "*(code *)PTR_fgetline_00080444" * (cast_expression "(code *)PTR_fgetline_00080444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);" (assignment_expression "pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1)" identifier = (cast_expression "(byte *)(*(code *)PTR_chomp_00080448)(uVar1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_chomp_00080448)(uVar1)" (parenthesized_expression "(*(code *)PTR_chomp_00080448)" ( (pointer_expression "*(code *)PTR_chomp_00080448" * (cast_expression "(code *)PTR_chomp_00080448" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar1)" ( identifier ))))) ;) (if_statement "if (pbVar2 == (byte *)0x0) break;" if (parenthesized_expression "(pbVar2 == (byte *)0x0)" ( (binary_expression "pbVar2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);" (assignment_expression "puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15)" (parenthesized_expression "(*(code *)PTR_strstr_0008096c)" ( (pointer_expression "*(code *)PTR_strstr_0008096c" * (cast_expression "(code *)PTR_strstr_0008096c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2,puVar15)" ( identifier , identifier ))))) ;) (if_statement "if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }" if (parenthesized_expression "(puVar4 == (undefined1 *)0x0)" ( (binary_expression "puVar4 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }" { (expression_statement "puVar12 = (undefined4 *)0x1;" (assignment_expression "puVar12 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);" (assignment_expression "pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000)" identifier = (cast_expression "(byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_safemalloc_000800d4)(0x1000)" (parenthesized_expression "(*(code *)PTR_safemalloc_000800d4)" ( (pointer_expression "*(code *)PTR_safemalloc_000800d4" * (cast_expression "(code *)PTR_safemalloc_000800d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x1000)" ( number_literal ))))) ;) (expression_statement "pbVar10 = (byte *)0x0;" (assignment_expression "pbVar10 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" identifier = identifier) ;) (if_statement "if (*pbVar2 == 0x2d) goto LAB_00047a78;" if (parenthesized_expression "(*pbVar2 == 0x2d)" ( (binary_expression "*pbVar2 == 0x2d" (pointer_expression "*pbVar2" * identifier) == number_literal) )) (goto_statement "goto LAB_00047a78;" goto statement_identifier ;)) (expression_statement "local_50 = 0x1000;" (assignment_expression "local_50 = 0x1000" identifier = number_literal) ;) (expression_statement "pbVar21 = pbVar10;" (assignment_expression "pbVar21 = pbVar10" identifier = identifier) ;) (goto_statement "goto LAB_00047bb8;" goto statement_identifier ;) })) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19)" identifier = (call_expression "(*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19)" (parenthesized_expression "(*(code *)PTR_strcmp_000808cc)" ( (pointer_expression "*(code *)PTR_strcmp_000808cc" * (cast_expression "(code *)PTR_strcmp_000808cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2,puVar19)" ( identifier , identifier )))) ;) (expression_statement "puVar12 = puVar20;" (assignment_expression "puVar12 = puVar20" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }" { (expression_statement "pbVar23 = puVar4 + 2;" (assignment_expression "pbVar23 = puVar4 + 2" identifier = (binary_expression "puVar4 + 2" identifier + number_literal)) ;) (if_statement "if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }" if (parenthesized_expression "(puVar4[2] == '\"')" ( (binary_expression "puVar4[2] == '\"'" (subscript_expression "puVar4[2]" identifier [ number_literal ]) == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }" { (expression_statement "iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23)" identifier = (call_expression "(*(code *)PTR_strlen_000808f8)(pbVar23)" (parenthesized_expression "(*(code *)PTR_strlen_000808f8)" ( (pointer_expression "*(code *)PTR_strlen_000808f8" * (cast_expression "(code *)PTR_strlen_000808f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar23)" ( identifier )))) ;) (if_statement "if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }" if (parenthesized_expression "(pbVar23[iVar3 + -1] == 0x22)" ( (binary_expression "pbVar23[iVar3 + -1] == 0x22" (subscript_expression "pbVar23[iVar3 + -1]" identifier [ (binary_expression "iVar3 + -1" identifier + number_literal) ]) == number_literal) )) (compound_statement "{\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }" { (expression_statement "pbVar23[iVar3 + -1] = 0;" (assignment_expression "pbVar23[iVar3 + -1] = 0" (subscript_expression "pbVar23[iVar3 + -1]" identifier [ (binary_expression "iVar3 + -1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "pbVar23 = puVar4 + 3;" (assignment_expression "pbVar23 = puVar4 + 3" identifier = (binary_expression "puVar4 + 3" identifier + number_literal)) ;) })) })) (expression_statement "bVar8 = *pbVar23;" (assignment_expression "bVar8 = *pbVar23" identifier = (pointer_expression "*pbVar23" * identifier)) ;) (expression_statement "pbVar10 = pbVar2;" (assignment_expression "pbVar10 = pbVar2" identifier = identifier) ;) (if_statement "if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }" if (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) (compound_statement "{\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }" { (expression_statement "puVar12 = (undefined4 *)&DAT_0000005c;" (assignment_expression "puVar12 = (undefined4 *)&DAT_0000005c" identifier = (cast_expression "(undefined4 *)&DAT_0000005c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000005c" & identifier))) ;) (expression_statement "pbVar9 = pbVar2;" (assignment_expression "pbVar9 = pbVar2" identifier = identifier) ;) (do_statement "do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);" do (compound_statement "{\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            }" { (expression_statement "pbVar21 = pbVar23;" (assignment_expression "pbVar21 = pbVar23" identifier = identifier) ;) (if_statement "if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }" if (parenthesized_expression "((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0))" ( (binary_expression "(bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)" (parenthesized_expression "(bVar8 == 0x5c)" ( (binary_expression "bVar8 == 0x5c" identifier == number_literal) )) && (parenthesized_expression "(pbVar21 = pbVar23 + 1, pbVar23[1] == 0)" ( (comma_expression "pbVar21 = pbVar23 + 1, pbVar23[1] == 0" (assignment_expression "pbVar21 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) , (binary_expression "pbVar23[1] == 0" (subscript_expression "pbVar23[1]" identifier [ number_literal ]) == number_literal)) ))) )) (compound_statement "{\n                pbVar21 = pbVar23;\n              }" { (expression_statement "pbVar21 = pbVar23;" (assignment_expression "pbVar21 = pbVar23" identifier = identifier) ;) })) (expression_statement "pbVar10 = pbVar9 + 1;" (assignment_expression "pbVar10 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar9 = *pbVar21;" (assignment_expression "*pbVar9 = *pbVar21" (pointer_expression "*pbVar9" * identifier) = (pointer_expression "*pbVar21" * identifier)) ;) (expression_statement "pbVar23 = pbVar21 + 1;" (assignment_expression "pbVar23 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (expression_statement "bVar8 = pbVar21[1];" (assignment_expression "bVar8 = pbVar21[1]" identifier = (subscript_expression "pbVar21[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" identifier = identifier) ;) }) while (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) ;) })) (expression_statement "*pbVar10 = 0;" (assignment_expression "*pbVar10 = 0" (pointer_expression "*pbVar10" * identifier) = number_literal) ;) (expression_statement "(*(code *)PTR_safefree_000800c4)(local_58);" (call_expression "(*(code *)PTR_safefree_000800c4)(local_58)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" ( (pointer_expression "*(code *)PTR_safefree_000800c4" * (cast_expression "(code *)PTR_safefree_000800c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);" (assignment_expression "local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2)" identifier = (call_expression "(*(code *)PTR_dupstr_000800fc)(pbVar2)" (parenthesized_expression "(*(code *)PTR_dupstr_000800fc)" ( (pointer_expression "*(code *)PTR_dupstr_000800fc" * (cast_expression "(code *)PTR_dupstr_000800fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) }) (else_clause "else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }" else (compound_statement "{\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }" { (expression_statement "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2)" identifier = (call_expression "(*(code *)PTR_strcmp_000808cc)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strcmp_000808cc)" ( (pointer_expression "*(code *)PTR_strcmp_000808cc" * (cast_expression "(code *)PTR_strcmp_000808cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }" { (expression_statement "pbVar13 = (byte *)0x2;" (assignment_expression "pbVar13 = (byte *)0x2" identifier = (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar12 = puVar22;" (assignment_expression "puVar12 = puVar22" identifier = identifier) ;) (expression_statement "iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);" (assignment_expression "iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2)" identifier = (call_expression "(*(code *)PTR_strncmp_000807e8)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strncmp_000807e8)" ( (pointer_expression "*(code *)PTR_strncmp_000807e8" * (cast_expression "(code *)PTR_strncmp_000807e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }" { (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4b8c;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4b8c" identifier = (binary_expression "PTR_DAT_00080134 + -0x4b8c" identifier + number_literal)) ;) (goto_statement "goto LAB_000477c4;" goto statement_identifier ;) })) })) }))) (expression_statement "(*(code *)PTR_safefree_000800c4)(pbVar2);" (call_expression "(*(code *)PTR_safefree_000800c4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" ( (pointer_expression "*(code *)PTR_safefree_000800c4" * (cast_expression "(code *)PTR_safefree_000800c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier ))) ;) })) (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4b04;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4b04" identifier = (binary_expression "PTR_DAT_00080134 + -0x4b04" identifier + number_literal)) ;) (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }" else (compound_statement "{\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }" { (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4bb8;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4bb8" identifier = (binary_expression "PTR_DAT_00080134 + -0x4bb8" identifier + number_literal)) ;) }))) }))) (goto_statement "goto LAB_000477c4;" goto statement_identifier ;) (while_statement "while (puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d) {\nLAB_00047bb8:\n    bVar8 = *pbVar2;\n    pbVar18 = pbVar2;\n    while (bVar8 != 0) {\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n    pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n    if (pbVar2 == (byte *)0x0) {\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }\n  }" while (parenthesized_expression "(puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d)" ( (comma_expression "puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d" (assignment_expression "puVar12 = (undefined4 *)PTR_DAT_00080134" identifier = (cast_expression "(undefined4 *)PTR_DAT_00080134" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "*pbVar2 != 0x2d" (pointer_expression "*pbVar2" * identifier) != number_literal)) )) (compound_statement "{\nLAB_00047bb8:\n    bVar8 = *pbVar2;\n    pbVar18 = pbVar2;\n    while (bVar8 != 0) {\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n    pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n    if (pbVar2 == (byte *)0x0) {\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }\n  }" { (labeled_statement "LAB_00047bb8:\n    bVar8 = *pbVar2;" statement_identifier : (expression_statement "bVar8 = *pbVar2;" (assignment_expression "bVar8 = *pbVar2" identifier = (pointer_expression "*pbVar2" * identifier)) ;)) (expression_statement "pbVar18 = pbVar2;" (assignment_expression "pbVar18 = pbVar2" identifier = identifier) ;) (while_statement "while (bVar8 != 0) {\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }" while (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }" { (expression_statement "pbVar11 = pbVar21 + 1;" (assignment_expression "pbVar11 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (expression_statement "abStack_30[(int)pbVar21] = bVar8;" (assignment_expression "abStack_30[(int)pbVar21] = bVar8" (subscript_expression "abStack_30[(int)pbVar21]" identifier [ (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) ]) = identifier) ;) (if_statement "if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }" if (parenthesized_expression "(pbVar11 == &DAT_00000004)" ( (binary_expression "pbVar11 == &DAT_00000004" identifier == (pointer_expression "&DAT_00000004" & identifier)) )) (compound_statement "{\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }" { (expression_statement "pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);" (assignment_expression "pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34)" identifier = (cast_expression "(byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34)" (parenthesized_expression "(*(code *)PTR_base64_decode_atom_000801b4)" ( (pointer_expression "*(code *)PTR_base64_decode_atom_000801b4" * (cast_expression "(code *)PTR_base64_decode_atom_000801b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(abStack_30,&uStack_34)" ( identifier , (pointer_expression "&uStack_34" & identifier) ))))) ;) (expression_statement "pbVar21 = pbVar13 + (int)pbVar9;" (assignment_expression "pbVar21 = pbVar13 + (int)pbVar9" identifier = (binary_expression "pbVar13 + (int)pbVar9" identifier + (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }" if (parenthesized_expression "(local_50 < (int)pbVar21)" ( (binary_expression "local_50 < (int)pbVar21" identifier < (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }" { (expression_statement "iVar3 = (int)pbVar21 * 5;" (assignment_expression "iVar3 = (int)pbVar21 * 5" identifier = (binary_expression "(int)pbVar21 * 5" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar3 = iVar3 + 3;\n          }" { (expression_statement "iVar3 = iVar3 + 3;" (assignment_expression "iVar3 = iVar3 + 3" identifier = (binary_expression "iVar3 + 3" identifier + number_literal)) ;) })) (expression_statement "local_50 = (iVar3 >> 2) + 0x400;" (assignment_expression "local_50 = (iVar3 >> 2) + 0x400" identifier = (binary_expression "(iVar3 >> 2) + 0x400" (parenthesized_expression "(iVar3 >> 2)" ( (binary_expression "iVar3 >> 2" identifier >> number_literal) )) + number_literal)) ;) (expression_statement "pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);" (assignment_expression "pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1)" identifier = (cast_expression "(byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1)" (parenthesized_expression "(*(code *)PTR_saferealloc_00080100)" ( (pointer_expression "*(code *)PTR_saferealloc_00080100" * (cast_expression "(code *)PTR_saferealloc_00080100" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar23,local_50,1)" ( identifier , identifier , number_literal ))))) ;) })) (expression_statement "puVar12 = &uStack_34;" (assignment_expression "puVar12 = &uStack_34" identifier = (pointer_expression "&uStack_34" & identifier)) ;) (expression_statement "(*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);" (call_expression "(*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9)" (parenthesized_expression "(*(code *)PTR_memcpy_00080908)" ( (pointer_expression "*(code *)PTR_memcpy_00080908" * (cast_expression "(code *)PTR_memcpy_00080908" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar23 + (int)pbVar9)" ( (binary_expression "pbVar23 + (int)pbVar9" identifier + (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar9 = pbVar21;" (assignment_expression "pbVar9 = pbVar21" identifier = identifier) ;) })) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "pbVar21 = pbVar11;" (assignment_expression "pbVar21 = pbVar11" identifier = identifier) ;) (expression_statement "bVar8 = *pbVar18;" (assignment_expression "bVar8 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) })) (expression_statement "(*(code *)PTR_safefree_000800c4)(pbVar2);" (call_expression "(*(code *)PTR_safefree_000800c4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" ( (pointer_expression "*(code *)PTR_safefree_000800c4" * (cast_expression "(code *)PTR_safefree_000800c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier ))) ;) (expression_statement "uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);" (assignment_expression "uVar1 = (*(code *)PTR_fgetline_00080444)(param_1)" identifier = (call_expression "(*(code *)PTR_fgetline_00080444)(param_1)" (parenthesized_expression "(*(code *)PTR_fgetline_00080444)" ( (pointer_expression "*(code *)PTR_fgetline_00080444" * (cast_expression "(code *)PTR_fgetline_00080444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);" (assignment_expression "pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1)" identifier = (cast_expression "(byte *)(*(code *)PTR_chomp_00080448)(uVar1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_chomp_00080448)(uVar1)" (parenthesized_expression "(*(code *)PTR_chomp_00080448)" ( (pointer_expression "*(code *)PTR_chomp_00080448" * (cast_expression "(code *)PTR_chomp_00080448" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar1)" ( identifier ))))) ;) (if_statement "if (pbVar2 == (byte *)0x0) {\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }" if (parenthesized_expression "(pbVar2 == (byte *)0x0)" ( (binary_expression "pbVar2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }" { (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4b30;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4b30" identifier = (binary_expression "PTR_DAT_00080134 + -0x4b30" identifier + number_literal)) ;) (goto_statement "goto LAB_000477c4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00047a78:\n  puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4);" statement_identifier : (expression_statement "puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4);" (assignment_expression "puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4)" identifier = (cast_expression "(undefined4 *)(PTR_DAT_00080134 + -0x4ab4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00080134 + -0x4ab4)" ( (binary_expression "PTR_DAT_00080134 + -0x4ab4" identifier + number_literal) )))) ;)) (expression_statement "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2)" identifier = (call_expression "(*(code *)PTR_strcmp_000808cc)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strcmp_000808cc)" ( (pointer_expression "*(code *)PTR_strcmp_000808cc" * (cast_expression "(code *)PTR_strcmp_000808cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    pbVar2 = (byte *)0x0;\n    if ((int)pbVar9 < 4) {\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }\n    else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }\n  }\n  else {\n    puVar15 = PTR_DAT_00080134 + -0x4b30;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    pbVar2 = (byte *)0x0;\n    if ((int)pbVar9 < 4) {\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }\n    else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }\n  }" { (expression_statement "(*(code *)PTR_safefree_000800c4)(pbVar2);" (call_expression "(*(code *)PTR_safefree_000800c4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" ( (pointer_expression "*(code *)PTR_safefree_000800c4" * (cast_expression "(code *)PTR_safefree_000800c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier ))) ;) (expression_statement "pbVar2 = (byte *)0x0;" (assignment_expression "pbVar2 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((int)pbVar9 < 4) {\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }\n    else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }" if (parenthesized_expression "((int)pbVar9 < 4)" ( (binary_expression "(int)pbVar9 < 4" (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }" { (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4b5c;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4b5c" identifier = (binary_expression "PTR_DAT_00080134 + -0x4b5c" identifier + number_literal)) ;) }) (else_clause "else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }" else (compound_statement "{\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }" { (expression_statement "puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);" (assignment_expression "puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8)" identifier = (cast_expression "(undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8)" (parenthesized_expression "(*(code *)PTR_toint_00080198)" ( (pointer_expression "*(code *)PTR_toint_00080198" * (cast_expression "(code *)PTR_toint_00080198" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8)" ( (binary_expression "(uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8" (binary_expression "(uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3]" (binary_expression "(uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10" (binary_expression "(uint)*pbVar23 << 0x18" (binary_expression "(uint)*pbVar23" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal) | (binary_expression "(uint)pbVar23[1] << 0x10" (cast_expression "(uint)pbVar23[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar23[1]" identifier [ number_literal ])) << number_literal)) | (cast_expression "(uint)pbVar23[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar23[3]" identifier [ number_literal ]))) | (binary_expression "(uint)pbVar23[2] << 8" (cast_expression "(uint)pbVar23[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar23[2]" identifier [ number_literal ])) << number_literal)) ))))) ;) (if_statement "if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }" if (parenthesized_expression "((int)puVar20 < 0)" ( (binary_expression "(int)puVar20 < 0" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }" { (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4bec;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4bec" identifier = (binary_expression "PTR_DAT_00080134 + -0x4bec" identifier + number_literal)) ;) }) (else_clause "else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }" else (compound_statement "{\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }" { (if_statement "if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }" if (parenthesized_expression "((int)puVar20 < (int)(pbVar9 + -3))" ( (binary_expression "(int)puVar20 < (int)(pbVar9 + -3)" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(pbVar9 + -3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar9 + -3)" ( (binary_expression "pbVar9 + -3" identifier + number_literal) )))) )) (compound_statement "{\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }" { (expression_statement "pbVar13 = pbVar23 + 4;" (assignment_expression "pbVar13 = pbVar23 + 4" identifier = (binary_expression "pbVar23 + 4" identifier + number_literal)) ;) (if_statement "if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }" if (parenthesized_expression "(param_2 != (undefined4 *)0x0)" ( (binary_expression "param_2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }" { (expression_statement "uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);" (assignment_expression "uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50)" identifier = (call_expression "(*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50)" (parenthesized_expression "(*(code *)PTR_dupprintf_000800b8)" ( (pointer_expression "*(code *)PTR_dupprintf_000800b8" * (cast_expression "(code *)PTR_dupprintf_000800b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_000800a8 + 0x4a50)" ( (binary_expression "PTR_LAB_000800a8 + 0x4a50" identifier + number_literal) )))) ;) (expression_statement "*param_2 = uVar1;" (assignment_expression "*param_2 = uVar1" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "puVar12 = puVar20;" (assignment_expression "puVar12 = puVar20" identifier = identifier) ;) })) (if_statement "if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }" if (parenthesized_expression "(param_3 != (byte *)0x0)" ( (binary_expression "param_3 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(byte **)param_3 = pbVar9;\n          }" { (expression_statement "*(byte **)param_3 = pbVar9;" (assignment_expression "*(byte **)param_3 = pbVar9" (pointer_expression "*(byte **)param_3" * (cast_expression "(byte **)param_3" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) })) (if_statement "if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }" if (parenthesized_expression "(param_4 == (undefined4 *)0x0)" ( (binary_expression "param_4 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }" { (expression_statement "(*(code *)PTR_safefree_000800c4)(local_58);" (call_expression "(*(code *)PTR_safefree_000800c4)(local_58)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" ( (pointer_expression "*(code *)PTR_safefree_000800c4" * (cast_expression "(code *)PTR_safefree_000800c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_58)" ( identifier ))) ;) }) (else_clause "else {\n            *param_4 = local_58;\n          }" else (compound_statement "{\n            *param_4 = local_58;\n          }" { (expression_statement "*param_4 = local_58;" (assignment_expression "*param_4 = local_58" (pointer_expression "*param_4" * identifier) = identifier) ;) }))) (goto_statement "goto LAB_00047814;" goto statement_identifier ;) })) (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4bec;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4bec" identifier = (binary_expression "PTR_DAT_00080134 + -0x4bec" identifier + number_literal)) ;) }))) }))) }) (else_clause "else {\n    puVar15 = PTR_DAT_00080134 + -0x4b30;\n  }" else (compound_statement "{\n    puVar15 = PTR_DAT_00080134 + -0x4b30;\n  }" { (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4b30;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4b30" identifier = (binary_expression "PTR_DAT_00080134 + -0x4b30" identifier + number_literal)) ;) }))) (labeled_statement "LAB_000477c4:\n  (*(code *)PTR_safefree_000800c4)(pbVar2);" statement_identifier : (expression_statement "(*(code *)PTR_safefree_000800c4)(pbVar2);" (call_expression "(*(code *)PTR_safefree_000800c4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" ( (pointer_expression "*(code *)PTR_safefree_000800c4" * (cast_expression "(code *)PTR_safefree_000800c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier ))) ;)) (expression_statement "(*(code *)PTR_safefree_000800c4)(local_58);" (call_expression "(*(code *)PTR_safefree_000800c4)(local_58)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" ( (pointer_expression "*(code *)PTR_safefree_000800c4" * (cast_expression "(code *)PTR_safefree_000800c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_safefree_000800c4)(pbVar23);" (call_expression "(*(code *)PTR_safefree_000800c4)(pbVar23)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" ( (pointer_expression "*(code *)PTR_safefree_000800c4" * (cast_expression "(code *)PTR_safefree_000800c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar23)" ( identifier ))) ;) (if_statement "if (param_5 == (undefined4 *)0x0) {\n    pbVar23 = (byte *)0x0;\n  }\n  else {\n    *param_5 = puVar15;\n    pbVar23 = (byte *)0x0;\n  }" if (parenthesized_expression "(param_5 == (undefined4 *)0x0)" ( (binary_expression "param_5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pbVar23 = (byte *)0x0;\n  }" { (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    *param_5 = puVar15;\n    pbVar23 = (byte *)0x0;\n  }" else (compound_statement "{\n    *param_5 = puVar15;\n    pbVar23 = (byte *)0x0;\n  }" { (expression_statement "*param_5 = puVar15;" (assignment_expression "*param_5 = puVar15" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_00047814:\n  if (local_2c == *(int *)PTR___stack_chk_guard_00080958) {\n    return pbVar23;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)PTR___stack_chk_guard_00080958) {\n    return pbVar23;\n  }" if (parenthesized_expression "(local_2c == *(int *)PTR___stack_chk_guard_00080958)" ( (binary_expression "local_2c == *(int *)PTR___stack_chk_guard_00080958" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_00080958" * (cast_expression "(int *)PTR___stack_chk_guard_00080958" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pbVar23;\n  }" { (return_statement "return pbVar23;" return identifier ;) }))) (expression_statement "puVar15 = PTR___stack_chk_fail_00080814;" (assignment_expression "puVar15 = PTR___stack_chk_fail_00080814" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00080814)();" (call_expression "(*(code *)PTR___stack_chk_fail_00080814)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00080814)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00080814" * (cast_expression "(code *)PTR___stack_chk_fail_00080814" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar1 = (**(code **)(puVar15 + 0x38728))();" (assignment_expression "uVar1 = (**(code **)(puVar15 + 0x38728))()" identifier = (call_expression "(**(code **)(puVar15 + 0x38728))()" (parenthesized_expression "(**(code **)(puVar15 + 0x38728))" ( (pointer_expression "**(code **)(puVar15 + 0x38728)" * (pointer_expression "*(code **)(puVar15 + 0x38728)" * (cast_expression "(code **)(puVar15 + 0x38728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x38728)" ( (binary_expression "puVar15 + 0x38728" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (**(code **)(puVar15 + 0x3872c))(uVar1);" (assignment_expression "uVar1 = (**(code **)(puVar15 + 0x3872c))(uVar1)" identifier = (call_expression "(**(code **)(puVar15 + 0x3872c))(uVar1)" (parenthesized_expression "(**(code **)(puVar15 + 0x3872c))" ( (pointer_expression "**(code **)(puVar15 + 0x3872c)" * (pointer_expression "*(code **)(puVar15 + 0x3872c)" * (cast_expression "(code **)(puVar15 + 0x3872c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x3872c)" ( (binary_expression "puVar15 + 0x3872c" identifier + number_literal) ))))) )) (argument_list "(uVar1)" ( identifier )))) ;) (expression_statement "puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20);" (assignment_expression "puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20)" identifier = (cast_expression "(undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar15 + 0x38b40))(uVar1,0x20)" (parenthesized_expression "(**(code **)(puVar15 + 0x38b40))" ( (pointer_expression "**(code **)(puVar15 + 0x38b40)" * (pointer_expression "*(code **)(puVar15 + 0x38b40)" * (cast_expression "(code **)(puVar15 + 0x38b40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x38b40)" ( (binary_expression "puVar15 + 0x38b40" identifier + number_literal) ))))) )) (argument_list "(uVar1,0x20)" ( identifier , number_literal ))))) ;) (if_statement "if (puVar4 == (undefined1 *)0x0) {\n    iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;\n    pbVar2 = (byte *)0x0;\n    puVar4 = (undefined1 *)0x0;\n  }\n  else {\n    pcVar16 = puVar4 + 1;\n    *puVar4 = 0;\n    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);\n    if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }\n    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);\n    iVar3 = (uVar5 >> 2) * 3;\n    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);\n    iVar17 = 0;\n    while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }\n    if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }\n  }" if (parenthesized_expression "(puVar4 == (undefined1 *)0x0)" ( (binary_expression "puVar4 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;\n    pbVar2 = (byte *)0x0;\n    puVar4 = (undefined1 *)0x0;\n  }" { (expression_statement "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;" (assignment_expression "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20" identifier = (binary_expression "*(int *)(puVar15 + 0x38418) + -0x4a20" (pointer_expression "*(int *)(puVar15 + 0x38418)" * (cast_expression "(int *)(puVar15 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38418)" ( (binary_expression "puVar15 + 0x38418" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pbVar2 = (byte *)0x0;" (assignment_expression "pbVar2 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar4 = (undefined1 *)0x0;" (assignment_expression "puVar4 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pcVar16 = puVar4 + 1;\n    *puVar4 = 0;\n    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);\n    if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }\n    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);\n    iVar3 = (uVar5 >> 2) * 3;\n    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);\n    iVar17 = 0;\n    while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }\n    if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }\n  }" else (compound_statement "{\n    pcVar16 = puVar4 + 1;\n    *puVar4 = 0;\n    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);\n    if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }\n    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);\n    iVar3 = (uVar5 >> 2) * 3;\n    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);\n    iVar17 = 0;\n    while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }\n    if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }\n  }" { (expression_statement "pcVar16 = puVar4 + 1;" (assignment_expression "pcVar16 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);" (assignment_expression "puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20)" identifier = (cast_expression "(undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20)" (parenthesized_expression "(**(code **)(puVar15 + 0x38b40))" ( (pointer_expression "**(code **)(puVar15 + 0x38b40)" * (pointer_expression "*(code **)(puVar15 + 0x38b40)" * (cast_expression "(code **)(puVar15 + 0x38b40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x38b40)" ( (binary_expression "puVar15 + 0x38b40" identifier + number_literal) ))))) )) (argument_list "(pcVar16,0x20)" ( identifier , number_literal ))))) ;) (if_statement "if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }" if (parenthesized_expression "(puVar4 != (undefined1 *)0x0)" ( (binary_expression "puVar4 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }" { (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);" (assignment_expression "puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1)" identifier = (cast_expression "(undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar15 + 0x383e0))(puVar4 + 1)" (parenthesized_expression "(**(code **)(puVar15 + 0x383e0))" ( (pointer_expression "**(code **)(puVar15 + 0x383e0)" * (pointer_expression "*(code **)(puVar15 + 0x383e0)" * (cast_expression "(code **)(puVar15 + 0x383e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x383e0)" ( (binary_expression "puVar15 + 0x383e0" identifier + number_literal) ))))) )) (argument_list "(puVar4 + 1)" ( (binary_expression "puVar4 + 1" identifier + number_literal) ))))) ;) })) (expression_statement "uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);" (assignment_expression "uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16)" identifier = (call_expression "(**(code **)(puVar15 + 0x38bdc))(pcVar16)" (parenthesized_expression "(**(code **)(puVar15 + 0x38bdc))" ( (pointer_expression "**(code **)(puVar15 + 0x38bdc)" * (pointer_expression "*(code **)(puVar15 + 0x38bdc)" * (cast_expression "(code **)(puVar15 + 0x38bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x38bdc)" ( (binary_expression "puVar15 + 0x38bdc" identifier + number_literal) ))))) )) (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "iVar3 = (uVar5 >> 2) * 3;" (assignment_expression "iVar3 = (uVar5 >> 2) * 3" identifier = (binary_expression "(uVar5 >> 2) * 3" (parenthesized_expression "(uVar5 >> 2)" ( (binary_expression "uVar5 >> 2" identifier >> number_literal) )) * number_literal)) ;) (expression_statement "pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);" (assignment_expression "pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1)" identifier = (cast_expression "(byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar15 + 0x383b8))(iVar3,1)" (parenthesized_expression "(**(code **)(puVar15 + 0x383b8))" ( (pointer_expression "**(code **)(puVar15 + 0x383b8)" * (pointer_expression "*(code **)(puVar15 + 0x383b8)" * (cast_expression "(code **)(puVar15 + 0x383b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x383b8)" ( (binary_expression "puVar15 + 0x383b8" identifier + number_literal) ))))) )) (argument_list "(iVar3,1)" ( identifier , number_literal ))))) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }" { (expression_statement "iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);" (assignment_expression "iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4)" identifier = (call_expression "(**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4)" (parenthesized_expression "(**(code **)(puVar15 + 0x38ba0))" ( (pointer_expression "**(code **)(puVar15 + 0x38ba0)" * (pointer_expression "*(code **)(puVar15 + 0x38ba0)" * (cast_expression "(code **)(puVar15 + 0x38ba0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x38ba0)" ( (binary_expression "puVar15 + 0x38ba0" identifier + number_literal) ))))) )) (argument_list "(pcVar16,0,4)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar6 != 0) break;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }" if (parenthesized_expression "(iVar3 <= iVar17 + 2)" ( (binary_expression "iVar3 <= iVar17 + 2" identifier <= (binary_expression "iVar17 + 2" identifier + number_literal)) )) (compound_statement "{\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }" { (expression_statement "pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);" (assignment_expression "pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0)" identifier = (cast_expression "(byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0)" (parenthesized_expression "(**(code **)(puVar15 + 0x389cc))" ( (pointer_expression "**(code **)(puVar15 + 0x389cc)" * (pointer_expression "*(code **)(puVar15 + 0x389cc)" * (cast_expression "(code **)(puVar15 + 0x389cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x389cc)" ( (binary_expression "puVar15 + 0x389cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0)" ( (binary_expression "*(int *)(puVar15 + 0x38418) + -0x49f8" (pointer_expression "*(int *)(puVar15 + 0x38418)" * (cast_expression "(int *)(puVar15 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38418)" ( (binary_expression "puVar15 + 0x38418" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar15 + 0x38418) + -0x4e7c" (pointer_expression "*(int *)(puVar15 + 0x38418)" * (cast_expression "(int *)(puVar15 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38418)" ( (binary_expression "puVar15 + 0x38418" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar15 + 0x38418) + -0x46b0" (pointer_expression "*(int *)(puVar15 + 0x38418)" * (cast_expression "(int *)(puVar15 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38418)" ( (binary_expression "puVar15 + 0x38418" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return pbVar2;" return identifier ;) })) (expression_statement "iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);" (assignment_expression "iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17)" identifier = (call_expression "(**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17)" (parenthesized_expression "(**(code **)(puVar15 + 0x38498))" ( (pointer_expression "**(code **)(puVar15 + 0x38498)" * (pointer_expression "*(code **)(puVar15 + 0x38498)" * (cast_expression "(code **)(puVar15 + 0x38498)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x38498)" ( (binary_expression "puVar15 + 0x38498" identifier + number_literal) ))))) )) (argument_list "(pcVar16,pbVar2 + iVar17)" ( identifier , (binary_expression "pbVar2 + iVar17" identifier + identifier) )))) ;) (expression_statement "iVar17 = iVar17 + iVar6;" (assignment_expression "iVar17 = iVar17 + iVar6" identifier = (binary_expression "iVar17 + iVar6" identifier + identifier)) ;) (expression_statement "pcVar16 = pcVar16 + 4;" (assignment_expression "pcVar16 = pcVar16 + 4" identifier = (binary_expression "pcVar16 + 4" identifier + number_literal)) ;) })) (if_statement "if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }" if (parenthesized_expression "(*pcVar16 == '\0')" ( (binary_expression "*pcVar16 == '\0'" (pointer_expression "*pcVar16" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }" { (expression_statement "uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);" (assignment_expression "uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1)" identifier = (call_expression "(**(code **)(puVar15 + 0x38bdc))(uVar1)" (parenthesized_expression "(**(code **)(puVar15 + 0x38bdc))" ( (pointer_expression "**(code **)(puVar15 + 0x38bdc)" * (pointer_expression "*(code **)(puVar15 + 0x38bdc)" * (cast_expression "(code **)(puVar15 + 0x38bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x38bdc)" ( (binary_expression "puVar15 + 0x38bdc" identifier + number_literal) ))))) )) (argument_list "(uVar1)" ( identifier )))) ;) (if_statement "if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }" if (parenthesized_expression "((int)(uVar5 + 3) < iVar17)" ( (binary_expression "(int)(uVar5 + 3) < iVar17" (cast_expression "(int)(uVar5 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar5 + 3)" ( (binary_expression "uVar5 + 3" identifier + number_literal) ))) < identifier) )) (compound_statement "{\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }" { (if_statement "if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }" if (parenthesized_expression "(uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8))" ( (binary_expression "uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)" identifier == (parenthesized_expression "((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)" ( (binary_expression "(uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8" (binary_expression "(uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3]" (binary_expression "(uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10" (binary_expression "(uint)*pbVar2 << 0x18" (binary_expression "(uint)*pbVar2" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal) | (binary_expression "(uint)pbVar2[1] << 0x10" (cast_expression "(uint)pbVar2[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar2[1]" identifier [ number_literal ])) << number_literal)) | (cast_expression "(uint)pbVar2[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar2[3]" identifier [ number_literal ]))) | (binary_expression "(uint)pbVar2[2] << 8" (cast_expression "(uint)pbVar2[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar2[2]" identifier [ number_literal ])) << number_literal)) ))) )) (compound_statement "{\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }" { (expression_statement "iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);" (assignment_expression "iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5)" identifier = (call_expression "(**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5)" (parenthesized_expression "(**(code **)(puVar15 + 0x38b88))" ( (pointer_expression "**(code **)(puVar15 + 0x38b88)" * (pointer_expression "*(code **)(puVar15 + 0x38b88)" * (cast_expression "(code **)(puVar15 + 0x38b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x38b88)" ( (binary_expression "puVar15 + 0x38b88" identifier + number_literal) ))))) )) (argument_list "(pbVar2 + 4,uVar1,uVar5)" ( (binary_expression "pbVar2 + 4" identifier + number_literal) , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }" { (if_statement "if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }" if (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" ( (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }" { (expression_statement "uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);" (assignment_expression "uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1)" identifier = (call_expression "(**(code **)(puVar15 + 0x383e0))(uVar1)" (parenthesized_expression "(**(code **)(puVar15 + 0x383e0))" ( (pointer_expression "**(code **)(puVar15 + 0x383e0)" * (pointer_expression "*(code **)(puVar15 + 0x383e0)" * (cast_expression "(code **)(puVar15 + 0x383e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x383e0)" ( (binary_expression "puVar15 + 0x383e0" identifier + number_literal) ))))) )) (argument_list "(uVar1)" ( identifier )))) ;) (expression_statement "*puVar12 = uVar7;" (assignment_expression "*puVar12 = uVar7" (pointer_expression "*puVar12" * identifier) = identifier) ;) })) (if_statement "if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }" if (parenthesized_expression "(pbVar13 != (byte *)0x0)" ( (binary_expression "pbVar13 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(int *)pbVar13 = iVar17;\n            }" { (expression_statement "*(int *)pbVar13 = iVar17;" (assignment_expression "*(int *)pbVar13 = iVar17" (pointer_expression "*(int *)pbVar13" * (cast_expression "(int *)pbVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) (if_statement "if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }" if (parenthesized_expression "(puVar14 == (undefined4 *)0x0)" ( (binary_expression "puVar14 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }" { (expression_statement "(**(code **)(puVar15 + 0x383a8))(puVar4);" (call_expression "(**(code **)(puVar15 + 0x383a8))(puVar4)" (parenthesized_expression "(**(code **)(puVar15 + 0x383a8))" ( (pointer_expression "**(code **)(puVar15 + 0x383a8)" * (pointer_expression "*(code **)(puVar15 + 0x383a8)" * (cast_expression "(code **)(puVar15 + 0x383a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x383a8)" ( (binary_expression "puVar15 + 0x383a8" identifier + number_literal) ))))) )) (argument_list "(puVar4)" ( identifier ))) ;) }) (else_clause "else {\n              *puVar14 = puVar4;\n            }" else (compound_statement "{\n              *puVar14 = puVar4;\n            }" { (expression_statement "*puVar14 = puVar4;" (assignment_expression "*puVar14 = puVar4" (pointer_expression "*puVar14" * identifier) = identifier) ;) }))) (expression_statement "(**(code **)(puVar15 + 0x383a8))(uVar1);" (call_expression "(**(code **)(puVar15 + 0x383a8))(uVar1)" (parenthesized_expression "(**(code **)(puVar15 + 0x383a8))" ( (pointer_expression "**(code **)(puVar15 + 0x383a8)" * (pointer_expression "*(code **)(puVar15 + 0x383a8)" * (cast_expression "(code **)(puVar15 + 0x383a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x383a8)" ( (binary_expression "puVar15 + 0x383a8" identifier + number_literal) ))))) )) (argument_list "(uVar1)" ( identifier ))) ;) (return_statement "return pbVar2;" return identifier ;) })) (expression_statement "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;" (assignment_expression "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94" identifier = (binary_expression "*(int *)(puVar15 + 0x38418) + -0x4a94" (pointer_expression "*(int *)(puVar15 + 0x38418)" * (cast_expression "(int *)(puVar15 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38418)" ( (binary_expression "puVar15 + 0x38418" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }" else (compound_statement "{\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }" { (expression_statement "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;" (assignment_expression "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94" identifier = (binary_expression "*(int *)(puVar15 + 0x38418) + -0x4a94" (pointer_expression "*(int *)(puVar15 + 0x38418)" * (cast_expression "(int *)(puVar15 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38418)" ( (binary_expression "puVar15 + 0x38418" identifier + number_literal) )))) + number_literal)) ;) }))) }) (else_clause "else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }" else (compound_statement "{\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }" { (expression_statement "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;" (assignment_expression "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94" identifier = (binary_expression "*(int *)(puVar15 + 0x38418) + -0x4a94" (pointer_expression "*(int *)(puVar15 + 0x38418)" * (cast_expression "(int *)(puVar15 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38418)" ( (binary_expression "puVar15 + 0x38418" identifier + number_literal) )))) + number_literal)) ;) }))) }) (else_clause "else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }" else (compound_statement "{\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }" { (expression_statement "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;" (assignment_expression "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c" identifier = (binary_expression "*(int *)(puVar15 + 0x38418) + -0x4a5c" (pointer_expression "*(int *)(puVar15 + 0x38418)" * (cast_expression "(int *)(puVar15 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38418)" ( (binary_expression "puVar15 + 0x38418" identifier + number_literal) )))) + number_literal)) ;) }))) }))) (expression_statement "(**(code **)(puVar15 + 0x383a8))(uVar1);" (call_expression "(**(code **)(puVar15 + 0x383a8))(uVar1)" (parenthesized_expression "(**(code **)(puVar15 + 0x383a8))" ( (pointer_expression "**(code **)(puVar15 + 0x383a8)" * (pointer_expression "*(code **)(puVar15 + 0x383a8)" * (cast_expression "(code **)(puVar15 + 0x383a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x383a8)" ( (binary_expression "puVar15 + 0x383a8" identifier + number_literal) ))))) )) (argument_list "(uVar1)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar15 + 0x383a8))(puVar4);" (call_expression "(**(code **)(puVar15 + 0x383a8))(puVar4)" (parenthesized_expression "(**(code **)(puVar15 + 0x383a8))" ( (pointer_expression "**(code **)(puVar15 + 0x383a8)" * (pointer_expression "*(code **)(puVar15 + 0x383a8)" * (cast_expression "(code **)(puVar15 + 0x383a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x383a8)" ( (binary_expression "puVar15 + 0x383a8" identifier + number_literal) ))))) )) (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar15 + 0x383a8))(pbVar2);" (call_expression "(**(code **)(puVar15 + 0x383a8))(pbVar2)" (parenthesized_expression "(**(code **)(puVar15 + 0x383a8))" ( (pointer_expression "**(code **)(puVar15 + 0x383a8)" * (pointer_expression "*(code **)(puVar15 + 0x383a8)" * (cast_expression "(code **)(puVar15 + 0x383a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x383a8)" ( (binary_expression "puVar15 + 0x383a8" identifier + number_literal) ))))) )) (argument_list "(pbVar2)" ( identifier ))) ;) (expression_statement "__gp_1 = iVar3;" (assignment_expression "__gp_1 = iVar3" identifier = identifier) ;) (return_statement "return (byte *)0x0;" return (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit "uchar * rfc4716_loadpub(FILE *fp,char **algorithm,int *pub_blob_len,char **commentptr,\n                       char **errorstr)\n\n{\n  byte *pbVar1;\n  int iVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  int iVar5;\n  char *pcVar6;\n  char cVar11;\n  int iVar7;\n  undefined1 *puVar8;\n  uint uVar9;\n  int iVar10;\n  char *pcVar12;\n  char *pcVar13;\n  byte *pbVar14;\n  char **ppcVar15;\n  byte *pbVar16;\n  char **ppcVar17;\n  char *pcVar18;\n  char **ppcVar19;\n  byte *pbVar20;\n  int iVar21;\n  byte *pbVar22;\n  int in_t9;\n  code *pcVar23;\n  int *piVar24;\n  byte *pbVar25;\n  char *pcStack_58;\n  int iStack_50;\n  uchar base64out [3];\n  char base64in [4];\n  \n  piVar24 = (int *)(in_t9 + 0x40970);\n  iVar2 = **(int **)(in_t9 + 0x39258);\n  ppcVar15 = algorithm;\n  pbVar16 = (byte *)pub_blob_len;\n  ppcVar17 = commentptr;\n  uVar3 = (**(code **)(in_t9 + 0x38d44))();\n  pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);\n  if (pcVar4 == (char *)0x0) {\n    pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8);\n    pbVar25 = (byte *)0x0;\n    pcStack_58 = (char *)0x0;\n  }\n  else {\n    ppcVar15 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ae4);\n    iVar5 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n    if (iVar5 == 0) {\n      (**(code **)(in_t9 + 0x389c4))(pcVar4);\n      pcStack_58 = (char *)0x0;\n      iVar5 = *(int *)(in_t9 + 0x38a34);\n      iVar10 = *(int *)(in_t9 + 0x38a34);\n      ppcVar19 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ac0);\n      iVar21 = *(int *)(in_t9 + 0x38a34);\n      while( true ) {\n        uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);\n        pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);\n        if (pcVar4 == (char *)0x0) break;\n        puVar8 = (undefined1 *)(**(code **)(in_t9 + 0x3926c))(pcVar4,iVar5 + -0x4ac4);\n        if (puVar8 == (undefined1 *)0x0) {\n          ppcVar15 = (char **)0x1;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x389d4))(0x1000);\n          pbVar1 = (byte *)0x0;\n          pbVar22 = pbVar1;\n          if (*pcVar4 == '-') {\n            ppcVar15 = *(char ***)(in_t9 + 0x38a34);\n            goto LAB_00047a78;\n          }\n          iStack_50 = 0x1000;\n          pbVar20 = pbVar1;\n          goto LAB_00047bb8;\n        }\n        *puVar8 = 0;\n        iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4,iVar10 + -0x4c58);\n        ppcVar15 = ppcVar19;\n        if (iVar7 == 0) {\n          pcVar18 = puVar8 + 2;\n          if (puVar8[2] == '\"') {\n            iVar7 = (**(code **)(in_t9 + 0x391f8))(pcVar18);\n            if (pcVar18[iVar7 + -1] == '\"') {\n              pcVar18[iVar7 + -1] = '\0';\n              pcVar18 = puVar8 + 3;\n            }\n          }\n          cVar11 = *pcVar18;\n          pcVar13 = pcVar4;\n          if (cVar11 != '\0') {\n            ppcVar15 = (char **)&DAT_0000005c;\n            pcVar12 = pcVar4;\n            do {\n              pcVar6 = pcVar18;\n              if ((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')) {\n                pcVar6 = pcVar18;\n              }\n              pcVar13 = pcVar12 + 1;\n              *pcVar12 = *pcVar6;\n              pcVar18 = pcVar6 + 1;\n              cVar11 = pcVar6[1];\n              pcVar12 = pcVar13;\n            } while (cVar11 != '\0');\n          }\n          *pcVar13 = '\0';\n          (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          pcStack_58 = (char *)(**(code **)(in_t9 + 0x389fc))(pcVar4);\n        }\n        else {\n          iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n          if (iVar7 != 0) {\n            pbVar16 = (byte *)0x2;\n            ppcVar15 = (char **)(iVar21 + -0x4ab8);\n            iVar7 = (**(code **)(in_t9 + 0x390e8))(pcVar4);\n            if (iVar7 != 0) {\n              pbVar25 = (byte *)0x0;\n              pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (**(code **)(in_t9 + 0x389c4))(pcVar4);\n      }\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b04);\n      pbVar25 = (byte *)0x0;\n    }\n    else {\n      pbVar25 = (byte *)0x0;\n      pcStack_58 = (char *)0x0;\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8);\n    }\n  }\n  goto LAB_000477c4;\n  while (ppcVar15 = *(char ***)(in_t9 + 0x38a34), *pcVar4 != '-') {\nLAB_00047bb8:\n    cVar11 = *pcVar4;\n    pcVar18 = pcVar4;\n    while (cVar11 != '\0') {\n      pbVar14 = pbVar20 + 1;\n      base64in[(int)pbVar20] = cVar11;\n      if (pbVar14 == (byte *)0x4) {\n        pbVar16 = (byte *)(**(code **)(in_t9 + 0x38ab4))(base64in,base64out);\n        pbVar20 = pbVar16 + (int)pbVar22;\n        if (iStack_50 < (int)pbVar20) {\n          iVar5 = (int)pbVar20 * 5;\n          if (iVar5 < 0) {\n            iVar5 = iVar5 + 3;\n          }\n          iStack_50 = (iVar5 >> 2) + 0x400;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x38a00))(pbVar25,iStack_50,1);\n        }\n        ppcVar15 = (char **)base64out;\n        (**(code **)(in_t9 + 0x39208))(pbVar25 + (int)pbVar22);\n        pbVar14 = pbVar1;\n        pbVar22 = pbVar20;\n      }\n      pcVar18 = pcVar18 + 1;\n      pbVar20 = pbVar14;\n      cVar11 = *pcVar18;\n    }\n    (**(code **)(in_t9 + 0x389c4))(pcVar4);\n    uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);\n    pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);\n    if (pcVar4 == (char *)0x0) {\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30);\n      goto LAB_000477c4;\n    }\n  }\nLAB_00047a78:\n  ppcVar15 = ppcVar15 + -0x12ad;\n  iVar5 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n  if (iVar5 == 0) {\n    (**(code **)(in_t9 + 0x389c4))(pcVar4);\n    pcVar4 = (char *)0x0;\n    if ((int)pbVar22 < 4) {\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b5c);\n    }\n    else {\n      ppcVar19 = (char **)(**(code **)(in_t9 + 0x38a98))\n                                    ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 |\n                                     (uint)pbVar25[3] | (uint)pbVar25[2] << 8);\n      if ((int)ppcVar19 < 0) {\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }\n      else {\n        if ((int)ppcVar19 < (int)(pbVar22 + -3)) {\n          pbVar16 = pbVar25 + 4;\n          if (algorithm != (char **)0x0) {\n            pcVar4 = (char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50);\n            *algorithm = pcVar4;\n            ppcVar15 = ppcVar19;\n          }\n          if (pub_blob_len != (int *)0x0) {\n            *pub_blob_len = (int)pbVar22;\n          }\n          if (commentptr == (char **)0x0) {\n            (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          }\n          else {\n            *commentptr = pcStack_58;\n          }\n          goto LAB_00047814;\n        }\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }\n    }\n  }\n  else {\n    pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30);\n  }\nLAB_000477c4:\n  (**(code **)(in_t9 + 0x389c4))(pcVar4);\n  (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n  (**(code **)(in_t9 + 0x389c4))(pbVar25);\n  if (errorstr == (char **)0x0) {\n    pbVar25 = (byte *)0x0;\n  }\n  else {\n    *errorstr = pcVar18;\n    pbVar25 = (byte *)0x0;\n  }\nLAB_00047814:\n  if (iVar2 == **(int **)(in_t9 + 0x39258)) {\n    return pbVar25;\n  }\n  pcVar23 = *(code **)(in_t9 + 0x39114);\n  (*pcVar23)();\n  uVar3 = (**(code **)(pcVar23 + 0x38728))();\n  uVar3 = (**(code **)(pcVar23 + 0x3872c))(uVar3);\n  puVar8 = (undefined1 *)(**(code **)(pcVar23 + 0x38b40))(uVar3,0x20);\n  if (puVar8 == (undefined1 *)0x0) {\n    iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a20;\n    pbVar25 = (byte *)0x0;\n    pcVar4 = (char *)0x0;\n  }\n  else {\n    pcVar18 = puVar8 + 1;\n    *puVar8 = 0;\n    pcVar4 = (char *)(**(code **)(pcVar23 + 0x38b40))(pcVar18,0x20);\n    if (pcVar4 != (char *)0x0) {\n      *pcVar4 = '\0';\n      pcVar4 = (char *)(**(code **)(pcVar23 + 0x383e0))(pcVar4 + 1);\n    }\n    uVar9 = (**(code **)(pcVar23 + 0x38bdc))(pcVar18);\n    iVar2 = (uVar9 >> 2) * 3;\n    pbVar25 = (byte *)(**(code **)(pcVar23 + 0x383b8))(iVar2,1);\n    iVar5 = 0;\n    while( true ) {\n      iVar10 = (**(code **)(pcVar23 + 0x38ba0))(pcVar18,0,4);\n      if (iVar10 != 0) break;\n      if (iVar2 <= iVar5 + 2) {\n        (**(code **)(pcVar23 + 0x389cc))\n                  (*(int *)(pcVar23 + 0x38418) + -0x49f8,*(int *)(pcVar23 + 0x38418) + -0x4e7c,0x441\n                   ,*(int *)(pcVar23 + 0x38418) + -0x46b0);\n        break;\n      }\n      iVar10 = (**(code **)(pcVar23 + 0x38498))(pcVar18,pbVar25 + iVar5);\n      iVar5 = iVar5 + iVar10;\n      pcVar18 = pcVar18 + 4;\n    }\n    if (*pcVar18 == '\0') {\n      uVar9 = (**(code **)(pcVar23 + 0x38bdc))(uVar3);\n      if ((int)(uVar9 + 3) < iVar5) {\n        if (uVar9 == ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 | (uint)pbVar25[3] |\n                     (uint)pbVar25[2] << 8)) {\n          iVar2 = (**(code **)(pcVar23 + 0x38b88))(pbVar25 + 4,uVar3,uVar9);\n          if (iVar2 == 0) {\n            if (ppcVar15 != (char **)0x0) {\n              pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3);\n              *ppcVar15 = pcVar18;\n            }\n            if (pbVar16 != (byte *)0x0) {\n              *(int *)pbVar16 = iVar5;\n            }\n            if (ppcVar17 == (char **)0x0) {\n              (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n            }\n            else {\n              *ppcVar17 = pcVar4;\n            }\n            (**(code **)(pcVar23 + 0x383a8))(uVar3);\n            return pbVar25;\n          }\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a5c;\n    }\n  }\n  (**(code **)(pcVar23 + 0x383a8))(uVar3);\n  (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n  (**(code **)(pcVar23 + 0x383a8))(pbVar25);\n  if (piVar24 != (int *)0x0) {\n    *piVar24 = iVar2;\n    piVar24 = (int *)0x0;\n  }\n  return (uchar *)piVar24;\n}\n\n" (function_definition "uchar * rfc4716_loadpub(FILE *fp,char **algorithm,int *pub_blob_len,char **commentptr,\n                       char **errorstr)\n\n{\n  byte *pbVar1;\n  int iVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  int iVar5;\n  char *pcVar6;\n  char cVar11;\n  int iVar7;\n  undefined1 *puVar8;\n  uint uVar9;\n  int iVar10;\n  char *pcVar12;\n  char *pcVar13;\n  byte *pbVar14;\n  char **ppcVar15;\n  byte *pbVar16;\n  char **ppcVar17;\n  char *pcVar18;\n  char **ppcVar19;\n  byte *pbVar20;\n  int iVar21;\n  byte *pbVar22;\n  int in_t9;\n  code *pcVar23;\n  int *piVar24;\n  byte *pbVar25;\n  char *pcStack_58;\n  int iStack_50;\n  uchar base64out [3];\n  char base64in [4];\n  \n  piVar24 = (int *)(in_t9 + 0x40970);\n  iVar2 = **(int **)(in_t9 + 0x39258);\n  ppcVar15 = algorithm;\n  pbVar16 = (byte *)pub_blob_len;\n  ppcVar17 = commentptr;\n  uVar3 = (**(code **)(in_t9 + 0x38d44))();\n  pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);\n  if (pcVar4 == (char *)0x0) {\n    pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8);\n    pbVar25 = (byte *)0x0;\n    pcStack_58 = (char *)0x0;\n  }\n  else {\n    ppcVar15 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ae4);\n    iVar5 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n    if (iVar5 == 0) {\n      (**(code **)(in_t9 + 0x389c4))(pcVar4);\n      pcStack_58 = (char *)0x0;\n      iVar5 = *(int *)(in_t9 + 0x38a34);\n      iVar10 = *(int *)(in_t9 + 0x38a34);\n      ppcVar19 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ac0);\n      iVar21 = *(int *)(in_t9 + 0x38a34);\n      while( true ) {\n        uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);\n        pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);\n        if (pcVar4 == (char *)0x0) break;\n        puVar8 = (undefined1 *)(**(code **)(in_t9 + 0x3926c))(pcVar4,iVar5 + -0x4ac4);\n        if (puVar8 == (undefined1 *)0x0) {\n          ppcVar15 = (char **)0x1;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x389d4))(0x1000);\n          pbVar1 = (byte *)0x0;\n          pbVar22 = pbVar1;\n          if (*pcVar4 == '-') {\n            ppcVar15 = *(char ***)(in_t9 + 0x38a34);\n            goto LAB_00047a78;\n          }\n          iStack_50 = 0x1000;\n          pbVar20 = pbVar1;\n          goto LAB_00047bb8;\n        }\n        *puVar8 = 0;\n        iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4,iVar10 + -0x4c58);\n        ppcVar15 = ppcVar19;\n        if (iVar7 == 0) {\n          pcVar18 = puVar8 + 2;\n          if (puVar8[2] == '\"') {\n            iVar7 = (**(code **)(in_t9 + 0x391f8))(pcVar18);\n            if (pcVar18[iVar7 + -1] == '\"') {\n              pcVar18[iVar7 + -1] = '\0';\n              pcVar18 = puVar8 + 3;\n            }\n          }\n          cVar11 = *pcVar18;\n          pcVar13 = pcVar4;\n          if (cVar11 != '\0') {\n            ppcVar15 = (char **)&DAT_0000005c;\n            pcVar12 = pcVar4;\n            do {\n              pcVar6 = pcVar18;\n              if ((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')) {\n                pcVar6 = pcVar18;\n              }\n              pcVar13 = pcVar12 + 1;\n              *pcVar12 = *pcVar6;\n              pcVar18 = pcVar6 + 1;\n              cVar11 = pcVar6[1];\n              pcVar12 = pcVar13;\n            } while (cVar11 != '\0');\n          }\n          *pcVar13 = '\0';\n          (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          pcStack_58 = (char *)(**(code **)(in_t9 + 0x389fc))(pcVar4);\n        }\n        else {\n          iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n          if (iVar7 != 0) {\n            pbVar16 = (byte *)0x2;\n            ppcVar15 = (char **)(iVar21 + -0x4ab8);\n            iVar7 = (**(code **)(in_t9 + 0x390e8))(pcVar4);\n            if (iVar7 != 0) {\n              pbVar25 = (byte *)0x0;\n              pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (**(code **)(in_t9 + 0x389c4))(pcVar4);\n      }\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b04);\n      pbVar25 = (byte *)0x0;\n    }\n    else {\n      pbVar25 = (byte *)0x0;\n      pcStack_58 = (char *)0x0;\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8);\n    }\n  }\n  goto LAB_000477c4;\n  while (ppcVar15 = *(char ***)(in_t9 + 0x38a34), *pcVar4 != '-') {\nLAB_00047bb8:\n    cVar11 = *pcVar4;\n    pcVar18 = pcVar4;\n    while (cVar11 != '\0') {\n      pbVar14 = pbVar20 + 1;\n      base64in[(int)pbVar20] = cVar11;\n      if (pbVar14 == (byte *)0x4) {\n        pbVar16 = (byte *)(**(code **)(in_t9 + 0x38ab4))(base64in,base64out);\n        pbVar20 = pbVar16 + (int)pbVar22;\n        if (iStack_50 < (int)pbVar20) {\n          iVar5 = (int)pbVar20 * 5;\n          if (iVar5 < 0) {\n            iVar5 = iVar5 + 3;\n          }\n          iStack_50 = (iVar5 >> 2) + 0x400;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x38a00))(pbVar25,iStack_50,1);\n        }\n        ppcVar15 = (char **)base64out;\n        (**(code **)(in_t9 + 0x39208))(pbVar25 + (int)pbVar22);\n        pbVar14 = pbVar1;\n        pbVar22 = pbVar20;\n      }\n      pcVar18 = pcVar18 + 1;\n      pbVar20 = pbVar14;\n      cVar11 = *pcVar18;\n    }\n    (**(code **)(in_t9 + 0x389c4))(pcVar4);\n    uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);\n    pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);\n    if (pcVar4 == (char *)0x0) {\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30);\n      goto LAB_000477c4;\n    }\n  }\nLAB_00047a78:\n  ppcVar15 = ppcVar15 + -0x12ad;\n  iVar5 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n  if (iVar5 == 0) {\n    (**(code **)(in_t9 + 0x389c4))(pcVar4);\n    pcVar4 = (char *)0x0;\n    if ((int)pbVar22 < 4) {\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b5c);\n    }\n    else {\n      ppcVar19 = (char **)(**(code **)(in_t9 + 0x38a98))\n                                    ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 |\n                                     (uint)pbVar25[3] | (uint)pbVar25[2] << 8);\n      if ((int)ppcVar19 < 0) {\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }\n      else {\n        if ((int)ppcVar19 < (int)(pbVar22 + -3)) {\n          pbVar16 = pbVar25 + 4;\n          if (algorithm != (char **)0x0) {\n            pcVar4 = (char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50);\n            *algorithm = pcVar4;\n            ppcVar15 = ppcVar19;\n          }\n          if (pub_blob_len != (int *)0x0) {\n            *pub_blob_len = (int)pbVar22;\n          }\n          if (commentptr == (char **)0x0) {\n            (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          }\n          else {\n            *commentptr = pcStack_58;\n          }\n          goto LAB_00047814;\n        }\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }\n    }\n  }\n  else {\n    pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30);\n  }\nLAB_000477c4:\n  (**(code **)(in_t9 + 0x389c4))(pcVar4);\n  (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n  (**(code **)(in_t9 + 0x389c4))(pbVar25);\n  if (errorstr == (char **)0x0) {\n    pbVar25 = (byte *)0x0;\n  }\n  else {\n    *errorstr = pcVar18;\n    pbVar25 = (byte *)0x0;\n  }\nLAB_00047814:\n  if (iVar2 == **(int **)(in_t9 + 0x39258)) {\n    return pbVar25;\n  }\n  pcVar23 = *(code **)(in_t9 + 0x39114);\n  (*pcVar23)();\n  uVar3 = (**(code **)(pcVar23 + 0x38728))();\n  uVar3 = (**(code **)(pcVar23 + 0x3872c))(uVar3);\n  puVar8 = (undefined1 *)(**(code **)(pcVar23 + 0x38b40))(uVar3,0x20);\n  if (puVar8 == (undefined1 *)0x0) {\n    iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a20;\n    pbVar25 = (byte *)0x0;\n    pcVar4 = (char *)0x0;\n  }\n  else {\n    pcVar18 = puVar8 + 1;\n    *puVar8 = 0;\n    pcVar4 = (char *)(**(code **)(pcVar23 + 0x38b40))(pcVar18,0x20);\n    if (pcVar4 != (char *)0x0) {\n      *pcVar4 = '\0';\n      pcVar4 = (char *)(**(code **)(pcVar23 + 0x383e0))(pcVar4 + 1);\n    }\n    uVar9 = (**(code **)(pcVar23 + 0x38bdc))(pcVar18);\n    iVar2 = (uVar9 >> 2) * 3;\n    pbVar25 = (byte *)(**(code **)(pcVar23 + 0x383b8))(iVar2,1);\n    iVar5 = 0;\n    while( true ) {\n      iVar10 = (**(code **)(pcVar23 + 0x38ba0))(pcVar18,0,4);\n      if (iVar10 != 0) break;\n      if (iVar2 <= iVar5 + 2) {\n        (**(code **)(pcVar23 + 0x389cc))\n                  (*(int *)(pcVar23 + 0x38418) + -0x49f8,*(int *)(pcVar23 + 0x38418) + -0x4e7c,0x441\n                   ,*(int *)(pcVar23 + 0x38418) + -0x46b0);\n        break;\n      }\n      iVar10 = (**(code **)(pcVar23 + 0x38498))(pcVar18,pbVar25 + iVar5);\n      iVar5 = iVar5 + iVar10;\n      pcVar18 = pcVar18 + 4;\n    }\n    if (*pcVar18 == '\0') {\n      uVar9 = (**(code **)(pcVar23 + 0x38bdc))(uVar3);\n      if ((int)(uVar9 + 3) < iVar5) {\n        if (uVar9 == ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 | (uint)pbVar25[3] |\n                     (uint)pbVar25[2] << 8)) {\n          iVar2 = (**(code **)(pcVar23 + 0x38b88))(pbVar25 + 4,uVar3,uVar9);\n          if (iVar2 == 0) {\n            if (ppcVar15 != (char **)0x0) {\n              pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3);\n              *ppcVar15 = pcVar18;\n            }\n            if (pbVar16 != (byte *)0x0) {\n              *(int *)pbVar16 = iVar5;\n            }\n            if (ppcVar17 == (char **)0x0) {\n              (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n            }\n            else {\n              *ppcVar17 = pcVar4;\n            }\n            (**(code **)(pcVar23 + 0x383a8))(uVar3);\n            return pbVar25;\n          }\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a5c;\n    }\n  }\n  (**(code **)(pcVar23 + 0x383a8))(uVar3);\n  (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n  (**(code **)(pcVar23 + 0x383a8))(pbVar25);\n  if (piVar24 != (int *)0x0) {\n    *piVar24 = iVar2;\n    piVar24 = (int *)0x0;\n  }\n  return (uchar *)piVar24;\n}" type_identifier (pointer_declarator "* rfc4716_loadpub(FILE *fp,char **algorithm,int *pub_blob_len,char **commentptr,\n                       char **errorstr)" * (function_declarator "rfc4716_loadpub(FILE *fp,char **algorithm,int *pub_blob_len,char **commentptr,\n                       char **errorstr)" identifier (parameter_list "(FILE *fp,char **algorithm,int *pub_blob_len,char **commentptr,\n                       char **errorstr)" ( (parameter_declaration "FILE *fp" type_identifier (pointer_declarator "*fp" * identifier)) , (parameter_declaration "char **algorithm" primitive_type (pointer_declarator "**algorithm" * (pointer_declarator "*algorithm" * identifier))) , (parameter_declaration "int *pub_blob_len" primitive_type (pointer_declarator "*pub_blob_len" * identifier)) , (parameter_declaration "char **commentptr" primitive_type (pointer_declarator "**commentptr" * (pointer_declarator "*commentptr" * identifier))) , (parameter_declaration "char **errorstr" primitive_type (pointer_declarator "**errorstr" * (pointer_declarator "*errorstr" * identifier))) )))) (compound_statement "{\n  byte *pbVar1;\n  int iVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  int iVar5;\n  char *pcVar6;\n  char cVar11;\n  int iVar7;\n  undefined1 *puVar8;\n  uint uVar9;\n  int iVar10;\n  char *pcVar12;\n  char *pcVar13;\n  byte *pbVar14;\n  char **ppcVar15;\n  byte *pbVar16;\n  char **ppcVar17;\n  char *pcVar18;\n  char **ppcVar19;\n  byte *pbVar20;\n  int iVar21;\n  byte *pbVar22;\n  int in_t9;\n  code *pcVar23;\n  int *piVar24;\n  byte *pbVar25;\n  char *pcStack_58;\n  int iStack_50;\n  uchar base64out [3];\n  char base64in [4];\n  \n  piVar24 = (int *)(in_t9 + 0x40970);\n  iVar2 = **(int **)(in_t9 + 0x39258);\n  ppcVar15 = algorithm;\n  pbVar16 = (byte *)pub_blob_len;\n  ppcVar17 = commentptr;\n  uVar3 = (**(code **)(in_t9 + 0x38d44))();\n  pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);\n  if (pcVar4 == (char *)0x0) {\n    pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8);\n    pbVar25 = (byte *)0x0;\n    pcStack_58 = (char *)0x0;\n  }\n  else {\n    ppcVar15 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ae4);\n    iVar5 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n    if (iVar5 == 0) {\n      (**(code **)(in_t9 + 0x389c4))(pcVar4);\n      pcStack_58 = (char *)0x0;\n      iVar5 = *(int *)(in_t9 + 0x38a34);\n      iVar10 = *(int *)(in_t9 + 0x38a34);\n      ppcVar19 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ac0);\n      iVar21 = *(int *)(in_t9 + 0x38a34);\n      while( true ) {\n        uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);\n        pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);\n        if (pcVar4 == (char *)0x0) break;\n        puVar8 = (undefined1 *)(**(code **)(in_t9 + 0x3926c))(pcVar4,iVar5 + -0x4ac4);\n        if (puVar8 == (undefined1 *)0x0) {\n          ppcVar15 = (char **)0x1;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x389d4))(0x1000);\n          pbVar1 = (byte *)0x0;\n          pbVar22 = pbVar1;\n          if (*pcVar4 == '-') {\n            ppcVar15 = *(char ***)(in_t9 + 0x38a34);\n            goto LAB_00047a78;\n          }\n          iStack_50 = 0x1000;\n          pbVar20 = pbVar1;\n          goto LAB_00047bb8;\n        }\n        *puVar8 = 0;\n        iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4,iVar10 + -0x4c58);\n        ppcVar15 = ppcVar19;\n        if (iVar7 == 0) {\n          pcVar18 = puVar8 + 2;\n          if (puVar8[2] == '\"') {\n            iVar7 = (**(code **)(in_t9 + 0x391f8))(pcVar18);\n            if (pcVar18[iVar7 + -1] == '\"') {\n              pcVar18[iVar7 + -1] = '\0';\n              pcVar18 = puVar8 + 3;\n            }\n          }\n          cVar11 = *pcVar18;\n          pcVar13 = pcVar4;\n          if (cVar11 != '\0') {\n            ppcVar15 = (char **)&DAT_0000005c;\n            pcVar12 = pcVar4;\n            do {\n              pcVar6 = pcVar18;\n              if ((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')) {\n                pcVar6 = pcVar18;\n              }\n              pcVar13 = pcVar12 + 1;\n              *pcVar12 = *pcVar6;\n              pcVar18 = pcVar6 + 1;\n              cVar11 = pcVar6[1];\n              pcVar12 = pcVar13;\n            } while (cVar11 != '\0');\n          }\n          *pcVar13 = '\0';\n          (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          pcStack_58 = (char *)(**(code **)(in_t9 + 0x389fc))(pcVar4);\n        }\n        else {\n          iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n          if (iVar7 != 0) {\n            pbVar16 = (byte *)0x2;\n            ppcVar15 = (char **)(iVar21 + -0x4ab8);\n            iVar7 = (**(code **)(in_t9 + 0x390e8))(pcVar4);\n            if (iVar7 != 0) {\n              pbVar25 = (byte *)0x0;\n              pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (**(code **)(in_t9 + 0x389c4))(pcVar4);\n      }\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b04);\n      pbVar25 = (byte *)0x0;\n    }\n    else {\n      pbVar25 = (byte *)0x0;\n      pcStack_58 = (char *)0x0;\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8);\n    }\n  }\n  goto LAB_000477c4;\n  while (ppcVar15 = *(char ***)(in_t9 + 0x38a34), *pcVar4 != '-') {\nLAB_00047bb8:\n    cVar11 = *pcVar4;\n    pcVar18 = pcVar4;\n    while (cVar11 != '\0') {\n      pbVar14 = pbVar20 + 1;\n      base64in[(int)pbVar20] = cVar11;\n      if (pbVar14 == (byte *)0x4) {\n        pbVar16 = (byte *)(**(code **)(in_t9 + 0x38ab4))(base64in,base64out);\n        pbVar20 = pbVar16 + (int)pbVar22;\n        if (iStack_50 < (int)pbVar20) {\n          iVar5 = (int)pbVar20 * 5;\n          if (iVar5 < 0) {\n            iVar5 = iVar5 + 3;\n          }\n          iStack_50 = (iVar5 >> 2) + 0x400;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x38a00))(pbVar25,iStack_50,1);\n        }\n        ppcVar15 = (char **)base64out;\n        (**(code **)(in_t9 + 0x39208))(pbVar25 + (int)pbVar22);\n        pbVar14 = pbVar1;\n        pbVar22 = pbVar20;\n      }\n      pcVar18 = pcVar18 + 1;\n      pbVar20 = pbVar14;\n      cVar11 = *pcVar18;\n    }\n    (**(code **)(in_t9 + 0x389c4))(pcVar4);\n    uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);\n    pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);\n    if (pcVar4 == (char *)0x0) {\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30);\n      goto LAB_000477c4;\n    }\n  }\nLAB_00047a78:\n  ppcVar15 = ppcVar15 + -0x12ad;\n  iVar5 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n  if (iVar5 == 0) {\n    (**(code **)(in_t9 + 0x389c4))(pcVar4);\n    pcVar4 = (char *)0x0;\n    if ((int)pbVar22 < 4) {\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b5c);\n    }\n    else {\n      ppcVar19 = (char **)(**(code **)(in_t9 + 0x38a98))\n                                    ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 |\n                                     (uint)pbVar25[3] | (uint)pbVar25[2] << 8);\n      if ((int)ppcVar19 < 0) {\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }\n      else {\n        if ((int)ppcVar19 < (int)(pbVar22 + -3)) {\n          pbVar16 = pbVar25 + 4;\n          if (algorithm != (char **)0x0) {\n            pcVar4 = (char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50);\n            *algorithm = pcVar4;\n            ppcVar15 = ppcVar19;\n          }\n          if (pub_blob_len != (int *)0x0) {\n            *pub_blob_len = (int)pbVar22;\n          }\n          if (commentptr == (char **)0x0) {\n            (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          }\n          else {\n            *commentptr = pcStack_58;\n          }\n          goto LAB_00047814;\n        }\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }\n    }\n  }\n  else {\n    pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30);\n  }\nLAB_000477c4:\n  (**(code **)(in_t9 + 0x389c4))(pcVar4);\n  (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n  (**(code **)(in_t9 + 0x389c4))(pbVar25);\n  if (errorstr == (char **)0x0) {\n    pbVar25 = (byte *)0x0;\n  }\n  else {\n    *errorstr = pcVar18;\n    pbVar25 = (byte *)0x0;\n  }\nLAB_00047814:\n  if (iVar2 == **(int **)(in_t9 + 0x39258)) {\n    return pbVar25;\n  }\n  pcVar23 = *(code **)(in_t9 + 0x39114);\n  (*pcVar23)();\n  uVar3 = (**(code **)(pcVar23 + 0x38728))();\n  uVar3 = (**(code **)(pcVar23 + 0x3872c))(uVar3);\n  puVar8 = (undefined1 *)(**(code **)(pcVar23 + 0x38b40))(uVar3,0x20);\n  if (puVar8 == (undefined1 *)0x0) {\n    iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a20;\n    pbVar25 = (byte *)0x0;\n    pcVar4 = (char *)0x0;\n  }\n  else {\n    pcVar18 = puVar8 + 1;\n    *puVar8 = 0;\n    pcVar4 = (char *)(**(code **)(pcVar23 + 0x38b40))(pcVar18,0x20);\n    if (pcVar4 != (char *)0x0) {\n      *pcVar4 = '\0';\n      pcVar4 = (char *)(**(code **)(pcVar23 + 0x383e0))(pcVar4 + 1);\n    }\n    uVar9 = (**(code **)(pcVar23 + 0x38bdc))(pcVar18);\n    iVar2 = (uVar9 >> 2) * 3;\n    pbVar25 = (byte *)(**(code **)(pcVar23 + 0x383b8))(iVar2,1);\n    iVar5 = 0;\n    while( true ) {\n      iVar10 = (**(code **)(pcVar23 + 0x38ba0))(pcVar18,0,4);\n      if (iVar10 != 0) break;\n      if (iVar2 <= iVar5 + 2) {\n        (**(code **)(pcVar23 + 0x389cc))\n                  (*(int *)(pcVar23 + 0x38418) + -0x49f8,*(int *)(pcVar23 + 0x38418) + -0x4e7c,0x441\n                   ,*(int *)(pcVar23 + 0x38418) + -0x46b0);\n        break;\n      }\n      iVar10 = (**(code **)(pcVar23 + 0x38498))(pcVar18,pbVar25 + iVar5);\n      iVar5 = iVar5 + iVar10;\n      pcVar18 = pcVar18 + 4;\n    }\n    if (*pcVar18 == '\0') {\n      uVar9 = (**(code **)(pcVar23 + 0x38bdc))(uVar3);\n      if ((int)(uVar9 + 3) < iVar5) {\n        if (uVar9 == ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 | (uint)pbVar25[3] |\n                     (uint)pbVar25[2] << 8)) {\n          iVar2 = (**(code **)(pcVar23 + 0x38b88))(pbVar25 + 4,uVar3,uVar9);\n          if (iVar2 == 0) {\n            if (ppcVar15 != (char **)0x0) {\n              pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3);\n              *ppcVar15 = pcVar18;\n            }\n            if (pbVar16 != (byte *)0x0) {\n              *(int *)pbVar16 = iVar5;\n            }\n            if (ppcVar17 == (char **)0x0) {\n              (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n            }\n            else {\n              *ppcVar17 = pcVar4;\n            }\n            (**(code **)(pcVar23 + 0x383a8))(uVar3);\n            return pbVar25;\n          }\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a5c;\n    }\n  }\n  (**(code **)(pcVar23 + 0x383a8))(uVar3);\n  (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n  (**(code **)(pcVar23 + 0x383a8))(pbVar25);\n  if (piVar24 != (int *)0x0) {\n    *piVar24 = iVar2;\n    piVar24 = (int *)0x0;\n  }\n  return (uchar *)piVar24;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "byte *pbVar14;" type_identifier (pointer_declarator "*pbVar14" * identifier) ;) (declaration "char **ppcVar15;" primitive_type (pointer_declarator "**ppcVar15" * (pointer_declarator "*ppcVar15" * identifier)) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "char **ppcVar17;" primitive_type (pointer_declarator "**ppcVar17" * (pointer_declarator "*ppcVar17" * identifier)) ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "char **ppcVar19;" primitive_type (pointer_declarator "**ppcVar19" * (pointer_declarator "*ppcVar19" * identifier)) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "byte *pbVar25;" type_identifier (pointer_declarator "*pbVar25" * identifier) ;) (declaration "char *pcStack_58;" primitive_type (pointer_declarator "*pcStack_58" * identifier) ;) (declaration "int iStack_50;" primitive_type identifier ;) (declaration "uchar base64out [3];" type_identifier (array_declarator "base64out [3]" identifier [ number_literal ]) ;) (declaration "char base64in [4];" primitive_type (array_declarator "base64in [4]" identifier [ number_literal ]) ;) (expression_statement "piVar24 = (int *)(in_t9 + 0x40970);" (assignment_expression "piVar24 = (int *)(in_t9 + 0x40970)" identifier = (cast_expression "(int *)(in_t9 + 0x40970)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x40970)" ( (binary_expression "in_t9 + 0x40970" identifier + number_literal) )))) ;) (expression_statement "iVar2 = **(int **)(in_t9 + 0x39258);" (assignment_expression "iVar2 = **(int **)(in_t9 + 0x39258)" identifier = (pointer_expression "**(int **)(in_t9 + 0x39258)" * (pointer_expression "*(int **)(in_t9 + 0x39258)" * (cast_expression "(int **)(in_t9 + 0x39258)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x39258)" ( (binary_expression "in_t9 + 0x39258" identifier + number_literal) )))))) ;) (expression_statement "ppcVar15 = algorithm;" (assignment_expression "ppcVar15 = algorithm" identifier = identifier) ;) (expression_statement "pbVar16 = (byte *)pub_blob_len;" (assignment_expression "pbVar16 = (byte *)pub_blob_len" identifier = (cast_expression "(byte *)pub_blob_len" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppcVar17 = commentptr;" (assignment_expression "ppcVar17 = commentptr" identifier = identifier) ;) (expression_statement "uVar3 = (**(code **)(in_t9 + 0x38d44))();" (assignment_expression "uVar3 = (**(code **)(in_t9 + 0x38d44))()" identifier = (call_expression "(**(code **)(in_t9 + 0x38d44))()" (parenthesized_expression "(**(code **)(in_t9 + 0x38d44))" ( (pointer_expression "**(code **)(in_t9 + 0x38d44)" * (pointer_expression "*(code **)(in_t9 + 0x38d44)" * (cast_expression "(code **)(in_t9 + 0x38d44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x38d44)" ( (binary_expression "in_t9 + 0x38d44" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);" (assignment_expression "pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3)" identifier = (cast_expression "(char *)(**(code **)(in_t9 + 0x38d48))(uVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(in_t9 + 0x38d48))(uVar3)" (parenthesized_expression "(**(code **)(in_t9 + 0x38d48))" ( (pointer_expression "**(code **)(in_t9 + 0x38d48)" * (pointer_expression "*(code **)(in_t9 + 0x38d48)" * (cast_expression "(code **)(in_t9 + 0x38d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x38d48)" ( (binary_expression "in_t9 + 0x38d48" identifier + number_literal) ))))) )) (argument_list "(uVar3)" ( identifier ))))) ;) (if_statement "if (pcVar4 == (char *)0x0) {\n    pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8);\n    pbVar25 = (byte *)0x0;\n    pcStack_58 = (char *)0x0;\n  }\n  else {\n    ppcVar15 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ae4);\n    iVar5 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n    if (iVar5 == 0) {\n      (**(code **)(in_t9 + 0x389c4))(pcVar4);\n      pcStack_58 = (char *)0x0;\n      iVar5 = *(int *)(in_t9 + 0x38a34);\n      iVar10 = *(int *)(in_t9 + 0x38a34);\n      ppcVar19 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ac0);\n      iVar21 = *(int *)(in_t9 + 0x38a34);\n      while( true ) {\n        uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);\n        pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);\n        if (pcVar4 == (char *)0x0) break;\n        puVar8 = (undefined1 *)(**(code **)(in_t9 + 0x3926c))(pcVar4,iVar5 + -0x4ac4);\n        if (puVar8 == (undefined1 *)0x0) {\n          ppcVar15 = (char **)0x1;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x389d4))(0x1000);\n          pbVar1 = (byte *)0x0;\n          pbVar22 = pbVar1;\n          if (*pcVar4 == '-') {\n            ppcVar15 = *(char ***)(in_t9 + 0x38a34);\n            goto LAB_00047a78;\n          }\n          iStack_50 = 0x1000;\n          pbVar20 = pbVar1;\n          goto LAB_00047bb8;\n        }\n        *puVar8 = 0;\n        iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4,iVar10 + -0x4c58);\n        ppcVar15 = ppcVar19;\n        if (iVar7 == 0) {\n          pcVar18 = puVar8 + 2;\n          if (puVar8[2] == '\"') {\n            iVar7 = (**(code **)(in_t9 + 0x391f8))(pcVar18);\n            if (pcVar18[iVar7 + -1] == '\"') {\n              pcVar18[iVar7 + -1] = '\0';\n              pcVar18 = puVar8 + 3;\n            }\n          }\n          cVar11 = *pcVar18;\n          pcVar13 = pcVar4;\n          if (cVar11 != '\0') {\n            ppcVar15 = (char **)&DAT_0000005c;\n            pcVar12 = pcVar4;\n            do {\n              pcVar6 = pcVar18;\n              if ((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')) {\n                pcVar6 = pcVar18;\n              }\n              pcVar13 = pcVar12 + 1;\n              *pcVar12 = *pcVar6;\n              pcVar18 = pcVar6 + 1;\n              cVar11 = pcVar6[1];\n              pcVar12 = pcVar13;\n            } while (cVar11 != '\0');\n          }\n          *pcVar13 = '\0';\n          (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          pcStack_58 = (char *)(**(code **)(in_t9 + 0x389fc))(pcVar4);\n        }\n        else {\n          iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n          if (iVar7 != 0) {\n            pbVar16 = (byte *)0x2;\n            ppcVar15 = (char **)(iVar21 + -0x4ab8);\n            iVar7 = (**(code **)(in_t9 + 0x390e8))(pcVar4);\n            if (iVar7 != 0) {\n              pbVar25 = (byte *)0x0;\n              pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (**(code **)(in_t9 + 0x389c4))(pcVar4);\n      }\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b04);\n      pbVar25 = (byte *)0x0;\n    }\n    else {\n      pbVar25 = (byte *)0x0;\n      pcStack_58 = (char *)0x0;\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8);\n    }\n  }" if (parenthesized_expression "(pcVar4 == (char *)0x0)" ( (binary_expression "pcVar4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8);\n    pbVar25 = (byte *)0x0;\n    pcStack_58 = (char *)0x0;\n  }" { (expression_statement "pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8);" (assignment_expression "pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8)" identifier = (cast_expression "(char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(in_t9 + 0x38a34) + -0x4bb8)" ( (binary_expression "*(int *)(in_t9 + 0x38a34) + -0x4bb8" (pointer_expression "*(int *)(in_t9 + 0x38a34)" * (cast_expression "(int *)(in_t9 + 0x38a34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x38a34)" ( (binary_expression "in_t9 + 0x38a34" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pbVar25 = (byte *)0x0;" (assignment_expression "pbVar25 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcStack_58 = (char *)0x0;" (assignment_expression "pcStack_58 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    ppcVar15 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ae4);\n    iVar5 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n    if (iVar5 == 0) {\n      (**(code **)(in_t9 + 0x389c4))(pcVar4);\n      pcStack_58 = (char *)0x0;\n      iVar5 = *(int *)(in_t9 + 0x38a34);\n      iVar10 = *(int *)(in_t9 + 0x38a34);\n      ppcVar19 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ac0);\n      iVar21 = *(int *)(in_t9 + 0x38a34);\n      while( true ) {\n        uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);\n        pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);\n        if (pcVar4 == (char *)0x0) break;\n        puVar8 = (undefined1 *)(**(code **)(in_t9 + 0x3926c))(pcVar4,iVar5 + -0x4ac4);\n        if (puVar8 == (undefined1 *)0x0) {\n          ppcVar15 = (char **)0x1;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x389d4))(0x1000);\n          pbVar1 = (byte *)0x0;\n          pbVar22 = pbVar1;\n          if (*pcVar4 == '-') {\n            ppcVar15 = *(char ***)(in_t9 + 0x38a34);\n            goto LAB_00047a78;\n          }\n          iStack_50 = 0x1000;\n          pbVar20 = pbVar1;\n          goto LAB_00047bb8;\n        }\n        *puVar8 = 0;\n        iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4,iVar10 + -0x4c58);\n        ppcVar15 = ppcVar19;\n        if (iVar7 == 0) {\n          pcVar18 = puVar8 + 2;\n          if (puVar8[2] == '\"') {\n            iVar7 = (**(code **)(in_t9 + 0x391f8))(pcVar18);\n            if (pcVar18[iVar7 + -1] == '\"') {\n              pcVar18[iVar7 + -1] = '\0';\n              pcVar18 = puVar8 + 3;\n            }\n          }\n          cVar11 = *pcVar18;\n          pcVar13 = pcVar4;\n          if (cVar11 != '\0') {\n            ppcVar15 = (char **)&DAT_0000005c;\n            pcVar12 = pcVar4;\n            do {\n              pcVar6 = pcVar18;\n              if ((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')) {\n                pcVar6 = pcVar18;\n              }\n              pcVar13 = pcVar12 + 1;\n              *pcVar12 = *pcVar6;\n              pcVar18 = pcVar6 + 1;\n              cVar11 = pcVar6[1];\n              pcVar12 = pcVar13;\n            } while (cVar11 != '\0');\n          }\n          *pcVar13 = '\0';\n          (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          pcStack_58 = (char *)(**(code **)(in_t9 + 0x389fc))(pcVar4);\n        }\n        else {\n          iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n          if (iVar7 != 0) {\n            pbVar16 = (byte *)0x2;\n            ppcVar15 = (char **)(iVar21 + -0x4ab8);\n            iVar7 = (**(code **)(in_t9 + 0x390e8))(pcVar4);\n            if (iVar7 != 0) {\n              pbVar25 = (byte *)0x0;\n              pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (**(code **)(in_t9 + 0x389c4))(pcVar4);\n      }\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b04);\n      pbVar25 = (byte *)0x0;\n    }\n    else {\n      pbVar25 = (byte *)0x0;\n      pcStack_58 = (char *)0x0;\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8);\n    }\n  }" else (compound_statement "{\n    ppcVar15 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ae4);\n    iVar5 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n    if (iVar5 == 0) {\n      (**(code **)(in_t9 + 0x389c4))(pcVar4);\n      pcStack_58 = (char *)0x0;\n      iVar5 = *(int *)(in_t9 + 0x38a34);\n      iVar10 = *(int *)(in_t9 + 0x38a34);\n      ppcVar19 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ac0);\n      iVar21 = *(int *)(in_t9 + 0x38a34);\n      while( true ) {\n        uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);\n        pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);\n        if (pcVar4 == (char *)0x0) break;\n        puVar8 = (undefined1 *)(**(code **)(in_t9 + 0x3926c))(pcVar4,iVar5 + -0x4ac4);\n        if (puVar8 == (undefined1 *)0x0) {\n          ppcVar15 = (char **)0x1;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x389d4))(0x1000);\n          pbVar1 = (byte *)0x0;\n          pbVar22 = pbVar1;\n          if (*pcVar4 == '-') {\n            ppcVar15 = *(char ***)(in_t9 + 0x38a34);\n            goto LAB_00047a78;\n          }\n          iStack_50 = 0x1000;\n          pbVar20 = pbVar1;\n          goto LAB_00047bb8;\n        }\n        *puVar8 = 0;\n        iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4,iVar10 + -0x4c58);\n        ppcVar15 = ppcVar19;\n        if (iVar7 == 0) {\n          pcVar18 = puVar8 + 2;\n          if (puVar8[2] == '\"') {\n            iVar7 = (**(code **)(in_t9 + 0x391f8))(pcVar18);\n            if (pcVar18[iVar7 + -1] == '\"') {\n              pcVar18[iVar7 + -1] = '\0';\n              pcVar18 = puVar8 + 3;\n            }\n          }\n          cVar11 = *pcVar18;\n          pcVar13 = pcVar4;\n          if (cVar11 != '\0') {\n            ppcVar15 = (char **)&DAT_0000005c;\n            pcVar12 = pcVar4;\n            do {\n              pcVar6 = pcVar18;\n              if ((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')) {\n                pcVar6 = pcVar18;\n              }\n              pcVar13 = pcVar12 + 1;\n              *pcVar12 = *pcVar6;\n              pcVar18 = pcVar6 + 1;\n              cVar11 = pcVar6[1];\n              pcVar12 = pcVar13;\n            } while (cVar11 != '\0');\n          }\n          *pcVar13 = '\0';\n          (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          pcStack_58 = (char *)(**(code **)(in_t9 + 0x389fc))(pcVar4);\n        }\n        else {\n          iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n          if (iVar7 != 0) {\n            pbVar16 = (byte *)0x2;\n            ppcVar15 = (char **)(iVar21 + -0x4ab8);\n            iVar7 = (**(code **)(in_t9 + 0x390e8))(pcVar4);\n            if (iVar7 != 0) {\n              pbVar25 = (byte *)0x0;\n              pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (**(code **)(in_t9 + 0x389c4))(pcVar4);\n      }\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b04);\n      pbVar25 = (byte *)0x0;\n    }\n    else {\n      pbVar25 = (byte *)0x0;\n      pcStack_58 = (char *)0x0;\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8);\n    }\n  }" { (expression_statement "ppcVar15 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ae4);" (assignment_expression "ppcVar15 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ae4)" identifier = (cast_expression "(char **)(*(int *)(in_t9 + 0x38a34) + -0x4ae4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(in_t9 + 0x38a34) + -0x4ae4)" ( (binary_expression "*(int *)(in_t9 + 0x38a34) + -0x4ae4" (pointer_expression "*(int *)(in_t9 + 0x38a34)" * (cast_expression "(int *)(in_t9 + 0x38a34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x38a34)" ( (binary_expression "in_t9 + 0x38a34" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar5 = (**(code **)(in_t9 + 0x391cc))(pcVar4);" (assignment_expression "iVar5 = (**(code **)(in_t9 + 0x391cc))(pcVar4)" identifier = (call_expression "(**(code **)(in_t9 + 0x391cc))(pcVar4)" (parenthesized_expression "(**(code **)(in_t9 + 0x391cc))" ( (pointer_expression "**(code **)(in_t9 + 0x391cc)" * (pointer_expression "*(code **)(in_t9 + 0x391cc)" * (cast_expression "(code **)(in_t9 + 0x391cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x391cc)" ( (binary_expression "in_t9 + 0x391cc" identifier + number_literal) ))))) )) (argument_list "(pcVar4)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      (**(code **)(in_t9 + 0x389c4))(pcVar4);\n      pcStack_58 = (char *)0x0;\n      iVar5 = *(int *)(in_t9 + 0x38a34);\n      iVar10 = *(int *)(in_t9 + 0x38a34);\n      ppcVar19 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ac0);\n      iVar21 = *(int *)(in_t9 + 0x38a34);\n      while( true ) {\n        uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);\n        pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);\n        if (pcVar4 == (char *)0x0) break;\n        puVar8 = (undefined1 *)(**(code **)(in_t9 + 0x3926c))(pcVar4,iVar5 + -0x4ac4);\n        if (puVar8 == (undefined1 *)0x0) {\n          ppcVar15 = (char **)0x1;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x389d4))(0x1000);\n          pbVar1 = (byte *)0x0;\n          pbVar22 = pbVar1;\n          if (*pcVar4 == '-') {\n            ppcVar15 = *(char ***)(in_t9 + 0x38a34);\n            goto LAB_00047a78;\n          }\n          iStack_50 = 0x1000;\n          pbVar20 = pbVar1;\n          goto LAB_00047bb8;\n        }\n        *puVar8 = 0;\n        iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4,iVar10 + -0x4c58);\n        ppcVar15 = ppcVar19;\n        if (iVar7 == 0) {\n          pcVar18 = puVar8 + 2;\n          if (puVar8[2] == '\"') {\n            iVar7 = (**(code **)(in_t9 + 0x391f8))(pcVar18);\n            if (pcVar18[iVar7 + -1] == '\"') {\n              pcVar18[iVar7 + -1] = '\0';\n              pcVar18 = puVar8 + 3;\n            }\n          }\n          cVar11 = *pcVar18;\n          pcVar13 = pcVar4;\n          if (cVar11 != '\0') {\n            ppcVar15 = (char **)&DAT_0000005c;\n            pcVar12 = pcVar4;\n            do {\n              pcVar6 = pcVar18;\n              if ((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')) {\n                pcVar6 = pcVar18;\n              }\n              pcVar13 = pcVar12 + 1;\n              *pcVar12 = *pcVar6;\n              pcVar18 = pcVar6 + 1;\n              cVar11 = pcVar6[1];\n              pcVar12 = pcVar13;\n            } while (cVar11 != '\0');\n          }\n          *pcVar13 = '\0';\n          (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          pcStack_58 = (char *)(**(code **)(in_t9 + 0x389fc))(pcVar4);\n        }\n        else {\n          iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n          if (iVar7 != 0) {\n            pbVar16 = (byte *)0x2;\n            ppcVar15 = (char **)(iVar21 + -0x4ab8);\n            iVar7 = (**(code **)(in_t9 + 0x390e8))(pcVar4);\n            if (iVar7 != 0) {\n              pbVar25 = (byte *)0x0;\n              pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (**(code **)(in_t9 + 0x389c4))(pcVar4);\n      }\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b04);\n      pbVar25 = (byte *)0x0;\n    }\n    else {\n      pbVar25 = (byte *)0x0;\n      pcStack_58 = (char *)0x0;\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8);\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      (**(code **)(in_t9 + 0x389c4))(pcVar4);\n      pcStack_58 = (char *)0x0;\n      iVar5 = *(int *)(in_t9 + 0x38a34);\n      iVar10 = *(int *)(in_t9 + 0x38a34);\n      ppcVar19 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ac0);\n      iVar21 = *(int *)(in_t9 + 0x38a34);\n      while( true ) {\n        uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);\n        pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);\n        if (pcVar4 == (char *)0x0) break;\n        puVar8 = (undefined1 *)(**(code **)(in_t9 + 0x3926c))(pcVar4,iVar5 + -0x4ac4);\n        if (puVar8 == (undefined1 *)0x0) {\n          ppcVar15 = (char **)0x1;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x389d4))(0x1000);\n          pbVar1 = (byte *)0x0;\n          pbVar22 = pbVar1;\n          if (*pcVar4 == '-') {\n            ppcVar15 = *(char ***)(in_t9 + 0x38a34);\n            goto LAB_00047a78;\n          }\n          iStack_50 = 0x1000;\n          pbVar20 = pbVar1;\n          goto LAB_00047bb8;\n        }\n        *puVar8 = 0;\n        iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4,iVar10 + -0x4c58);\n        ppcVar15 = ppcVar19;\n        if (iVar7 == 0) {\n          pcVar18 = puVar8 + 2;\n          if (puVar8[2] == '\"') {\n            iVar7 = (**(code **)(in_t9 + 0x391f8))(pcVar18);\n            if (pcVar18[iVar7 + -1] == '\"') {\n              pcVar18[iVar7 + -1] = '\0';\n              pcVar18 = puVar8 + 3;\n            }\n          }\n          cVar11 = *pcVar18;\n          pcVar13 = pcVar4;\n          if (cVar11 != '\0') {\n            ppcVar15 = (char **)&DAT_0000005c;\n            pcVar12 = pcVar4;\n            do {\n              pcVar6 = pcVar18;\n              if ((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')) {\n                pcVar6 = pcVar18;\n              }\n              pcVar13 = pcVar12 + 1;\n              *pcVar12 = *pcVar6;\n              pcVar18 = pcVar6 + 1;\n              cVar11 = pcVar6[1];\n              pcVar12 = pcVar13;\n            } while (cVar11 != '\0');\n          }\n          *pcVar13 = '\0';\n          (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          pcStack_58 = (char *)(**(code **)(in_t9 + 0x389fc))(pcVar4);\n        }\n        else {\n          iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n          if (iVar7 != 0) {\n            pbVar16 = (byte *)0x2;\n            ppcVar15 = (char **)(iVar21 + -0x4ab8);\n            iVar7 = (**(code **)(in_t9 + 0x390e8))(pcVar4);\n            if (iVar7 != 0) {\n              pbVar25 = (byte *)0x0;\n              pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (**(code **)(in_t9 + 0x389c4))(pcVar4);\n      }\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b04);\n      pbVar25 = (byte *)0x0;\n    }" { (expression_statement "(**(code **)(in_t9 + 0x389c4))(pcVar4);" (call_expression "(**(code **)(in_t9 + 0x389c4))(pcVar4)" (parenthesized_expression "(**(code **)(in_t9 + 0x389c4))" ( (pointer_expression "**(code **)(in_t9 + 0x389c4)" * (pointer_expression "*(code **)(in_t9 + 0x389c4)" * (cast_expression "(code **)(in_t9 + 0x389c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x389c4)" ( (binary_expression "in_t9 + 0x389c4" identifier + number_literal) ))))) )) (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "pcStack_58 = (char *)0x0;" (assignment_expression "pcStack_58 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar5 = *(int *)(in_t9 + 0x38a34);" (assignment_expression "iVar5 = *(int *)(in_t9 + 0x38a34)" identifier = (pointer_expression "*(int *)(in_t9 + 0x38a34)" * (cast_expression "(int *)(in_t9 + 0x38a34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x38a34)" ( (binary_expression "in_t9 + 0x38a34" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(in_t9 + 0x38a34);" (assignment_expression "iVar10 = *(int *)(in_t9 + 0x38a34)" identifier = (pointer_expression "*(int *)(in_t9 + 0x38a34)" * (cast_expression "(int *)(in_t9 + 0x38a34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x38a34)" ( (binary_expression "in_t9 + 0x38a34" identifier + number_literal) ))))) ;) (expression_statement "ppcVar19 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ac0);" (assignment_expression "ppcVar19 = (char **)(*(int *)(in_t9 + 0x38a34) + -0x4ac0)" identifier = (cast_expression "(char **)(*(int *)(in_t9 + 0x38a34) + -0x4ac0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(in_t9 + 0x38a34) + -0x4ac0)" ( (binary_expression "*(int *)(in_t9 + 0x38a34) + -0x4ac0" (pointer_expression "*(int *)(in_t9 + 0x38a34)" * (cast_expression "(int *)(in_t9 + 0x38a34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x38a34)" ( (binary_expression "in_t9 + 0x38a34" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar21 = *(int *)(in_t9 + 0x38a34);" (assignment_expression "iVar21 = *(int *)(in_t9 + 0x38a34)" identifier = (pointer_expression "*(int *)(in_t9 + 0x38a34)" * (cast_expression "(int *)(in_t9 + 0x38a34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x38a34)" ( (binary_expression "in_t9 + 0x38a34" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n        uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);\n        pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);\n        if (pcVar4 == (char *)0x0) break;\n        puVar8 = (undefined1 *)(**(code **)(in_t9 + 0x3926c))(pcVar4,iVar5 + -0x4ac4);\n        if (puVar8 == (undefined1 *)0x0) {\n          ppcVar15 = (char **)0x1;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x389d4))(0x1000);\n          pbVar1 = (byte *)0x0;\n          pbVar22 = pbVar1;\n          if (*pcVar4 == '-') {\n            ppcVar15 = *(char ***)(in_t9 + 0x38a34);\n            goto LAB_00047a78;\n          }\n          iStack_50 = 0x1000;\n          pbVar20 = pbVar1;\n          goto LAB_00047bb8;\n        }\n        *puVar8 = 0;\n        iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4,iVar10 + -0x4c58);\n        ppcVar15 = ppcVar19;\n        if (iVar7 == 0) {\n          pcVar18 = puVar8 + 2;\n          if (puVar8[2] == '\"') {\n            iVar7 = (**(code **)(in_t9 + 0x391f8))(pcVar18);\n            if (pcVar18[iVar7 + -1] == '\"') {\n              pcVar18[iVar7 + -1] = '\0';\n              pcVar18 = puVar8 + 3;\n            }\n          }\n          cVar11 = *pcVar18;\n          pcVar13 = pcVar4;\n          if (cVar11 != '\0') {\n            ppcVar15 = (char **)&DAT_0000005c;\n            pcVar12 = pcVar4;\n            do {\n              pcVar6 = pcVar18;\n              if ((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')) {\n                pcVar6 = pcVar18;\n              }\n              pcVar13 = pcVar12 + 1;\n              *pcVar12 = *pcVar6;\n              pcVar18 = pcVar6 + 1;\n              cVar11 = pcVar6[1];\n              pcVar12 = pcVar13;\n            } while (cVar11 != '\0');\n          }\n          *pcVar13 = '\0';\n          (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          pcStack_58 = (char *)(**(code **)(in_t9 + 0x389fc))(pcVar4);\n        }\n        else {\n          iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n          if (iVar7 != 0) {\n            pbVar16 = (byte *)0x2;\n            ppcVar15 = (char **)(iVar21 + -0x4ab8);\n            iVar7 = (**(code **)(in_t9 + 0x390e8))(pcVar4);\n            if (iVar7 != 0) {\n              pbVar25 = (byte *)0x0;\n              pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (**(code **)(in_t9 + 0x389c4))(pcVar4);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);\n        pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);\n        if (pcVar4 == (char *)0x0) break;\n        puVar8 = (undefined1 *)(**(code **)(in_t9 + 0x3926c))(pcVar4,iVar5 + -0x4ac4);\n        if (puVar8 == (undefined1 *)0x0) {\n          ppcVar15 = (char **)0x1;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x389d4))(0x1000);\n          pbVar1 = (byte *)0x0;\n          pbVar22 = pbVar1;\n          if (*pcVar4 == '-') {\n            ppcVar15 = *(char ***)(in_t9 + 0x38a34);\n            goto LAB_00047a78;\n          }\n          iStack_50 = 0x1000;\n          pbVar20 = pbVar1;\n          goto LAB_00047bb8;\n        }\n        *puVar8 = 0;\n        iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4,iVar10 + -0x4c58);\n        ppcVar15 = ppcVar19;\n        if (iVar7 == 0) {\n          pcVar18 = puVar8 + 2;\n          if (puVar8[2] == '\"') {\n            iVar7 = (**(code **)(in_t9 + 0x391f8))(pcVar18);\n            if (pcVar18[iVar7 + -1] == '\"') {\n              pcVar18[iVar7 + -1] = '\0';\n              pcVar18 = puVar8 + 3;\n            }\n          }\n          cVar11 = *pcVar18;\n          pcVar13 = pcVar4;\n          if (cVar11 != '\0') {\n            ppcVar15 = (char **)&DAT_0000005c;\n            pcVar12 = pcVar4;\n            do {\n              pcVar6 = pcVar18;\n              if ((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')) {\n                pcVar6 = pcVar18;\n              }\n              pcVar13 = pcVar12 + 1;\n              *pcVar12 = *pcVar6;\n              pcVar18 = pcVar6 + 1;\n              cVar11 = pcVar6[1];\n              pcVar12 = pcVar13;\n            } while (cVar11 != '\0');\n          }\n          *pcVar13 = '\0';\n          (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          pcStack_58 = (char *)(**(code **)(in_t9 + 0x389fc))(pcVar4);\n        }\n        else {\n          iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n          if (iVar7 != 0) {\n            pbVar16 = (byte *)0x2;\n            ppcVar15 = (char **)(iVar21 + -0x4ab8);\n            iVar7 = (**(code **)(in_t9 + 0x390e8))(pcVar4);\n            if (iVar7 != 0) {\n              pbVar25 = (byte *)0x0;\n              pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (**(code **)(in_t9 + 0x389c4))(pcVar4);\n      }" { (expression_statement "uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);" (assignment_expression "uVar3 = (**(code **)(in_t9 + 0x38d44))(fp)" identifier = (call_expression "(**(code **)(in_t9 + 0x38d44))(fp)" (parenthesized_expression "(**(code **)(in_t9 + 0x38d44))" ( (pointer_expression "**(code **)(in_t9 + 0x38d44)" * (pointer_expression "*(code **)(in_t9 + 0x38d44)" * (cast_expression "(code **)(in_t9 + 0x38d44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x38d44)" ( (binary_expression "in_t9 + 0x38d44" identifier + number_literal) ))))) )) (argument_list "(fp)" ( identifier )))) ;) (expression_statement "pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);" (assignment_expression "pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3)" identifier = (cast_expression "(char *)(**(code **)(in_t9 + 0x38d48))(uVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(in_t9 + 0x38d48))(uVar3)" (parenthesized_expression "(**(code **)(in_t9 + 0x38d48))" ( (pointer_expression "**(code **)(in_t9 + 0x38d48)" * (pointer_expression "*(code **)(in_t9 + 0x38d48)" * (cast_expression "(code **)(in_t9 + 0x38d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x38d48)" ( (binary_expression "in_t9 + 0x38d48" identifier + number_literal) ))))) )) (argument_list "(uVar3)" ( identifier ))))) ;) (if_statement "if (pcVar4 == (char *)0x0) break;" if (parenthesized_expression "(pcVar4 == (char *)0x0)" ( (binary_expression "pcVar4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "puVar8 = (undefined1 *)(**(code **)(in_t9 + 0x3926c))(pcVar4,iVar5 + -0x4ac4);" (assignment_expression "puVar8 = (undefined1 *)(**(code **)(in_t9 + 0x3926c))(pcVar4,iVar5 + -0x4ac4)" identifier = (cast_expression "(undefined1 *)(**(code **)(in_t9 + 0x3926c))(pcVar4,iVar5 + -0x4ac4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(in_t9 + 0x3926c))(pcVar4,iVar5 + -0x4ac4)" (parenthesized_expression "(**(code **)(in_t9 + 0x3926c))" ( (pointer_expression "**(code **)(in_t9 + 0x3926c)" * (pointer_expression "*(code **)(in_t9 + 0x3926c)" * (cast_expression "(code **)(in_t9 + 0x3926c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x3926c)" ( (binary_expression "in_t9 + 0x3926c" identifier + number_literal) ))))) )) (argument_list "(pcVar4,iVar5 + -0x4ac4)" ( identifier , (binary_expression "iVar5 + -0x4ac4" identifier + number_literal) ))))) ;) (if_statement "if (puVar8 == (undefined1 *)0x0) {\n          ppcVar15 = (char **)0x1;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x389d4))(0x1000);\n          pbVar1 = (byte *)0x0;\n          pbVar22 = pbVar1;\n          if (*pcVar4 == '-') {\n            ppcVar15 = *(char ***)(in_t9 + 0x38a34);\n            goto LAB_00047a78;\n          }\n          iStack_50 = 0x1000;\n          pbVar20 = pbVar1;\n          goto LAB_00047bb8;\n        }" if (parenthesized_expression "(puVar8 == (undefined1 *)0x0)" ( (binary_expression "puVar8 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          ppcVar15 = (char **)0x1;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x389d4))(0x1000);\n          pbVar1 = (byte *)0x0;\n          pbVar22 = pbVar1;\n          if (*pcVar4 == '-') {\n            ppcVar15 = *(char ***)(in_t9 + 0x38a34);\n            goto LAB_00047a78;\n          }\n          iStack_50 = 0x1000;\n          pbVar20 = pbVar1;\n          goto LAB_00047bb8;\n        }" { (expression_statement "ppcVar15 = (char **)0x1;" (assignment_expression "ppcVar15 = (char **)0x1" identifier = (cast_expression "(char **)0x1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pbVar25 = (byte *)(**(code **)(in_t9 + 0x389d4))(0x1000);" (assignment_expression "pbVar25 = (byte *)(**(code **)(in_t9 + 0x389d4))(0x1000)" identifier = (cast_expression "(byte *)(**(code **)(in_t9 + 0x389d4))(0x1000)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(in_t9 + 0x389d4))(0x1000)" (parenthesized_expression "(**(code **)(in_t9 + 0x389d4))" ( (pointer_expression "**(code **)(in_t9 + 0x389d4)" * (pointer_expression "*(code **)(in_t9 + 0x389d4)" * (cast_expression "(code **)(in_t9 + 0x389d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x389d4)" ( (binary_expression "in_t9 + 0x389d4" identifier + number_literal) ))))) )) (argument_list "(0x1000)" ( number_literal ))))) ;) (expression_statement "pbVar1 = (byte *)0x0;" (assignment_expression "pbVar1 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar22 = pbVar1;" (assignment_expression "pbVar22 = pbVar1" identifier = identifier) ;) (if_statement "if (*pcVar4 == '-') {\n            ppcVar15 = *(char ***)(in_t9 + 0x38a34);\n            goto LAB_00047a78;\n          }" if (parenthesized_expression "(*pcVar4 == '-')" ( (binary_expression "*pcVar4 == '-'" (pointer_expression "*pcVar4" * identifier) == (char_literal "'-'" ' character ')) )) (compound_statement "{\n            ppcVar15 = *(char ***)(in_t9 + 0x38a34);\n            goto LAB_00047a78;\n          }" { (expression_statement "ppcVar15 = *(char ***)(in_t9 + 0x38a34);" (assignment_expression "ppcVar15 = *(char ***)(in_t9 + 0x38a34)" identifier = (pointer_expression "*(char ***)(in_t9 + 0x38a34)" * (cast_expression "(char ***)(in_t9 + 0x38a34)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(in_t9 + 0x38a34)" ( (binary_expression "in_t9 + 0x38a34" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00047a78;" goto statement_identifier ;) })) (expression_statement "iStack_50 = 0x1000;" (assignment_expression "iStack_50 = 0x1000" identifier = number_literal) ;) (expression_statement "pbVar20 = pbVar1;" (assignment_expression "pbVar20 = pbVar1" identifier = identifier) ;) (goto_statement "goto LAB_00047bb8;" goto statement_identifier ;) })) (expression_statement "*puVar8 = 0;" (assignment_expression "*puVar8 = 0" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4,iVar10 + -0x4c58);" (assignment_expression "iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4,iVar10 + -0x4c58)" identifier = (call_expression "(**(code **)(in_t9 + 0x391cc))(pcVar4,iVar10 + -0x4c58)" (parenthesized_expression "(**(code **)(in_t9 + 0x391cc))" ( (pointer_expression "**(code **)(in_t9 + 0x391cc)" * (pointer_expression "*(code **)(in_t9 + 0x391cc)" * (cast_expression "(code **)(in_t9 + 0x391cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x391cc)" ( (binary_expression "in_t9 + 0x391cc" identifier + number_literal) ))))) )) (argument_list "(pcVar4,iVar10 + -0x4c58)" ( identifier , (binary_expression "iVar10 + -0x4c58" identifier + number_literal) )))) ;) (expression_statement "ppcVar15 = ppcVar19;" (assignment_expression "ppcVar15 = ppcVar19" identifier = identifier) ;) (if_statement "if (iVar7 == 0) {\n          pcVar18 = puVar8 + 2;\n          if (puVar8[2] == '\"') {\n            iVar7 = (**(code **)(in_t9 + 0x391f8))(pcVar18);\n            if (pcVar18[iVar7 + -1] == '\"') {\n              pcVar18[iVar7 + -1] = '\0';\n              pcVar18 = puVar8 + 3;\n            }\n          }\n          cVar11 = *pcVar18;\n          pcVar13 = pcVar4;\n          if (cVar11 != '\0') {\n            ppcVar15 = (char **)&DAT_0000005c;\n            pcVar12 = pcVar4;\n            do {\n              pcVar6 = pcVar18;\n              if ((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')) {\n                pcVar6 = pcVar18;\n              }\n              pcVar13 = pcVar12 + 1;\n              *pcVar12 = *pcVar6;\n              pcVar18 = pcVar6 + 1;\n              cVar11 = pcVar6[1];\n              pcVar12 = pcVar13;\n            } while (cVar11 != '\0');\n          }\n          *pcVar13 = '\0';\n          (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          pcStack_58 = (char *)(**(code **)(in_t9 + 0x389fc))(pcVar4);\n        }\n        else {\n          iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n          if (iVar7 != 0) {\n            pbVar16 = (byte *)0x2;\n            ppcVar15 = (char **)(iVar21 + -0x4ab8);\n            iVar7 = (**(code **)(in_t9 + 0x390e8))(pcVar4);\n            if (iVar7 != 0) {\n              pbVar25 = (byte *)0x0;\n              pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);\n              goto LAB_000477c4;\n            }\n          }\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar18 = puVar8 + 2;\n          if (puVar8[2] == '\"') {\n            iVar7 = (**(code **)(in_t9 + 0x391f8))(pcVar18);\n            if (pcVar18[iVar7 + -1] == '\"') {\n              pcVar18[iVar7 + -1] = '\0';\n              pcVar18 = puVar8 + 3;\n            }\n          }\n          cVar11 = *pcVar18;\n          pcVar13 = pcVar4;\n          if (cVar11 != '\0') {\n            ppcVar15 = (char **)&DAT_0000005c;\n            pcVar12 = pcVar4;\n            do {\n              pcVar6 = pcVar18;\n              if ((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')) {\n                pcVar6 = pcVar18;\n              }\n              pcVar13 = pcVar12 + 1;\n              *pcVar12 = *pcVar6;\n              pcVar18 = pcVar6 + 1;\n              cVar11 = pcVar6[1];\n              pcVar12 = pcVar13;\n            } while (cVar11 != '\0');\n          }\n          *pcVar13 = '\0';\n          (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          pcStack_58 = (char *)(**(code **)(in_t9 + 0x389fc))(pcVar4);\n        }" { (expression_statement "pcVar18 = puVar8 + 2;" (assignment_expression "pcVar18 = puVar8 + 2" identifier = (binary_expression "puVar8 + 2" identifier + number_literal)) ;) (if_statement "if (puVar8[2] == '\"') {\n            iVar7 = (**(code **)(in_t9 + 0x391f8))(pcVar18);\n            if (pcVar18[iVar7 + -1] == '\"') {\n              pcVar18[iVar7 + -1] = '\0';\n              pcVar18 = puVar8 + 3;\n            }\n          }" if (parenthesized_expression "(puVar8[2] == '\"')" ( (binary_expression "puVar8[2] == '\"'" (subscript_expression "puVar8[2]" identifier [ number_literal ]) == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n            iVar7 = (**(code **)(in_t9 + 0x391f8))(pcVar18);\n            if (pcVar18[iVar7 + -1] == '\"') {\n              pcVar18[iVar7 + -1] = '\0';\n              pcVar18 = puVar8 + 3;\n            }\n          }" { (expression_statement "iVar7 = (**(code **)(in_t9 + 0x391f8))(pcVar18);" (assignment_expression "iVar7 = (**(code **)(in_t9 + 0x391f8))(pcVar18)" identifier = (call_expression "(**(code **)(in_t9 + 0x391f8))(pcVar18)" (parenthesized_expression "(**(code **)(in_t9 + 0x391f8))" ( (pointer_expression "**(code **)(in_t9 + 0x391f8)" * (pointer_expression "*(code **)(in_t9 + 0x391f8)" * (cast_expression "(code **)(in_t9 + 0x391f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x391f8)" ( (binary_expression "in_t9 + 0x391f8" identifier + number_literal) ))))) )) (argument_list "(pcVar18)" ( identifier )))) ;) (if_statement "if (pcVar18[iVar7 + -1] == '\"') {\n              pcVar18[iVar7 + -1] = '\0';\n              pcVar18 = puVar8 + 3;\n            }" if (parenthesized_expression "(pcVar18[iVar7 + -1] == '\"')" ( (binary_expression "pcVar18[iVar7 + -1] == '\"'" (subscript_expression "pcVar18[iVar7 + -1]" identifier [ (binary_expression "iVar7 + -1" identifier + number_literal) ]) == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n              pcVar18[iVar7 + -1] = '\0';\n              pcVar18 = puVar8 + 3;\n            }" { (expression_statement "pcVar18[iVar7 + -1] = '\0';" (assignment_expression "pcVar18[iVar7 + -1] = '\0'" (subscript_expression "pcVar18[iVar7 + -1]" identifier [ (binary_expression "iVar7 + -1" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar18 = puVar8 + 3;" (assignment_expression "pcVar18 = puVar8 + 3" identifier = (binary_expression "puVar8 + 3" identifier + number_literal)) ;) })) })) (expression_statement "cVar11 = *pcVar18;" (assignment_expression "cVar11 = *pcVar18" identifier = (pointer_expression "*pcVar18" * identifier)) ;) (expression_statement "pcVar13 = pcVar4;" (assignment_expression "pcVar13 = pcVar4" identifier = identifier) ;) (if_statement "if (cVar11 != '\0') {\n            ppcVar15 = (char **)&DAT_0000005c;\n            pcVar12 = pcVar4;\n            do {\n              pcVar6 = pcVar18;\n              if ((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')) {\n                pcVar6 = pcVar18;\n              }\n              pcVar13 = pcVar12 + 1;\n              *pcVar12 = *pcVar6;\n              pcVar18 = pcVar6 + 1;\n              cVar11 = pcVar6[1];\n              pcVar12 = pcVar13;\n            } while (cVar11 != '\0');\n          }" if (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            ppcVar15 = (char **)&DAT_0000005c;\n            pcVar12 = pcVar4;\n            do {\n              pcVar6 = pcVar18;\n              if ((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')) {\n                pcVar6 = pcVar18;\n              }\n              pcVar13 = pcVar12 + 1;\n              *pcVar12 = *pcVar6;\n              pcVar18 = pcVar6 + 1;\n              cVar11 = pcVar6[1];\n              pcVar12 = pcVar13;\n            } while (cVar11 != '\0');\n          }" { (expression_statement "ppcVar15 = (char **)&DAT_0000005c;" (assignment_expression "ppcVar15 = (char **)&DAT_0000005c" identifier = (cast_expression "(char **)&DAT_0000005c" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_0000005c" & identifier))) ;) (expression_statement "pcVar12 = pcVar4;" (assignment_expression "pcVar12 = pcVar4" identifier = identifier) ;) (do_statement "do {\n              pcVar6 = pcVar18;\n              if ((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')) {\n                pcVar6 = pcVar18;\n              }\n              pcVar13 = pcVar12 + 1;\n              *pcVar12 = *pcVar6;\n              pcVar18 = pcVar6 + 1;\n              cVar11 = pcVar6[1];\n              pcVar12 = pcVar13;\n            } while (cVar11 != '\0');" do (compound_statement "{\n              pcVar6 = pcVar18;\n              if ((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')) {\n                pcVar6 = pcVar18;\n              }\n              pcVar13 = pcVar12 + 1;\n              *pcVar12 = *pcVar6;\n              pcVar18 = pcVar6 + 1;\n              cVar11 = pcVar6[1];\n              pcVar12 = pcVar13;\n            }" { (expression_statement "pcVar6 = pcVar18;" (assignment_expression "pcVar6 = pcVar18" identifier = identifier) ;) (if_statement "if ((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')) {\n                pcVar6 = pcVar18;\n              }" if (parenthesized_expression "((cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0'))" ( (binary_expression "(cVar11 == '\\') && (pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')" (parenthesized_expression "(cVar11 == '\\')" ( (binary_expression "cVar11 == '\\'" identifier == (char_literal "'\\'" ' escape_sequence ')) )) && (parenthesized_expression "(pcVar6 = pcVar18 + 1, pcVar18[1] == '\0')" ( (comma_expression "pcVar6 = pcVar18 + 1, pcVar18[1] == '\0'" (assignment_expression "pcVar6 = pcVar18 + 1" identifier = (binary_expression "pcVar18 + 1" identifier + number_literal)) , (binary_expression "pcVar18[1] == '\0'" (subscript_expression "pcVar18[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n                pcVar6 = pcVar18;\n              }" { (expression_statement "pcVar6 = pcVar18;" (assignment_expression "pcVar6 = pcVar18" identifier = identifier) ;) })) (expression_statement "pcVar13 = pcVar12 + 1;" (assignment_expression "pcVar13 = pcVar12 + 1" identifier = (binary_expression "pcVar12 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar12 = *pcVar6;" (assignment_expression "*pcVar12 = *pcVar6" (pointer_expression "*pcVar12" * identifier) = (pointer_expression "*pcVar6" * identifier)) ;) (expression_statement "pcVar18 = pcVar6 + 1;" (assignment_expression "pcVar18 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "cVar11 = pcVar6[1];" (assignment_expression "cVar11 = pcVar6[1]" identifier = (subscript_expression "pcVar6[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar12 = pcVar13;" (assignment_expression "pcVar12 = pcVar13" identifier = identifier) ;) }) while (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) (expression_statement "*pcVar13 = '\0';" (assignment_expression "*pcVar13 = '\0'" (pointer_expression "*pcVar13" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(**(code **)(in_t9 + 0x389c4))(pcStack_58);" (call_expression "(**(code **)(in_t9 + 0x389c4))(pcStack_58)" (parenthesized_expression "(**(code **)(in_t9 + 0x389c4))" ( (pointer_expression "**(code **)(in_t9 + 0x389c4)" * (pointer_expression "*(code **)(in_t9 + 0x389c4)" * (cast_expression "(code **)(in_t9 + 0x389c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x389c4)" ( (binary_expression "in_t9 + 0x389c4" identifier + number_literal) ))))) )) (argument_list "(pcStack_58)" ( identifier ))) ;) (expression_statement "pcStack_58 = (char *)(**(code **)(in_t9 + 0x389fc))(pcVar4);" (assignment_expression "pcStack_58 = (char *)(**(code **)(in_t9 + 0x389fc))(pcVar4)" identifier = (cast_expression "(char *)(**(code **)(in_t9 + 0x389fc))(pcVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(in_t9 + 0x389fc))(pcVar4)" (parenthesized_expression "(**(code **)(in_t9 + 0x389fc))" ( (pointer_expression "**(code **)(in_t9 + 0x389fc)" * (pointer_expression "*(code **)(in_t9 + 0x389fc)" * (cast_expression "(code **)(in_t9 + 0x389fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x389fc)" ( (binary_expression "in_t9 + 0x389fc" identifier + number_literal) ))))) )) (argument_list "(pcVar4)" ( identifier ))))) ;) }) (else_clause "else {\n          iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n          if (iVar7 != 0) {\n            pbVar16 = (byte *)0x2;\n            ppcVar15 = (char **)(iVar21 + -0x4ab8);\n            iVar7 = (**(code **)(in_t9 + 0x390e8))(pcVar4);\n            if (iVar7 != 0) {\n              pbVar25 = (byte *)0x0;\n              pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);\n              goto LAB_000477c4;\n            }\n          }\n        }" else (compound_statement "{\n          iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4);\n          if (iVar7 != 0) {\n            pbVar16 = (byte *)0x2;\n            ppcVar15 = (char **)(iVar21 + -0x4ab8);\n            iVar7 = (**(code **)(in_t9 + 0x390e8))(pcVar4);\n            if (iVar7 != 0) {\n              pbVar25 = (byte *)0x0;\n              pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);\n              goto LAB_000477c4;\n            }\n          }\n        }" { (expression_statement "iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4);" (assignment_expression "iVar7 = (**(code **)(in_t9 + 0x391cc))(pcVar4)" identifier = (call_expression "(**(code **)(in_t9 + 0x391cc))(pcVar4)" (parenthesized_expression "(**(code **)(in_t9 + 0x391cc))" ( (pointer_expression "**(code **)(in_t9 + 0x391cc)" * (pointer_expression "*(code **)(in_t9 + 0x391cc)" * (cast_expression "(code **)(in_t9 + 0x391cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x391cc)" ( (binary_expression "in_t9 + 0x391cc" identifier + number_literal) ))))) )) (argument_list "(pcVar4)" ( identifier )))) ;) (if_statement "if (iVar7 != 0) {\n            pbVar16 = (byte *)0x2;\n            ppcVar15 = (char **)(iVar21 + -0x4ab8);\n            iVar7 = (**(code **)(in_t9 + 0x390e8))(pcVar4);\n            if (iVar7 != 0) {\n              pbVar25 = (byte *)0x0;\n              pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);\n              goto LAB_000477c4;\n            }\n          }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            pbVar16 = (byte *)0x2;\n            ppcVar15 = (char **)(iVar21 + -0x4ab8);\n            iVar7 = (**(code **)(in_t9 + 0x390e8))(pcVar4);\n            if (iVar7 != 0) {\n              pbVar25 = (byte *)0x0;\n              pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);\n              goto LAB_000477c4;\n            }\n          }" { (expression_statement "pbVar16 = (byte *)0x2;" (assignment_expression "pbVar16 = (byte *)0x2" identifier = (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppcVar15 = (char **)(iVar21 + -0x4ab8);" (assignment_expression "ppcVar15 = (char **)(iVar21 + -0x4ab8)" identifier = (cast_expression "(char **)(iVar21 + -0x4ab8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + -0x4ab8)" ( (binary_expression "iVar21 + -0x4ab8" identifier + number_literal) )))) ;) (expression_statement "iVar7 = (**(code **)(in_t9 + 0x390e8))(pcVar4);" (assignment_expression "iVar7 = (**(code **)(in_t9 + 0x390e8))(pcVar4)" identifier = (call_expression "(**(code **)(in_t9 + 0x390e8))(pcVar4)" (parenthesized_expression "(**(code **)(in_t9 + 0x390e8))" ( (pointer_expression "**(code **)(in_t9 + 0x390e8)" * (pointer_expression "*(code **)(in_t9 + 0x390e8)" * (cast_expression "(code **)(in_t9 + 0x390e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x390e8)" ( (binary_expression "in_t9 + 0x390e8" identifier + number_literal) ))))) )) (argument_list "(pcVar4)" ( identifier )))) ;) (if_statement "if (iVar7 != 0) {\n              pbVar25 = (byte *)0x0;\n              pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);\n              goto LAB_000477c4;\n            }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n              pbVar25 = (byte *)0x0;\n              pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);\n              goto LAB_000477c4;\n            }" { (expression_statement "pbVar25 = (byte *)0x0;" (assignment_expression "pbVar25 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c);" (assignment_expression "pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c)" identifier = (cast_expression "(char *)(*(int *)(in_t9 + 0x38a34) + -0x4b8c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(in_t9 + 0x38a34) + -0x4b8c)" ( (binary_expression "*(int *)(in_t9 + 0x38a34) + -0x4b8c" (pointer_expression "*(int *)(in_t9 + 0x38a34)" * (cast_expression "(int *)(in_t9 + 0x38a34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x38a34)" ( (binary_expression "in_t9 + 0x38a34" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000477c4;" goto statement_identifier ;) })) })) }))) (expression_statement "(**(code **)(in_t9 + 0x389c4))(pcVar4);" (call_expression "(**(code **)(in_t9 + 0x389c4))(pcVar4)" (parenthesized_expression "(**(code **)(in_t9 + 0x389c4))" ( (pointer_expression "**(code **)(in_t9 + 0x389c4)" * (pointer_expression "*(code **)(in_t9 + 0x389c4)" * (cast_expression "(code **)(in_t9 + 0x389c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x389c4)" ( (binary_expression "in_t9 + 0x389c4" identifier + number_literal) ))))) )) (argument_list "(pcVar4)" ( identifier ))) ;) })) (expression_statement "pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b04);" (assignment_expression "pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b04)" identifier = (cast_expression "(char *)(*(int *)(in_t9 + 0x38a34) + -0x4b04)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(in_t9 + 0x38a34) + -0x4b04)" ( (binary_expression "*(int *)(in_t9 + 0x38a34) + -0x4b04" (pointer_expression "*(int *)(in_t9 + 0x38a34)" * (cast_expression "(int *)(in_t9 + 0x38a34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x38a34)" ( (binary_expression "in_t9 + 0x38a34" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pbVar25 = (byte *)0x0;" (assignment_expression "pbVar25 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      pbVar25 = (byte *)0x0;\n      pcStack_58 = (char *)0x0;\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8);\n    }" else (compound_statement "{\n      pbVar25 = (byte *)0x0;\n      pcStack_58 = (char *)0x0;\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8);\n    }" { (expression_statement "pbVar25 = (byte *)0x0;" (assignment_expression "pbVar25 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcStack_58 = (char *)0x0;" (assignment_expression "pcStack_58 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8);" (assignment_expression "pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8)" identifier = (cast_expression "(char *)(*(int *)(in_t9 + 0x38a34) + -0x4bb8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(in_t9 + 0x38a34) + -0x4bb8)" ( (binary_expression "*(int *)(in_t9 + 0x38a34) + -0x4bb8" (pointer_expression "*(int *)(in_t9 + 0x38a34)" * (cast_expression "(int *)(in_t9 + 0x38a34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x38a34)" ( (binary_expression "in_t9 + 0x38a34" identifier + number_literal) )))) + number_literal) )))) ;) }))) }))) (goto_statement "goto LAB_000477c4;" goto statement_identifier ;) (while_statement "while (ppcVar15 = *(char ***)(in_t9 + 0x38a34), *pcVar4 != '-') {\nLAB_00047bb8:\n    cVar11 = *pcVar4;\n    pcVar18 = pcVar4;\n    while (cVar11 != '\0') {\n      pbVar14 = pbVar20 + 1;\n      base64in[(int)pbVar20] = cVar11;\n      if (pbVar14 == (byte *)0x4) {\n        pbVar16 = (byte *)(**(code **)(in_t9 + 0x38ab4))(base64in,base64out);\n        pbVar20 = pbVar16 + (int)pbVar22;\n        if (iStack_50 < (int)pbVar20) {\n          iVar5 = (int)pbVar20 * 5;\n          if (iVar5 < 0) {\n            iVar5 = iVar5 + 3;\n          }\n          iStack_50 = (iVar5 >> 2) + 0x400;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x38a00))(pbVar25,iStack_50,1);\n        }\n        ppcVar15 = (char **)base64out;\n        (**(code **)(in_t9 + 0x39208))(pbVar25 + (int)pbVar22);\n        pbVar14 = pbVar1;\n        pbVar22 = pbVar20;\n      }\n      pcVar18 = pcVar18 + 1;\n      pbVar20 = pbVar14;\n      cVar11 = *pcVar18;\n    }\n    (**(code **)(in_t9 + 0x389c4))(pcVar4);\n    uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);\n    pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);\n    if (pcVar4 == (char *)0x0) {\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30);\n      goto LAB_000477c4;\n    }\n  }" while (parenthesized_expression "(ppcVar15 = *(char ***)(in_t9 + 0x38a34), *pcVar4 != '-')" ( (comma_expression "ppcVar15 = *(char ***)(in_t9 + 0x38a34), *pcVar4 != '-'" (assignment_expression "ppcVar15 = *(char ***)(in_t9 + 0x38a34)" identifier = (pointer_expression "*(char ***)(in_t9 + 0x38a34)" * (cast_expression "(char ***)(in_t9 + 0x38a34)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(in_t9 + 0x38a34)" ( (binary_expression "in_t9 + 0x38a34" identifier + number_literal) ))))) , (binary_expression "*pcVar4 != '-'" (pointer_expression "*pcVar4" * identifier) != (char_literal "'-'" ' character '))) )) (compound_statement "{\nLAB_00047bb8:\n    cVar11 = *pcVar4;\n    pcVar18 = pcVar4;\n    while (cVar11 != '\0') {\n      pbVar14 = pbVar20 + 1;\n      base64in[(int)pbVar20] = cVar11;\n      if (pbVar14 == (byte *)0x4) {\n        pbVar16 = (byte *)(**(code **)(in_t9 + 0x38ab4))(base64in,base64out);\n        pbVar20 = pbVar16 + (int)pbVar22;\n        if (iStack_50 < (int)pbVar20) {\n          iVar5 = (int)pbVar20 * 5;\n          if (iVar5 < 0) {\n            iVar5 = iVar5 + 3;\n          }\n          iStack_50 = (iVar5 >> 2) + 0x400;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x38a00))(pbVar25,iStack_50,1);\n        }\n        ppcVar15 = (char **)base64out;\n        (**(code **)(in_t9 + 0x39208))(pbVar25 + (int)pbVar22);\n        pbVar14 = pbVar1;\n        pbVar22 = pbVar20;\n      }\n      pcVar18 = pcVar18 + 1;\n      pbVar20 = pbVar14;\n      cVar11 = *pcVar18;\n    }\n    (**(code **)(in_t9 + 0x389c4))(pcVar4);\n    uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);\n    pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);\n    if (pcVar4 == (char *)0x0) {\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30);\n      goto LAB_000477c4;\n    }\n  }" { (labeled_statement "LAB_00047bb8:\n    cVar11 = *pcVar4;" statement_identifier : (expression_statement "cVar11 = *pcVar4;" (assignment_expression "cVar11 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;)) (expression_statement "pcVar18 = pcVar4;" (assignment_expression "pcVar18 = pcVar4" identifier = identifier) ;) (while_statement "while (cVar11 != '\0') {\n      pbVar14 = pbVar20 + 1;\n      base64in[(int)pbVar20] = cVar11;\n      if (pbVar14 == (byte *)0x4) {\n        pbVar16 = (byte *)(**(code **)(in_t9 + 0x38ab4))(base64in,base64out);\n        pbVar20 = pbVar16 + (int)pbVar22;\n        if (iStack_50 < (int)pbVar20) {\n          iVar5 = (int)pbVar20 * 5;\n          if (iVar5 < 0) {\n            iVar5 = iVar5 + 3;\n          }\n          iStack_50 = (iVar5 >> 2) + 0x400;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x38a00))(pbVar25,iStack_50,1);\n        }\n        ppcVar15 = (char **)base64out;\n        (**(code **)(in_t9 + 0x39208))(pbVar25 + (int)pbVar22);\n        pbVar14 = pbVar1;\n        pbVar22 = pbVar20;\n      }\n      pcVar18 = pcVar18 + 1;\n      pbVar20 = pbVar14;\n      cVar11 = *pcVar18;\n    }" while (parenthesized_expression "(cVar11 != '\0')" ( (binary_expression "cVar11 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pbVar14 = pbVar20 + 1;\n      base64in[(int)pbVar20] = cVar11;\n      if (pbVar14 == (byte *)0x4) {\n        pbVar16 = (byte *)(**(code **)(in_t9 + 0x38ab4))(base64in,base64out);\n        pbVar20 = pbVar16 + (int)pbVar22;\n        if (iStack_50 < (int)pbVar20) {\n          iVar5 = (int)pbVar20 * 5;\n          if (iVar5 < 0) {\n            iVar5 = iVar5 + 3;\n          }\n          iStack_50 = (iVar5 >> 2) + 0x400;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x38a00))(pbVar25,iStack_50,1);\n        }\n        ppcVar15 = (char **)base64out;\n        (**(code **)(in_t9 + 0x39208))(pbVar25 + (int)pbVar22);\n        pbVar14 = pbVar1;\n        pbVar22 = pbVar20;\n      }\n      pcVar18 = pcVar18 + 1;\n      pbVar20 = pbVar14;\n      cVar11 = *pcVar18;\n    }" { (expression_statement "pbVar14 = pbVar20 + 1;" (assignment_expression "pbVar14 = pbVar20 + 1" identifier = (binary_expression "pbVar20 + 1" identifier + number_literal)) ;) (expression_statement "base64in[(int)pbVar20] = cVar11;" (assignment_expression "base64in[(int)pbVar20] = cVar11" (subscript_expression "base64in[(int)pbVar20]" identifier [ (cast_expression "(int)pbVar20" ( (type_descriptor "int" primitive_type) ) identifier) ]) = identifier) ;) (if_statement "if (pbVar14 == (byte *)0x4) {\n        pbVar16 = (byte *)(**(code **)(in_t9 + 0x38ab4))(base64in,base64out);\n        pbVar20 = pbVar16 + (int)pbVar22;\n        if (iStack_50 < (int)pbVar20) {\n          iVar5 = (int)pbVar20 * 5;\n          if (iVar5 < 0) {\n            iVar5 = iVar5 + 3;\n          }\n          iStack_50 = (iVar5 >> 2) + 0x400;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x38a00))(pbVar25,iStack_50,1);\n        }\n        ppcVar15 = (char **)base64out;\n        (**(code **)(in_t9 + 0x39208))(pbVar25 + (int)pbVar22);\n        pbVar14 = pbVar1;\n        pbVar22 = pbVar20;\n      }" if (parenthesized_expression "(pbVar14 == (byte *)0x4)" ( (binary_expression "pbVar14 == (byte *)0x4" identifier == (cast_expression "(byte *)0x4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pbVar16 = (byte *)(**(code **)(in_t9 + 0x38ab4))(base64in,base64out);\n        pbVar20 = pbVar16 + (int)pbVar22;\n        if (iStack_50 < (int)pbVar20) {\n          iVar5 = (int)pbVar20 * 5;\n          if (iVar5 < 0) {\n            iVar5 = iVar5 + 3;\n          }\n          iStack_50 = (iVar5 >> 2) + 0x400;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x38a00))(pbVar25,iStack_50,1);\n        }\n        ppcVar15 = (char **)base64out;\n        (**(code **)(in_t9 + 0x39208))(pbVar25 + (int)pbVar22);\n        pbVar14 = pbVar1;\n        pbVar22 = pbVar20;\n      }" { (expression_statement "pbVar16 = (byte *)(**(code **)(in_t9 + 0x38ab4))(base64in,base64out);" (assignment_expression "pbVar16 = (byte *)(**(code **)(in_t9 + 0x38ab4))(base64in,base64out)" identifier = (cast_expression "(byte *)(**(code **)(in_t9 + 0x38ab4))(base64in,base64out)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(in_t9 + 0x38ab4))(base64in,base64out)" (parenthesized_expression "(**(code **)(in_t9 + 0x38ab4))" ( (pointer_expression "**(code **)(in_t9 + 0x38ab4)" * (pointer_expression "*(code **)(in_t9 + 0x38ab4)" * (cast_expression "(code **)(in_t9 + 0x38ab4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x38ab4)" ( (binary_expression "in_t9 + 0x38ab4" identifier + number_literal) ))))) )) (argument_list "(base64in,base64out)" ( identifier , identifier ))))) ;) (expression_statement "pbVar20 = pbVar16 + (int)pbVar22;" (assignment_expression "pbVar20 = pbVar16 + (int)pbVar22" identifier = (binary_expression "pbVar16 + (int)pbVar22" identifier + (cast_expression "(int)pbVar22" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iStack_50 < (int)pbVar20) {\n          iVar5 = (int)pbVar20 * 5;\n          if (iVar5 < 0) {\n            iVar5 = iVar5 + 3;\n          }\n          iStack_50 = (iVar5 >> 2) + 0x400;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x38a00))(pbVar25,iStack_50,1);\n        }" if (parenthesized_expression "(iStack_50 < (int)pbVar20)" ( (binary_expression "iStack_50 < (int)pbVar20" identifier < (cast_expression "(int)pbVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar5 = (int)pbVar20 * 5;\n          if (iVar5 < 0) {\n            iVar5 = iVar5 + 3;\n          }\n          iStack_50 = (iVar5 >> 2) + 0x400;\n          pbVar25 = (byte *)(**(code **)(in_t9 + 0x38a00))(pbVar25,iStack_50,1);\n        }" { (expression_statement "iVar5 = (int)pbVar20 * 5;" (assignment_expression "iVar5 = (int)pbVar20 * 5" identifier = (binary_expression "(int)pbVar20 * 5" (cast_expression "(int)pbVar20" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (iVar5 < 0) {\n            iVar5 = iVar5 + 3;\n          }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar5 = iVar5 + 3;\n          }" { (expression_statement "iVar5 = iVar5 + 3;" (assignment_expression "iVar5 = iVar5 + 3" identifier = (binary_expression "iVar5 + 3" identifier + number_literal)) ;) })) (expression_statement "iStack_50 = (iVar5 >> 2) + 0x400;" (assignment_expression "iStack_50 = (iVar5 >> 2) + 0x400" identifier = (binary_expression "(iVar5 >> 2) + 0x400" (parenthesized_expression "(iVar5 >> 2)" ( (binary_expression "iVar5 >> 2" identifier >> number_literal) )) + number_literal)) ;) (expression_statement "pbVar25 = (byte *)(**(code **)(in_t9 + 0x38a00))(pbVar25,iStack_50,1);" (assignment_expression "pbVar25 = (byte *)(**(code **)(in_t9 + 0x38a00))(pbVar25,iStack_50,1)" identifier = (cast_expression "(byte *)(**(code **)(in_t9 + 0x38a00))(pbVar25,iStack_50,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(in_t9 + 0x38a00))(pbVar25,iStack_50,1)" (parenthesized_expression "(**(code **)(in_t9 + 0x38a00))" ( (pointer_expression "**(code **)(in_t9 + 0x38a00)" * (pointer_expression "*(code **)(in_t9 + 0x38a00)" * (cast_expression "(code **)(in_t9 + 0x38a00)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x38a00)" ( (binary_expression "in_t9 + 0x38a00" identifier + number_literal) ))))) )) (argument_list "(pbVar25,iStack_50,1)" ( identifier , identifier , number_literal ))))) ;) })) (expression_statement "ppcVar15 = (char **)base64out;" (assignment_expression "ppcVar15 = (char **)base64out" identifier = (cast_expression "(char **)base64out" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "(**(code **)(in_t9 + 0x39208))(pbVar25 + (int)pbVar22);" (call_expression "(**(code **)(in_t9 + 0x39208))(pbVar25 + (int)pbVar22)" (parenthesized_expression "(**(code **)(in_t9 + 0x39208))" ( (pointer_expression "**(code **)(in_t9 + 0x39208)" * (pointer_expression "*(code **)(in_t9 + 0x39208)" * (cast_expression "(code **)(in_t9 + 0x39208)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x39208)" ( (binary_expression "in_t9 + 0x39208" identifier + number_literal) ))))) )) (argument_list "(pbVar25 + (int)pbVar22)" ( (binary_expression "pbVar25 + (int)pbVar22" identifier + (cast_expression "(int)pbVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "pbVar14 = pbVar1;" (assignment_expression "pbVar14 = pbVar1" identifier = identifier) ;) (expression_statement "pbVar22 = pbVar20;" (assignment_expression "pbVar22 = pbVar20" identifier = identifier) ;) })) (expression_statement "pcVar18 = pcVar18 + 1;" (assignment_expression "pcVar18 = pcVar18 + 1" identifier = (binary_expression "pcVar18 + 1" identifier + number_literal)) ;) (expression_statement "pbVar20 = pbVar14;" (assignment_expression "pbVar20 = pbVar14" identifier = identifier) ;) (expression_statement "cVar11 = *pcVar18;" (assignment_expression "cVar11 = *pcVar18" identifier = (pointer_expression "*pcVar18" * identifier)) ;) })) (expression_statement "(**(code **)(in_t9 + 0x389c4))(pcVar4);" (call_expression "(**(code **)(in_t9 + 0x389c4))(pcVar4)" (parenthesized_expression "(**(code **)(in_t9 + 0x389c4))" ( (pointer_expression "**(code **)(in_t9 + 0x389c4)" * (pointer_expression "*(code **)(in_t9 + 0x389c4)" * (cast_expression "(code **)(in_t9 + 0x389c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x389c4)" ( (binary_expression "in_t9 + 0x389c4" identifier + number_literal) ))))) )) (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "uVar3 = (**(code **)(in_t9 + 0x38d44))(fp);" (assignment_expression "uVar3 = (**(code **)(in_t9 + 0x38d44))(fp)" identifier = (call_expression "(**(code **)(in_t9 + 0x38d44))(fp)" (parenthesized_expression "(**(code **)(in_t9 + 0x38d44))" ( (pointer_expression "**(code **)(in_t9 + 0x38d44)" * (pointer_expression "*(code **)(in_t9 + 0x38d44)" * (cast_expression "(code **)(in_t9 + 0x38d44)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x38d44)" ( (binary_expression "in_t9 + 0x38d44" identifier + number_literal) ))))) )) (argument_list "(fp)" ( identifier )))) ;) (expression_statement "pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3);" (assignment_expression "pcVar4 = (char *)(**(code **)(in_t9 + 0x38d48))(uVar3)" identifier = (cast_expression "(char *)(**(code **)(in_t9 + 0x38d48))(uVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(in_t9 + 0x38d48))(uVar3)" (parenthesized_expression "(**(code **)(in_t9 + 0x38d48))" ( (pointer_expression "**(code **)(in_t9 + 0x38d48)" * (pointer_expression "*(code **)(in_t9 + 0x38d48)" * (cast_expression "(code **)(in_t9 + 0x38d48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x38d48)" ( (binary_expression "in_t9 + 0x38d48" identifier + number_literal) ))))) )) (argument_list "(uVar3)" ( identifier ))))) ;) (if_statement "if (pcVar4 == (char *)0x0) {\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30);\n      goto LAB_000477c4;\n    }" if (parenthesized_expression "(pcVar4 == (char *)0x0)" ( (binary_expression "pcVar4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30);\n      goto LAB_000477c4;\n    }" { (expression_statement "pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30);" (assignment_expression "pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30)" identifier = (cast_expression "(char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(in_t9 + 0x38a34) + -0x4b30)" ( (binary_expression "*(int *)(in_t9 + 0x38a34) + -0x4b30" (pointer_expression "*(int *)(in_t9 + 0x38a34)" * (cast_expression "(int *)(in_t9 + 0x38a34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x38a34)" ( (binary_expression "in_t9 + 0x38a34" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000477c4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00047a78:\n  ppcVar15 = ppcVar15 + -0x12ad;" statement_identifier : (expression_statement "ppcVar15 = ppcVar15 + -0x12ad;" (assignment_expression "ppcVar15 = ppcVar15 + -0x12ad" identifier = (binary_expression "ppcVar15 + -0x12ad" identifier + number_literal)) ;)) (expression_statement "iVar5 = (**(code **)(in_t9 + 0x391cc))(pcVar4);" (assignment_expression "iVar5 = (**(code **)(in_t9 + 0x391cc))(pcVar4)" identifier = (call_expression "(**(code **)(in_t9 + 0x391cc))(pcVar4)" (parenthesized_expression "(**(code **)(in_t9 + 0x391cc))" ( (pointer_expression "**(code **)(in_t9 + 0x391cc)" * (pointer_expression "*(code **)(in_t9 + 0x391cc)" * (cast_expression "(code **)(in_t9 + 0x391cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x391cc)" ( (binary_expression "in_t9 + 0x391cc" identifier + number_literal) ))))) )) (argument_list "(pcVar4)" ( identifier )))) ;) (if_statement "if (iVar5 == 0) {\n    (**(code **)(in_t9 + 0x389c4))(pcVar4);\n    pcVar4 = (char *)0x0;\n    if ((int)pbVar22 < 4) {\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b5c);\n    }\n    else {\n      ppcVar19 = (char **)(**(code **)(in_t9 + 0x38a98))\n                                    ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 |\n                                     (uint)pbVar25[3] | (uint)pbVar25[2] << 8);\n      if ((int)ppcVar19 < 0) {\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }\n      else {\n        if ((int)ppcVar19 < (int)(pbVar22 + -3)) {\n          pbVar16 = pbVar25 + 4;\n          if (algorithm != (char **)0x0) {\n            pcVar4 = (char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50);\n            *algorithm = pcVar4;\n            ppcVar15 = ppcVar19;\n          }\n          if (pub_blob_len != (int *)0x0) {\n            *pub_blob_len = (int)pbVar22;\n          }\n          if (commentptr == (char **)0x0) {\n            (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          }\n          else {\n            *commentptr = pcStack_58;\n          }\n          goto LAB_00047814;\n        }\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }\n    }\n  }\n  else {\n    pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30);\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    (**(code **)(in_t9 + 0x389c4))(pcVar4);\n    pcVar4 = (char *)0x0;\n    if ((int)pbVar22 < 4) {\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b5c);\n    }\n    else {\n      ppcVar19 = (char **)(**(code **)(in_t9 + 0x38a98))\n                                    ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 |\n                                     (uint)pbVar25[3] | (uint)pbVar25[2] << 8);\n      if ((int)ppcVar19 < 0) {\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }\n      else {\n        if ((int)ppcVar19 < (int)(pbVar22 + -3)) {\n          pbVar16 = pbVar25 + 4;\n          if (algorithm != (char **)0x0) {\n            pcVar4 = (char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50);\n            *algorithm = pcVar4;\n            ppcVar15 = ppcVar19;\n          }\n          if (pub_blob_len != (int *)0x0) {\n            *pub_blob_len = (int)pbVar22;\n          }\n          if (commentptr == (char **)0x0) {\n            (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          }\n          else {\n            *commentptr = pcStack_58;\n          }\n          goto LAB_00047814;\n        }\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }\n    }\n  }" { (expression_statement "(**(code **)(in_t9 + 0x389c4))(pcVar4);" (call_expression "(**(code **)(in_t9 + 0x389c4))(pcVar4)" (parenthesized_expression "(**(code **)(in_t9 + 0x389c4))" ( (pointer_expression "**(code **)(in_t9 + 0x389c4)" * (pointer_expression "*(code **)(in_t9 + 0x389c4)" * (cast_expression "(code **)(in_t9 + 0x389c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x389c4)" ( (binary_expression "in_t9 + 0x389c4" identifier + number_literal) ))))) )) (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "pcVar4 = (char *)0x0;" (assignment_expression "pcVar4 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((int)pbVar22 < 4) {\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b5c);\n    }\n    else {\n      ppcVar19 = (char **)(**(code **)(in_t9 + 0x38a98))\n                                    ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 |\n                                     (uint)pbVar25[3] | (uint)pbVar25[2] << 8);\n      if ((int)ppcVar19 < 0) {\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }\n      else {\n        if ((int)ppcVar19 < (int)(pbVar22 + -3)) {\n          pbVar16 = pbVar25 + 4;\n          if (algorithm != (char **)0x0) {\n            pcVar4 = (char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50);\n            *algorithm = pcVar4;\n            ppcVar15 = ppcVar19;\n          }\n          if (pub_blob_len != (int *)0x0) {\n            *pub_blob_len = (int)pbVar22;\n          }\n          if (commentptr == (char **)0x0) {\n            (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          }\n          else {\n            *commentptr = pcStack_58;\n          }\n          goto LAB_00047814;\n        }\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }\n    }" if (parenthesized_expression "((int)pbVar22 < 4)" ( (binary_expression "(int)pbVar22 < 4" (cast_expression "(int)pbVar22" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b5c);\n    }" { (expression_statement "pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b5c);" (assignment_expression "pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b5c)" identifier = (cast_expression "(char *)(*(int *)(in_t9 + 0x38a34) + -0x4b5c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(in_t9 + 0x38a34) + -0x4b5c)" ( (binary_expression "*(int *)(in_t9 + 0x38a34) + -0x4b5c" (pointer_expression "*(int *)(in_t9 + 0x38a34)" * (cast_expression "(int *)(in_t9 + 0x38a34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x38a34)" ( (binary_expression "in_t9 + 0x38a34" identifier + number_literal) )))) + number_literal) )))) ;) }) (else_clause "else {\n      ppcVar19 = (char **)(**(code **)(in_t9 + 0x38a98))\n                                    ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 |\n                                     (uint)pbVar25[3] | (uint)pbVar25[2] << 8);\n      if ((int)ppcVar19 < 0) {\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }\n      else {\n        if ((int)ppcVar19 < (int)(pbVar22 + -3)) {\n          pbVar16 = pbVar25 + 4;\n          if (algorithm != (char **)0x0) {\n            pcVar4 = (char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50);\n            *algorithm = pcVar4;\n            ppcVar15 = ppcVar19;\n          }\n          if (pub_blob_len != (int *)0x0) {\n            *pub_blob_len = (int)pbVar22;\n          }\n          if (commentptr == (char **)0x0) {\n            (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          }\n          else {\n            *commentptr = pcStack_58;\n          }\n          goto LAB_00047814;\n        }\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }\n    }" else (compound_statement "{\n      ppcVar19 = (char **)(**(code **)(in_t9 + 0x38a98))\n                                    ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 |\n                                     (uint)pbVar25[3] | (uint)pbVar25[2] << 8);\n      if ((int)ppcVar19 < 0) {\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }\n      else {\n        if ((int)ppcVar19 < (int)(pbVar22 + -3)) {\n          pbVar16 = pbVar25 + 4;\n          if (algorithm != (char **)0x0) {\n            pcVar4 = (char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50);\n            *algorithm = pcVar4;\n            ppcVar15 = ppcVar19;\n          }\n          if (pub_blob_len != (int *)0x0) {\n            *pub_blob_len = (int)pbVar22;\n          }\n          if (commentptr == (char **)0x0) {\n            (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          }\n          else {\n            *commentptr = pcStack_58;\n          }\n          goto LAB_00047814;\n        }\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }\n    }" { (expression_statement "ppcVar19 = (char **)(**(code **)(in_t9 + 0x38a98))\n                                    ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 |\n                                     (uint)pbVar25[3] | (uint)pbVar25[2] << 8);" (assignment_expression "ppcVar19 = (char **)(**(code **)(in_t9 + 0x38a98))\n                                    ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 |\n                                     (uint)pbVar25[3] | (uint)pbVar25[2] << 8)" identifier = (cast_expression "(char **)(**(code **)(in_t9 + 0x38a98))\n                                    ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 |\n                                     (uint)pbVar25[3] | (uint)pbVar25[2] << 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(in_t9 + 0x38a98))\n                                    ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 |\n                                     (uint)pbVar25[3] | (uint)pbVar25[2] << 8)" (parenthesized_expression "(**(code **)(in_t9 + 0x38a98))" ( (pointer_expression "**(code **)(in_t9 + 0x38a98)" * (pointer_expression "*(code **)(in_t9 + 0x38a98)" * (cast_expression "(code **)(in_t9 + 0x38a98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x38a98)" ( (binary_expression "in_t9 + 0x38a98" identifier + number_literal) ))))) )) (argument_list "((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 |\n                                     (uint)pbVar25[3] | (uint)pbVar25[2] << 8)" ( (binary_expression "(uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 |\n                                     (uint)pbVar25[3] | (uint)pbVar25[2] << 8" (binary_expression "(uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 |\n                                     (uint)pbVar25[3]" (binary_expression "(uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10" (binary_expression "(uint)*pbVar25 << 0x18" (binary_expression "(uint)*pbVar25" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal) | (binary_expression "(uint)pbVar25[1] << 0x10" (cast_expression "(uint)pbVar25[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar25[1]" identifier [ number_literal ])) << number_literal)) | (cast_expression "(uint)pbVar25[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar25[3]" identifier [ number_literal ]))) | (binary_expression "(uint)pbVar25[2] << 8" (cast_expression "(uint)pbVar25[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar25[2]" identifier [ number_literal ])) << number_literal)) ))))) ;) (if_statement "if ((int)ppcVar19 < 0) {\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }\n      else {\n        if ((int)ppcVar19 < (int)(pbVar22 + -3)) {\n          pbVar16 = pbVar25 + 4;\n          if (algorithm != (char **)0x0) {\n            pcVar4 = (char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50);\n            *algorithm = pcVar4;\n            ppcVar15 = ppcVar19;\n          }\n          if (pub_blob_len != (int *)0x0) {\n            *pub_blob_len = (int)pbVar22;\n          }\n          if (commentptr == (char **)0x0) {\n            (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          }\n          else {\n            *commentptr = pcStack_58;\n          }\n          goto LAB_00047814;\n        }\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }" if (parenthesized_expression "((int)ppcVar19 < 0)" ( (binary_expression "(int)ppcVar19 < 0" (cast_expression "(int)ppcVar19" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }" { (expression_statement "pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);" (assignment_expression "pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec)" identifier = (cast_expression "(char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(in_t9 + 0x38a34) + -0x4bec)" ( (binary_expression "*(int *)(in_t9 + 0x38a34) + -0x4bec" (pointer_expression "*(int *)(in_t9 + 0x38a34)" * (cast_expression "(int *)(in_t9 + 0x38a34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x38a34)" ( (binary_expression "in_t9 + 0x38a34" identifier + number_literal) )))) + number_literal) )))) ;) }) (else_clause "else {\n        if ((int)ppcVar19 < (int)(pbVar22 + -3)) {\n          pbVar16 = pbVar25 + 4;\n          if (algorithm != (char **)0x0) {\n            pcVar4 = (char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50);\n            *algorithm = pcVar4;\n            ppcVar15 = ppcVar19;\n          }\n          if (pub_blob_len != (int *)0x0) {\n            *pub_blob_len = (int)pbVar22;\n          }\n          if (commentptr == (char **)0x0) {\n            (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          }\n          else {\n            *commentptr = pcStack_58;\n          }\n          goto LAB_00047814;\n        }\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }" else (compound_statement "{\n        if ((int)ppcVar19 < (int)(pbVar22 + -3)) {\n          pbVar16 = pbVar25 + 4;\n          if (algorithm != (char **)0x0) {\n            pcVar4 = (char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50);\n            *algorithm = pcVar4;\n            ppcVar15 = ppcVar19;\n          }\n          if (pub_blob_len != (int *)0x0) {\n            *pub_blob_len = (int)pbVar22;\n          }\n          if (commentptr == (char **)0x0) {\n            (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          }\n          else {\n            *commentptr = pcStack_58;\n          }\n          goto LAB_00047814;\n        }\n        pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);\n      }" { (if_statement "if ((int)ppcVar19 < (int)(pbVar22 + -3)) {\n          pbVar16 = pbVar25 + 4;\n          if (algorithm != (char **)0x0) {\n            pcVar4 = (char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50);\n            *algorithm = pcVar4;\n            ppcVar15 = ppcVar19;\n          }\n          if (pub_blob_len != (int *)0x0) {\n            *pub_blob_len = (int)pbVar22;\n          }\n          if (commentptr == (char **)0x0) {\n            (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          }\n          else {\n            *commentptr = pcStack_58;\n          }\n          goto LAB_00047814;\n        }" if (parenthesized_expression "((int)ppcVar19 < (int)(pbVar22 + -3))" ( (binary_expression "(int)ppcVar19 < (int)(pbVar22 + -3)" (cast_expression "(int)ppcVar19" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(pbVar22 + -3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar22 + -3)" ( (binary_expression "pbVar22 + -3" identifier + number_literal) )))) )) (compound_statement "{\n          pbVar16 = pbVar25 + 4;\n          if (algorithm != (char **)0x0) {\n            pcVar4 = (char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50);\n            *algorithm = pcVar4;\n            ppcVar15 = ppcVar19;\n          }\n          if (pub_blob_len != (int *)0x0) {\n            *pub_blob_len = (int)pbVar22;\n          }\n          if (commentptr == (char **)0x0) {\n            (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          }\n          else {\n            *commentptr = pcStack_58;\n          }\n          goto LAB_00047814;\n        }" { (expression_statement "pbVar16 = pbVar25 + 4;" (assignment_expression "pbVar16 = pbVar25 + 4" identifier = (binary_expression "pbVar25 + 4" identifier + number_literal)) ;) (if_statement "if (algorithm != (char **)0x0) {\n            pcVar4 = (char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50);\n            *algorithm = pcVar4;\n            ppcVar15 = ppcVar19;\n          }" if (parenthesized_expression "(algorithm != (char **)0x0)" ( (binary_expression "algorithm != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n            pcVar4 = (char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50);\n            *algorithm = pcVar4;\n            ppcVar15 = ppcVar19;\n          }" { (expression_statement "pcVar4 = (char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50);" (assignment_expression "pcVar4 = (char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50)" identifier = (cast_expression "(char *)(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(in_t9 + 0x389b8))(*(int *)(in_t9 + 0x389a8) + 0x4a50)" (parenthesized_expression "(**(code **)(in_t9 + 0x389b8))" ( (pointer_expression "**(code **)(in_t9 + 0x389b8)" * (pointer_expression "*(code **)(in_t9 + 0x389b8)" * (cast_expression "(code **)(in_t9 + 0x389b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x389b8)" ( (binary_expression "in_t9 + 0x389b8" identifier + number_literal) ))))) )) (argument_list "(*(int *)(in_t9 + 0x389a8) + 0x4a50)" ( (binary_expression "*(int *)(in_t9 + 0x389a8) + 0x4a50" (pointer_expression "*(int *)(in_t9 + 0x389a8)" * (cast_expression "(int *)(in_t9 + 0x389a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x389a8)" ( (binary_expression "in_t9 + 0x389a8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*algorithm = pcVar4;" (assignment_expression "*algorithm = pcVar4" (pointer_expression "*algorithm" * identifier) = identifier) ;) (expression_statement "ppcVar15 = ppcVar19;" (assignment_expression "ppcVar15 = ppcVar19" identifier = identifier) ;) })) (if_statement "if (pub_blob_len != (int *)0x0) {\n            *pub_blob_len = (int)pbVar22;\n          }" if (parenthesized_expression "(pub_blob_len != (int *)0x0)" ( (binary_expression "pub_blob_len != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *pub_blob_len = (int)pbVar22;\n          }" { (expression_statement "*pub_blob_len = (int)pbVar22;" (assignment_expression "*pub_blob_len = (int)pbVar22" (pointer_expression "*pub_blob_len" * identifier) = (cast_expression "(int)pbVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (if_statement "if (commentptr == (char **)0x0) {\n            (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          }\n          else {\n            *commentptr = pcStack_58;\n          }" if (parenthesized_expression "(commentptr == (char **)0x0)" ( (binary_expression "commentptr == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n            (**(code **)(in_t9 + 0x389c4))(pcStack_58);\n          }" { (expression_statement "(**(code **)(in_t9 + 0x389c4))(pcStack_58);" (call_expression "(**(code **)(in_t9 + 0x389c4))(pcStack_58)" (parenthesized_expression "(**(code **)(in_t9 + 0x389c4))" ( (pointer_expression "**(code **)(in_t9 + 0x389c4)" * (pointer_expression "*(code **)(in_t9 + 0x389c4)" * (cast_expression "(code **)(in_t9 + 0x389c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x389c4)" ( (binary_expression "in_t9 + 0x389c4" identifier + number_literal) ))))) )) (argument_list "(pcStack_58)" ( identifier ))) ;) }) (else_clause "else {\n            *commentptr = pcStack_58;\n          }" else (compound_statement "{\n            *commentptr = pcStack_58;\n          }" { (expression_statement "*commentptr = pcStack_58;" (assignment_expression "*commentptr = pcStack_58" (pointer_expression "*commentptr" * identifier) = identifier) ;) }))) (goto_statement "goto LAB_00047814;" goto statement_identifier ;) })) (expression_statement "pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec);" (assignment_expression "pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec)" identifier = (cast_expression "(char *)(*(int *)(in_t9 + 0x38a34) + -0x4bec)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(in_t9 + 0x38a34) + -0x4bec)" ( (binary_expression "*(int *)(in_t9 + 0x38a34) + -0x4bec" (pointer_expression "*(int *)(in_t9 + 0x38a34)" * (cast_expression "(int *)(in_t9 + 0x38a34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x38a34)" ( (binary_expression "in_t9 + 0x38a34" identifier + number_literal) )))) + number_literal) )))) ;) }))) }))) }) (else_clause "else {\n    pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30);\n  }" else (compound_statement "{\n    pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30);\n  }" { (expression_statement "pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30);" (assignment_expression "pcVar18 = (char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30)" identifier = (cast_expression "(char *)(*(int *)(in_t9 + 0x38a34) + -0x4b30)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(in_t9 + 0x38a34) + -0x4b30)" ( (binary_expression "*(int *)(in_t9 + 0x38a34) + -0x4b30" (pointer_expression "*(int *)(in_t9 + 0x38a34)" * (cast_expression "(int *)(in_t9 + 0x38a34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x38a34)" ( (binary_expression "in_t9 + 0x38a34" identifier + number_literal) )))) + number_literal) )))) ;) }))) (labeled_statement "LAB_000477c4:\n  (**(code **)(in_t9 + 0x389c4))(pcVar4);" statement_identifier : (expression_statement "(**(code **)(in_t9 + 0x389c4))(pcVar4);" (call_expression "(**(code **)(in_t9 + 0x389c4))(pcVar4)" (parenthesized_expression "(**(code **)(in_t9 + 0x389c4))" ( (pointer_expression "**(code **)(in_t9 + 0x389c4)" * (pointer_expression "*(code **)(in_t9 + 0x389c4)" * (cast_expression "(code **)(in_t9 + 0x389c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x389c4)" ( (binary_expression "in_t9 + 0x389c4" identifier + number_literal) ))))) )) (argument_list "(pcVar4)" ( identifier ))) ;)) (expression_statement "(**(code **)(in_t9 + 0x389c4))(pcStack_58);" (call_expression "(**(code **)(in_t9 + 0x389c4))(pcStack_58)" (parenthesized_expression "(**(code **)(in_t9 + 0x389c4))" ( (pointer_expression "**(code **)(in_t9 + 0x389c4)" * (pointer_expression "*(code **)(in_t9 + 0x389c4)" * (cast_expression "(code **)(in_t9 + 0x389c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x389c4)" ( (binary_expression "in_t9 + 0x389c4" identifier + number_literal) ))))) )) (argument_list "(pcStack_58)" ( identifier ))) ;) (expression_statement "(**(code **)(in_t9 + 0x389c4))(pbVar25);" (call_expression "(**(code **)(in_t9 + 0x389c4))(pbVar25)" (parenthesized_expression "(**(code **)(in_t9 + 0x389c4))" ( (pointer_expression "**(code **)(in_t9 + 0x389c4)" * (pointer_expression "*(code **)(in_t9 + 0x389c4)" * (cast_expression "(code **)(in_t9 + 0x389c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x389c4)" ( (binary_expression "in_t9 + 0x389c4" identifier + number_literal) ))))) )) (argument_list "(pbVar25)" ( identifier ))) ;) (if_statement "if (errorstr == (char **)0x0) {\n    pbVar25 = (byte *)0x0;\n  }\n  else {\n    *errorstr = pcVar18;\n    pbVar25 = (byte *)0x0;\n  }" if (parenthesized_expression "(errorstr == (char **)0x0)" ( (binary_expression "errorstr == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    pbVar25 = (byte *)0x0;\n  }" { (expression_statement "pbVar25 = (byte *)0x0;" (assignment_expression "pbVar25 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    *errorstr = pcVar18;\n    pbVar25 = (byte *)0x0;\n  }" else (compound_statement "{\n    *errorstr = pcVar18;\n    pbVar25 = (byte *)0x0;\n  }" { (expression_statement "*errorstr = pcVar18;" (assignment_expression "*errorstr = pcVar18" (pointer_expression "*errorstr" * identifier) = identifier) ;) (expression_statement "pbVar25 = (byte *)0x0;" (assignment_expression "pbVar25 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_00047814:\n  if (iVar2 == **(int **)(in_t9 + 0x39258)) {\n    return pbVar25;\n  }" statement_identifier : (if_statement "if (iVar2 == **(int **)(in_t9 + 0x39258)) {\n    return pbVar25;\n  }" if (parenthesized_expression "(iVar2 == **(int **)(in_t9 + 0x39258))" ( (binary_expression "iVar2 == **(int **)(in_t9 + 0x39258)" identifier == (pointer_expression "**(int **)(in_t9 + 0x39258)" * (pointer_expression "*(int **)(in_t9 + 0x39258)" * (cast_expression "(int **)(in_t9 + 0x39258)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x39258)" ( (binary_expression "in_t9 + 0x39258" identifier + number_literal) )))))) )) (compound_statement "{\n    return pbVar25;\n  }" { (return_statement "return pbVar25;" return identifier ;) }))) (expression_statement "pcVar23 = *(code **)(in_t9 + 0x39114);" (assignment_expression "pcVar23 = *(code **)(in_t9 + 0x39114)" identifier = (pointer_expression "*(code **)(in_t9 + 0x39114)" * (cast_expression "(code **)(in_t9 + 0x39114)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x39114)" ( (binary_expression "in_t9 + 0x39114" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar3 = (**(code **)(pcVar23 + 0x38728))();" (assignment_expression "uVar3 = (**(code **)(pcVar23 + 0x38728))()" identifier = (call_expression "(**(code **)(pcVar23 + 0x38728))()" (parenthesized_expression "(**(code **)(pcVar23 + 0x38728))" ( (pointer_expression "**(code **)(pcVar23 + 0x38728)" * (pointer_expression "*(code **)(pcVar23 + 0x38728)" * (cast_expression "(code **)(pcVar23 + 0x38728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x38728)" ( (binary_expression "pcVar23 + 0x38728" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar3 = (**(code **)(pcVar23 + 0x3872c))(uVar3);" (assignment_expression "uVar3 = (**(code **)(pcVar23 + 0x3872c))(uVar3)" identifier = (call_expression "(**(code **)(pcVar23 + 0x3872c))(uVar3)" (parenthesized_expression "(**(code **)(pcVar23 + 0x3872c))" ( (pointer_expression "**(code **)(pcVar23 + 0x3872c)" * (pointer_expression "*(code **)(pcVar23 + 0x3872c)" * (cast_expression "(code **)(pcVar23 + 0x3872c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x3872c)" ( (binary_expression "pcVar23 + 0x3872c" identifier + number_literal) ))))) )) (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "puVar8 = (undefined1 *)(**(code **)(pcVar23 + 0x38b40))(uVar3,0x20);" (assignment_expression "puVar8 = (undefined1 *)(**(code **)(pcVar23 + 0x38b40))(uVar3,0x20)" identifier = (cast_expression "(undefined1 *)(**(code **)(pcVar23 + 0x38b40))(uVar3,0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x38b40))(uVar3,0x20)" (parenthesized_expression "(**(code **)(pcVar23 + 0x38b40))" ( (pointer_expression "**(code **)(pcVar23 + 0x38b40)" * (pointer_expression "*(code **)(pcVar23 + 0x38b40)" * (cast_expression "(code **)(pcVar23 + 0x38b40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x38b40)" ( (binary_expression "pcVar23 + 0x38b40" identifier + number_literal) ))))) )) (argument_list "(uVar3,0x20)" ( identifier , number_literal ))))) ;) (if_statement "if (puVar8 == (undefined1 *)0x0) {\n    iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a20;\n    pbVar25 = (byte *)0x0;\n    pcVar4 = (char *)0x0;\n  }\n  else {\n    pcVar18 = puVar8 + 1;\n    *puVar8 = 0;\n    pcVar4 = (char *)(**(code **)(pcVar23 + 0x38b40))(pcVar18,0x20);\n    if (pcVar4 != (char *)0x0) {\n      *pcVar4 = '\0';\n      pcVar4 = (char *)(**(code **)(pcVar23 + 0x383e0))(pcVar4 + 1);\n    }\n    uVar9 = (**(code **)(pcVar23 + 0x38bdc))(pcVar18);\n    iVar2 = (uVar9 >> 2) * 3;\n    pbVar25 = (byte *)(**(code **)(pcVar23 + 0x383b8))(iVar2,1);\n    iVar5 = 0;\n    while( true ) {\n      iVar10 = (**(code **)(pcVar23 + 0x38ba0))(pcVar18,0,4);\n      if (iVar10 != 0) break;\n      if (iVar2 <= iVar5 + 2) {\n        (**(code **)(pcVar23 + 0x389cc))\n                  (*(int *)(pcVar23 + 0x38418) + -0x49f8,*(int *)(pcVar23 + 0x38418) + -0x4e7c,0x441\n                   ,*(int *)(pcVar23 + 0x38418) + -0x46b0);\n        break;\n      }\n      iVar10 = (**(code **)(pcVar23 + 0x38498))(pcVar18,pbVar25 + iVar5);\n      iVar5 = iVar5 + iVar10;\n      pcVar18 = pcVar18 + 4;\n    }\n    if (*pcVar18 == '\0') {\n      uVar9 = (**(code **)(pcVar23 + 0x38bdc))(uVar3);\n      if ((int)(uVar9 + 3) < iVar5) {\n        if (uVar9 == ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 | (uint)pbVar25[3] |\n                     (uint)pbVar25[2] << 8)) {\n          iVar2 = (**(code **)(pcVar23 + 0x38b88))(pbVar25 + 4,uVar3,uVar9);\n          if (iVar2 == 0) {\n            if (ppcVar15 != (char **)0x0) {\n              pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3);\n              *ppcVar15 = pcVar18;\n            }\n            if (pbVar16 != (byte *)0x0) {\n              *(int *)pbVar16 = iVar5;\n            }\n            if (ppcVar17 == (char **)0x0) {\n              (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n            }\n            else {\n              *ppcVar17 = pcVar4;\n            }\n            (**(code **)(pcVar23 + 0x383a8))(uVar3);\n            return pbVar25;\n          }\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a5c;\n    }\n  }" if (parenthesized_expression "(puVar8 == (undefined1 *)0x0)" ( (binary_expression "puVar8 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a20;\n    pbVar25 = (byte *)0x0;\n    pcVar4 = (char *)0x0;\n  }" { (expression_statement "iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a20;" (assignment_expression "iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a20" identifier = (binary_expression "*(int *)(pcVar23 + 0x38418) + -0x4a20" (pointer_expression "*(int *)(pcVar23 + 0x38418)" * (cast_expression "(int *)(pcVar23 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x38418)" ( (binary_expression "pcVar23 + 0x38418" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pbVar25 = (byte *)0x0;" (assignment_expression "pbVar25 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar4 = (char *)0x0;" (assignment_expression "pcVar4 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pcVar18 = puVar8 + 1;\n    *puVar8 = 0;\n    pcVar4 = (char *)(**(code **)(pcVar23 + 0x38b40))(pcVar18,0x20);\n    if (pcVar4 != (char *)0x0) {\n      *pcVar4 = '\0';\n      pcVar4 = (char *)(**(code **)(pcVar23 + 0x383e0))(pcVar4 + 1);\n    }\n    uVar9 = (**(code **)(pcVar23 + 0x38bdc))(pcVar18);\n    iVar2 = (uVar9 >> 2) * 3;\n    pbVar25 = (byte *)(**(code **)(pcVar23 + 0x383b8))(iVar2,1);\n    iVar5 = 0;\n    while( true ) {\n      iVar10 = (**(code **)(pcVar23 + 0x38ba0))(pcVar18,0,4);\n      if (iVar10 != 0) break;\n      if (iVar2 <= iVar5 + 2) {\n        (**(code **)(pcVar23 + 0x389cc))\n                  (*(int *)(pcVar23 + 0x38418) + -0x49f8,*(int *)(pcVar23 + 0x38418) + -0x4e7c,0x441\n                   ,*(int *)(pcVar23 + 0x38418) + -0x46b0);\n        break;\n      }\n      iVar10 = (**(code **)(pcVar23 + 0x38498))(pcVar18,pbVar25 + iVar5);\n      iVar5 = iVar5 + iVar10;\n      pcVar18 = pcVar18 + 4;\n    }\n    if (*pcVar18 == '\0') {\n      uVar9 = (**(code **)(pcVar23 + 0x38bdc))(uVar3);\n      if ((int)(uVar9 + 3) < iVar5) {\n        if (uVar9 == ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 | (uint)pbVar25[3] |\n                     (uint)pbVar25[2] << 8)) {\n          iVar2 = (**(code **)(pcVar23 + 0x38b88))(pbVar25 + 4,uVar3,uVar9);\n          if (iVar2 == 0) {\n            if (ppcVar15 != (char **)0x0) {\n              pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3);\n              *ppcVar15 = pcVar18;\n            }\n            if (pbVar16 != (byte *)0x0) {\n              *(int *)pbVar16 = iVar5;\n            }\n            if (ppcVar17 == (char **)0x0) {\n              (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n            }\n            else {\n              *ppcVar17 = pcVar4;\n            }\n            (**(code **)(pcVar23 + 0x383a8))(uVar3);\n            return pbVar25;\n          }\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a5c;\n    }\n  }" else (compound_statement "{\n    pcVar18 = puVar8 + 1;\n    *puVar8 = 0;\n    pcVar4 = (char *)(**(code **)(pcVar23 + 0x38b40))(pcVar18,0x20);\n    if (pcVar4 != (char *)0x0) {\n      *pcVar4 = '\0';\n      pcVar4 = (char *)(**(code **)(pcVar23 + 0x383e0))(pcVar4 + 1);\n    }\n    uVar9 = (**(code **)(pcVar23 + 0x38bdc))(pcVar18);\n    iVar2 = (uVar9 >> 2) * 3;\n    pbVar25 = (byte *)(**(code **)(pcVar23 + 0x383b8))(iVar2,1);\n    iVar5 = 0;\n    while( true ) {\n      iVar10 = (**(code **)(pcVar23 + 0x38ba0))(pcVar18,0,4);\n      if (iVar10 != 0) break;\n      if (iVar2 <= iVar5 + 2) {\n        (**(code **)(pcVar23 + 0x389cc))\n                  (*(int *)(pcVar23 + 0x38418) + -0x49f8,*(int *)(pcVar23 + 0x38418) + -0x4e7c,0x441\n                   ,*(int *)(pcVar23 + 0x38418) + -0x46b0);\n        break;\n      }\n      iVar10 = (**(code **)(pcVar23 + 0x38498))(pcVar18,pbVar25 + iVar5);\n      iVar5 = iVar5 + iVar10;\n      pcVar18 = pcVar18 + 4;\n    }\n    if (*pcVar18 == '\0') {\n      uVar9 = (**(code **)(pcVar23 + 0x38bdc))(uVar3);\n      if ((int)(uVar9 + 3) < iVar5) {\n        if (uVar9 == ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 | (uint)pbVar25[3] |\n                     (uint)pbVar25[2] << 8)) {\n          iVar2 = (**(code **)(pcVar23 + 0x38b88))(pbVar25 + 4,uVar3,uVar9);\n          if (iVar2 == 0) {\n            if (ppcVar15 != (char **)0x0) {\n              pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3);\n              *ppcVar15 = pcVar18;\n            }\n            if (pbVar16 != (byte *)0x0) {\n              *(int *)pbVar16 = iVar5;\n            }\n            if (ppcVar17 == (char **)0x0) {\n              (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n            }\n            else {\n              *ppcVar17 = pcVar4;\n            }\n            (**(code **)(pcVar23 + 0x383a8))(uVar3);\n            return pbVar25;\n          }\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a5c;\n    }\n  }" { (expression_statement "pcVar18 = puVar8 + 1;" (assignment_expression "pcVar18 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ;) (expression_statement "*puVar8 = 0;" (assignment_expression "*puVar8 = 0" (pointer_expression "*puVar8" * identifier) = number_literal) ;) (expression_statement "pcVar4 = (char *)(**(code **)(pcVar23 + 0x38b40))(pcVar18,0x20);" (assignment_expression "pcVar4 = (char *)(**(code **)(pcVar23 + 0x38b40))(pcVar18,0x20)" identifier = (cast_expression "(char *)(**(code **)(pcVar23 + 0x38b40))(pcVar18,0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x38b40))(pcVar18,0x20)" (parenthesized_expression "(**(code **)(pcVar23 + 0x38b40))" ( (pointer_expression "**(code **)(pcVar23 + 0x38b40)" * (pointer_expression "*(code **)(pcVar23 + 0x38b40)" * (cast_expression "(code **)(pcVar23 + 0x38b40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x38b40)" ( (binary_expression "pcVar23 + 0x38b40" identifier + number_literal) ))))) )) (argument_list "(pcVar18,0x20)" ( identifier , number_literal ))))) ;) (if_statement "if (pcVar4 != (char *)0x0) {\n      *pcVar4 = '\0';\n      pcVar4 = (char *)(**(code **)(pcVar23 + 0x383e0))(pcVar4 + 1);\n    }" if (parenthesized_expression "(pcVar4 != (char *)0x0)" ( (binary_expression "pcVar4 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *pcVar4 = '\0';\n      pcVar4 = (char *)(**(code **)(pcVar23 + 0x383e0))(pcVar4 + 1);\n    }" { (expression_statement "*pcVar4 = '\0';" (assignment_expression "*pcVar4 = '\0'" (pointer_expression "*pcVar4" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar4 = (char *)(**(code **)(pcVar23 + 0x383e0))(pcVar4 + 1);" (assignment_expression "pcVar4 = (char *)(**(code **)(pcVar23 + 0x383e0))(pcVar4 + 1)" identifier = (cast_expression "(char *)(**(code **)(pcVar23 + 0x383e0))(pcVar4 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x383e0))(pcVar4 + 1)" (parenthesized_expression "(**(code **)(pcVar23 + 0x383e0))" ( (pointer_expression "**(code **)(pcVar23 + 0x383e0)" * (pointer_expression "*(code **)(pcVar23 + 0x383e0)" * (cast_expression "(code **)(pcVar23 + 0x383e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x383e0)" ( (binary_expression "pcVar23 + 0x383e0" identifier + number_literal) ))))) )) (argument_list "(pcVar4 + 1)" ( (binary_expression "pcVar4 + 1" identifier + number_literal) ))))) ;) })) (expression_statement "uVar9 = (**(code **)(pcVar23 + 0x38bdc))(pcVar18);" (assignment_expression "uVar9 = (**(code **)(pcVar23 + 0x38bdc))(pcVar18)" identifier = (call_expression "(**(code **)(pcVar23 + 0x38bdc))(pcVar18)" (parenthesized_expression "(**(code **)(pcVar23 + 0x38bdc))" ( (pointer_expression "**(code **)(pcVar23 + 0x38bdc)" * (pointer_expression "*(code **)(pcVar23 + 0x38bdc)" * (cast_expression "(code **)(pcVar23 + 0x38bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x38bdc)" ( (binary_expression "pcVar23 + 0x38bdc" identifier + number_literal) ))))) )) (argument_list "(pcVar18)" ( identifier )))) ;) (expression_statement "iVar2 = (uVar9 >> 2) * 3;" (assignment_expression "iVar2 = (uVar9 >> 2) * 3" identifier = (binary_expression "(uVar9 >> 2) * 3" (parenthesized_expression "(uVar9 >> 2)" ( (binary_expression "uVar9 >> 2" identifier >> number_literal) )) * number_literal)) ;) (expression_statement "pbVar25 = (byte *)(**(code **)(pcVar23 + 0x383b8))(iVar2,1);" (assignment_expression "pbVar25 = (byte *)(**(code **)(pcVar23 + 0x383b8))(iVar2,1)" identifier = (cast_expression "(byte *)(**(code **)(pcVar23 + 0x383b8))(iVar2,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x383b8))(iVar2,1)" (parenthesized_expression "(**(code **)(pcVar23 + 0x383b8))" ( (pointer_expression "**(code **)(pcVar23 + 0x383b8)" * (pointer_expression "*(code **)(pcVar23 + 0x383b8)" * (cast_expression "(code **)(pcVar23 + 0x383b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x383b8)" ( (binary_expression "pcVar23 + 0x383b8" identifier + number_literal) ))))) )) (argument_list "(iVar2,1)" ( identifier , number_literal ))))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n      iVar10 = (**(code **)(pcVar23 + 0x38ba0))(pcVar18,0,4);\n      if (iVar10 != 0) break;\n      if (iVar2 <= iVar5 + 2) {\n        (**(code **)(pcVar23 + 0x389cc))\n                  (*(int *)(pcVar23 + 0x38418) + -0x49f8,*(int *)(pcVar23 + 0x38418) + -0x4e7c,0x441\n                   ,*(int *)(pcVar23 + 0x38418) + -0x46b0);\n        break;\n      }\n      iVar10 = (**(code **)(pcVar23 + 0x38498))(pcVar18,pbVar25 + iVar5);\n      iVar5 = iVar5 + iVar10;\n      pcVar18 = pcVar18 + 4;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar10 = (**(code **)(pcVar23 + 0x38ba0))(pcVar18,0,4);\n      if (iVar10 != 0) break;\n      if (iVar2 <= iVar5 + 2) {\n        (**(code **)(pcVar23 + 0x389cc))\n                  (*(int *)(pcVar23 + 0x38418) + -0x49f8,*(int *)(pcVar23 + 0x38418) + -0x4e7c,0x441\n                   ,*(int *)(pcVar23 + 0x38418) + -0x46b0);\n        break;\n      }\n      iVar10 = (**(code **)(pcVar23 + 0x38498))(pcVar18,pbVar25 + iVar5);\n      iVar5 = iVar5 + iVar10;\n      pcVar18 = pcVar18 + 4;\n    }" { (expression_statement "iVar10 = (**(code **)(pcVar23 + 0x38ba0))(pcVar18,0,4);" (assignment_expression "iVar10 = (**(code **)(pcVar23 + 0x38ba0))(pcVar18,0,4)" identifier = (call_expression "(**(code **)(pcVar23 + 0x38ba0))(pcVar18,0,4)" (parenthesized_expression "(**(code **)(pcVar23 + 0x38ba0))" ( (pointer_expression "**(code **)(pcVar23 + 0x38ba0)" * (pointer_expression "*(code **)(pcVar23 + 0x38ba0)" * (cast_expression "(code **)(pcVar23 + 0x38ba0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x38ba0)" ( (binary_expression "pcVar23 + 0x38ba0" identifier + number_literal) ))))) )) (argument_list "(pcVar18,0,4)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar10 != 0) break;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (iVar2 <= iVar5 + 2) {\n        (**(code **)(pcVar23 + 0x389cc))\n                  (*(int *)(pcVar23 + 0x38418) + -0x49f8,*(int *)(pcVar23 + 0x38418) + -0x4e7c,0x441\n                   ,*(int *)(pcVar23 + 0x38418) + -0x46b0);\n        break;\n      }" if (parenthesized_expression "(iVar2 <= iVar5 + 2)" ( (binary_expression "iVar2 <= iVar5 + 2" identifier <= (binary_expression "iVar5 + 2" identifier + number_literal)) )) (compound_statement "{\n        (**(code **)(pcVar23 + 0x389cc))\n                  (*(int *)(pcVar23 + 0x38418) + -0x49f8,*(int *)(pcVar23 + 0x38418) + -0x4e7c,0x441\n                   ,*(int *)(pcVar23 + 0x38418) + -0x46b0);\n        break;\n      }" { (expression_statement "(**(code **)(pcVar23 + 0x389cc))\n                  (*(int *)(pcVar23 + 0x38418) + -0x49f8,*(int *)(pcVar23 + 0x38418) + -0x4e7c,0x441\n                   ,*(int *)(pcVar23 + 0x38418) + -0x46b0);" (call_expression "(**(code **)(pcVar23 + 0x389cc))\n                  (*(int *)(pcVar23 + 0x38418) + -0x49f8,*(int *)(pcVar23 + 0x38418) + -0x4e7c,0x441\n                   ,*(int *)(pcVar23 + 0x38418) + -0x46b0)" (parenthesized_expression "(**(code **)(pcVar23 + 0x389cc))" ( (pointer_expression "**(code **)(pcVar23 + 0x389cc)" * (pointer_expression "*(code **)(pcVar23 + 0x389cc)" * (cast_expression "(code **)(pcVar23 + 0x389cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x389cc)" ( (binary_expression "pcVar23 + 0x389cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar23 + 0x38418) + -0x49f8,*(int *)(pcVar23 + 0x38418) + -0x4e7c,0x441\n                   ,*(int *)(pcVar23 + 0x38418) + -0x46b0)" ( (binary_expression "*(int *)(pcVar23 + 0x38418) + -0x49f8" (pointer_expression "*(int *)(pcVar23 + 0x38418)" * (cast_expression "(int *)(pcVar23 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x38418)" ( (binary_expression "pcVar23 + 0x38418" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar23 + 0x38418) + -0x4e7c" (pointer_expression "*(int *)(pcVar23 + 0x38418)" * (cast_expression "(int *)(pcVar23 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x38418)" ( (binary_expression "pcVar23 + 0x38418" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar23 + 0x38418) + -0x46b0" (pointer_expression "*(int *)(pcVar23 + 0x38418)" * (cast_expression "(int *)(pcVar23 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x38418)" ( (binary_expression "pcVar23 + 0x38418" identifier + number_literal) )))) + number_literal) ))) ;) (break_statement "break;" break ;) })) (expression_statement "iVar10 = (**(code **)(pcVar23 + 0x38498))(pcVar18,pbVar25 + iVar5);" (assignment_expression "iVar10 = (**(code **)(pcVar23 + 0x38498))(pcVar18,pbVar25 + iVar5)" identifier = (call_expression "(**(code **)(pcVar23 + 0x38498))(pcVar18,pbVar25 + iVar5)" (parenthesized_expression "(**(code **)(pcVar23 + 0x38498))" ( (pointer_expression "**(code **)(pcVar23 + 0x38498)" * (pointer_expression "*(code **)(pcVar23 + 0x38498)" * (cast_expression "(code **)(pcVar23 + 0x38498)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x38498)" ( (binary_expression "pcVar23 + 0x38498" identifier + number_literal) ))))) )) (argument_list "(pcVar18,pbVar25 + iVar5)" ( identifier , (binary_expression "pbVar25 + iVar5" identifier + identifier) )))) ;) (expression_statement "iVar5 = iVar5 + iVar10;" (assignment_expression "iVar5 = iVar5 + iVar10" identifier = (binary_expression "iVar5 + iVar10" identifier + identifier)) ;) (expression_statement "pcVar18 = pcVar18 + 4;" (assignment_expression "pcVar18 = pcVar18 + 4" identifier = (binary_expression "pcVar18 + 4" identifier + number_literal)) ;) })) (if_statement "if (*pcVar18 == '\0') {\n      uVar9 = (**(code **)(pcVar23 + 0x38bdc))(uVar3);\n      if ((int)(uVar9 + 3) < iVar5) {\n        if (uVar9 == ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 | (uint)pbVar25[3] |\n                     (uint)pbVar25[2] << 8)) {\n          iVar2 = (**(code **)(pcVar23 + 0x38b88))(pbVar25 + 4,uVar3,uVar9);\n          if (iVar2 == 0) {\n            if (ppcVar15 != (char **)0x0) {\n              pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3);\n              *ppcVar15 = pcVar18;\n            }\n            if (pbVar16 != (byte *)0x0) {\n              *(int *)pbVar16 = iVar5;\n            }\n            if (ppcVar17 == (char **)0x0) {\n              (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n            }\n            else {\n              *ppcVar17 = pcVar4;\n            }\n            (**(code **)(pcVar23 + 0x383a8))(uVar3);\n            return pbVar25;\n          }\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a5c;\n    }" if (parenthesized_expression "(*pcVar18 == '\0')" ( (binary_expression "*pcVar18 == '\0'" (pointer_expression "*pcVar18" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar9 = (**(code **)(pcVar23 + 0x38bdc))(uVar3);\n      if ((int)(uVar9 + 3) < iVar5) {\n        if (uVar9 == ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 | (uint)pbVar25[3] |\n                     (uint)pbVar25[2] << 8)) {\n          iVar2 = (**(code **)(pcVar23 + 0x38b88))(pbVar25 + 4,uVar3,uVar9);\n          if (iVar2 == 0) {\n            if (ppcVar15 != (char **)0x0) {\n              pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3);\n              *ppcVar15 = pcVar18;\n            }\n            if (pbVar16 != (byte *)0x0) {\n              *(int *)pbVar16 = iVar5;\n            }\n            if (ppcVar17 == (char **)0x0) {\n              (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n            }\n            else {\n              *ppcVar17 = pcVar4;\n            }\n            (**(code **)(pcVar23 + 0x383a8))(uVar3);\n            return pbVar25;\n          }\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n      }\n    }" { (expression_statement "uVar9 = (**(code **)(pcVar23 + 0x38bdc))(uVar3);" (assignment_expression "uVar9 = (**(code **)(pcVar23 + 0x38bdc))(uVar3)" identifier = (call_expression "(**(code **)(pcVar23 + 0x38bdc))(uVar3)" (parenthesized_expression "(**(code **)(pcVar23 + 0x38bdc))" ( (pointer_expression "**(code **)(pcVar23 + 0x38bdc)" * (pointer_expression "*(code **)(pcVar23 + 0x38bdc)" * (cast_expression "(code **)(pcVar23 + 0x38bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x38bdc)" ( (binary_expression "pcVar23 + 0x38bdc" identifier + number_literal) ))))) )) (argument_list "(uVar3)" ( identifier )))) ;) (if_statement "if ((int)(uVar9 + 3) < iVar5) {\n        if (uVar9 == ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 | (uint)pbVar25[3] |\n                     (uint)pbVar25[2] << 8)) {\n          iVar2 = (**(code **)(pcVar23 + 0x38b88))(pbVar25 + 4,uVar3,uVar9);\n          if (iVar2 == 0) {\n            if (ppcVar15 != (char **)0x0) {\n              pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3);\n              *ppcVar15 = pcVar18;\n            }\n            if (pbVar16 != (byte *)0x0) {\n              *(int *)pbVar16 = iVar5;\n            }\n            if (ppcVar17 == (char **)0x0) {\n              (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n            }\n            else {\n              *ppcVar17 = pcVar4;\n            }\n            (**(code **)(pcVar23 + 0x383a8))(uVar3);\n            return pbVar25;\n          }\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n      }" if (parenthesized_expression "((int)(uVar9 + 3) < iVar5)" ( (binary_expression "(int)(uVar9 + 3) < iVar5" (cast_expression "(int)(uVar9 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar9 + 3)" ( (binary_expression "uVar9 + 3" identifier + number_literal) ))) < identifier) )) (compound_statement "{\n        if (uVar9 == ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 | (uint)pbVar25[3] |\n                     (uint)pbVar25[2] << 8)) {\n          iVar2 = (**(code **)(pcVar23 + 0x38b88))(pbVar25 + 4,uVar3,uVar9);\n          if (iVar2 == 0) {\n            if (ppcVar15 != (char **)0x0) {\n              pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3);\n              *ppcVar15 = pcVar18;\n            }\n            if (pbVar16 != (byte *)0x0) {\n              *(int *)pbVar16 = iVar5;\n            }\n            if (ppcVar17 == (char **)0x0) {\n              (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n            }\n            else {\n              *ppcVar17 = pcVar4;\n            }\n            (**(code **)(pcVar23 + 0x383a8))(uVar3);\n            return pbVar25;\n          }\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n      }" { (if_statement "if (uVar9 == ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 | (uint)pbVar25[3] |\n                     (uint)pbVar25[2] << 8)) {\n          iVar2 = (**(code **)(pcVar23 + 0x38b88))(pbVar25 + 4,uVar3,uVar9);\n          if (iVar2 == 0) {\n            if (ppcVar15 != (char **)0x0) {\n              pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3);\n              *ppcVar15 = pcVar18;\n            }\n            if (pbVar16 != (byte *)0x0) {\n              *(int *)pbVar16 = iVar5;\n            }\n            if (ppcVar17 == (char **)0x0) {\n              (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n            }\n            else {\n              *ppcVar17 = pcVar4;\n            }\n            (**(code **)(pcVar23 + 0x383a8))(uVar3);\n            return pbVar25;\n          }\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }" if (parenthesized_expression "(uVar9 == ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 | (uint)pbVar25[3] |\n                     (uint)pbVar25[2] << 8))" ( (binary_expression "uVar9 == ((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 | (uint)pbVar25[3] |\n                     (uint)pbVar25[2] << 8)" identifier == (parenthesized_expression "((uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 | (uint)pbVar25[3] |\n                     (uint)pbVar25[2] << 8)" ( (binary_expression "(uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 | (uint)pbVar25[3] |\n                     (uint)pbVar25[2] << 8" (binary_expression "(uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10 | (uint)pbVar25[3]" (binary_expression "(uint)*pbVar25 << 0x18 | (uint)pbVar25[1] << 0x10" (binary_expression "(uint)*pbVar25 << 0x18" (binary_expression "(uint)*pbVar25" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal) | (binary_expression "(uint)pbVar25[1] << 0x10" (cast_expression "(uint)pbVar25[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar25[1]" identifier [ number_literal ])) << number_literal)) | (cast_expression "(uint)pbVar25[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar25[3]" identifier [ number_literal ]))) | (binary_expression "(uint)pbVar25[2] << 8" (cast_expression "(uint)pbVar25[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar25[2]" identifier [ number_literal ])) << number_literal)) ))) )) (compound_statement "{\n          iVar2 = (**(code **)(pcVar23 + 0x38b88))(pbVar25 + 4,uVar3,uVar9);\n          if (iVar2 == 0) {\n            if (ppcVar15 != (char **)0x0) {\n              pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3);\n              *ppcVar15 = pcVar18;\n            }\n            if (pbVar16 != (byte *)0x0) {\n              *(int *)pbVar16 = iVar5;\n            }\n            if (ppcVar17 == (char **)0x0) {\n              (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n            }\n            else {\n              *ppcVar17 = pcVar4;\n            }\n            (**(code **)(pcVar23 + 0x383a8))(uVar3);\n            return pbVar25;\n          }\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }" { (expression_statement "iVar2 = (**(code **)(pcVar23 + 0x38b88))(pbVar25 + 4,uVar3,uVar9);" (assignment_expression "iVar2 = (**(code **)(pcVar23 + 0x38b88))(pbVar25 + 4,uVar3,uVar9)" identifier = (call_expression "(**(code **)(pcVar23 + 0x38b88))(pbVar25 + 4,uVar3,uVar9)" (parenthesized_expression "(**(code **)(pcVar23 + 0x38b88))" ( (pointer_expression "**(code **)(pcVar23 + 0x38b88)" * (pointer_expression "*(code **)(pcVar23 + 0x38b88)" * (cast_expression "(code **)(pcVar23 + 0x38b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x38b88)" ( (binary_expression "pcVar23 + 0x38b88" identifier + number_literal) ))))) )) (argument_list "(pbVar25 + 4,uVar3,uVar9)" ( (binary_expression "pbVar25 + 4" identifier + number_literal) , identifier , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n            if (ppcVar15 != (char **)0x0) {\n              pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3);\n              *ppcVar15 = pcVar18;\n            }\n            if (pbVar16 != (byte *)0x0) {\n              *(int *)pbVar16 = iVar5;\n            }\n            if (ppcVar17 == (char **)0x0) {\n              (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n            }\n            else {\n              *ppcVar17 = pcVar4;\n            }\n            (**(code **)(pcVar23 + 0x383a8))(uVar3);\n            return pbVar25;\n          }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n            if (ppcVar15 != (char **)0x0) {\n              pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3);\n              *ppcVar15 = pcVar18;\n            }\n            if (pbVar16 != (byte *)0x0) {\n              *(int *)pbVar16 = iVar5;\n            }\n            if (ppcVar17 == (char **)0x0) {\n              (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n            }\n            else {\n              *ppcVar17 = pcVar4;\n            }\n            (**(code **)(pcVar23 + 0x383a8))(uVar3);\n            return pbVar25;\n          }" { (if_statement "if (ppcVar15 != (char **)0x0) {\n              pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3);\n              *ppcVar15 = pcVar18;\n            }" if (parenthesized_expression "(ppcVar15 != (char **)0x0)" ( (binary_expression "ppcVar15 != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n              pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3);\n              *ppcVar15 = pcVar18;\n            }" { (expression_statement "pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3);" (assignment_expression "pcVar18 = (char *)(**(code **)(pcVar23 + 0x383e0))(uVar3)" identifier = (cast_expression "(char *)(**(code **)(pcVar23 + 0x383e0))(uVar3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar23 + 0x383e0))(uVar3)" (parenthesized_expression "(**(code **)(pcVar23 + 0x383e0))" ( (pointer_expression "**(code **)(pcVar23 + 0x383e0)" * (pointer_expression "*(code **)(pcVar23 + 0x383e0)" * (cast_expression "(code **)(pcVar23 + 0x383e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x383e0)" ( (binary_expression "pcVar23 + 0x383e0" identifier + number_literal) ))))) )) (argument_list "(uVar3)" ( identifier ))))) ;) (expression_statement "*ppcVar15 = pcVar18;" (assignment_expression "*ppcVar15 = pcVar18" (pointer_expression "*ppcVar15" * identifier) = identifier) ;) })) (if_statement "if (pbVar16 != (byte *)0x0) {\n              *(int *)pbVar16 = iVar5;\n            }" if (parenthesized_expression "(pbVar16 != (byte *)0x0)" ( (binary_expression "pbVar16 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(int *)pbVar16 = iVar5;\n            }" { (expression_statement "*(int *)pbVar16 = iVar5;" (assignment_expression "*(int *)pbVar16 = iVar5" (pointer_expression "*(int *)pbVar16" * (cast_expression "(int *)pbVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) (if_statement "if (ppcVar17 == (char **)0x0) {\n              (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n            }\n            else {\n              *ppcVar17 = pcVar4;\n            }" if (parenthesized_expression "(ppcVar17 == (char **)0x0)" ( (binary_expression "ppcVar17 == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n              (**(code **)(pcVar23 + 0x383a8))(pcVar4);\n            }" { (expression_statement "(**(code **)(pcVar23 + 0x383a8))(pcVar4);" (call_expression "(**(code **)(pcVar23 + 0x383a8))(pcVar4)" (parenthesized_expression "(**(code **)(pcVar23 + 0x383a8))" ( (pointer_expression "**(code **)(pcVar23 + 0x383a8)" * (pointer_expression "*(code **)(pcVar23 + 0x383a8)" * (cast_expression "(code **)(pcVar23 + 0x383a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x383a8)" ( (binary_expression "pcVar23 + 0x383a8" identifier + number_literal) ))))) )) (argument_list "(pcVar4)" ( identifier ))) ;) }) (else_clause "else {\n              *ppcVar17 = pcVar4;\n            }" else (compound_statement "{\n              *ppcVar17 = pcVar4;\n            }" { (expression_statement "*ppcVar17 = pcVar4;" (assignment_expression "*ppcVar17 = pcVar4" (pointer_expression "*ppcVar17" * identifier) = identifier) ;) }))) (expression_statement "(**(code **)(pcVar23 + 0x383a8))(uVar3);" (call_expression "(**(code **)(pcVar23 + 0x383a8))(uVar3)" (parenthesized_expression "(**(code **)(pcVar23 + 0x383a8))" ( (pointer_expression "**(code **)(pcVar23 + 0x383a8)" * (pointer_expression "*(code **)(pcVar23 + 0x383a8)" * (cast_expression "(code **)(pcVar23 + 0x383a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x383a8)" ( (binary_expression "pcVar23 + 0x383a8" identifier + number_literal) ))))) )) (argument_list "(uVar3)" ( identifier ))) ;) (return_statement "return pbVar25;" return identifier ;) })) (expression_statement "iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;" (assignment_expression "iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94" identifier = (binary_expression "*(int *)(pcVar23 + 0x38418) + -0x4a94" (pointer_expression "*(int *)(pcVar23 + 0x38418)" * (cast_expression "(int *)(pcVar23 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x38418)" ( (binary_expression "pcVar23 + 0x38418" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }" else (compound_statement "{\n          iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n        }" { (expression_statement "iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;" (assignment_expression "iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94" identifier = (binary_expression "*(int *)(pcVar23 + 0x38418) + -0x4a94" (pointer_expression "*(int *)(pcVar23 + 0x38418)" * (cast_expression "(int *)(pcVar23 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x38418)" ( (binary_expression "pcVar23 + 0x38418" identifier + number_literal) )))) + number_literal)) ;) }))) }) (else_clause "else {\n        iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n      }" else (compound_statement "{\n        iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;\n      }" { (expression_statement "iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94;" (assignment_expression "iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a94" identifier = (binary_expression "*(int *)(pcVar23 + 0x38418) + -0x4a94" (pointer_expression "*(int *)(pcVar23 + 0x38418)" * (cast_expression "(int *)(pcVar23 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x38418)" ( (binary_expression "pcVar23 + 0x38418" identifier + number_literal) )))) + number_literal)) ;) }))) }) (else_clause "else {\n      iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a5c;\n    }" else (compound_statement "{\n      iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a5c;\n    }" { (expression_statement "iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a5c;" (assignment_expression "iVar2 = *(int *)(pcVar23 + 0x38418) + -0x4a5c" identifier = (binary_expression "*(int *)(pcVar23 + 0x38418) + -0x4a5c" (pointer_expression "*(int *)(pcVar23 + 0x38418)" * (cast_expression "(int *)(pcVar23 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x38418)" ( (binary_expression "pcVar23 + 0x38418" identifier + number_literal) )))) + number_literal)) ;) }))) }))) (expression_statement "(**(code **)(pcVar23 + 0x383a8))(uVar3);" (call_expression "(**(code **)(pcVar23 + 0x383a8))(uVar3)" (parenthesized_expression "(**(code **)(pcVar23 + 0x383a8))" ( (pointer_expression "**(code **)(pcVar23 + 0x383a8)" * (pointer_expression "*(code **)(pcVar23 + 0x383a8)" * (cast_expression "(code **)(pcVar23 + 0x383a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x383a8)" ( (binary_expression "pcVar23 + 0x383a8" identifier + number_literal) ))))) )) (argument_list "(uVar3)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar23 + 0x383a8))(pcVar4);" (call_expression "(**(code **)(pcVar23 + 0x383a8))(pcVar4)" (parenthesized_expression "(**(code **)(pcVar23 + 0x383a8))" ( (pointer_expression "**(code **)(pcVar23 + 0x383a8)" * (pointer_expression "*(code **)(pcVar23 + 0x383a8)" * (cast_expression "(code **)(pcVar23 + 0x383a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x383a8)" ( (binary_expression "pcVar23 + 0x383a8" identifier + number_literal) ))))) )) (argument_list "(pcVar4)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar23 + 0x383a8))(pbVar25);" (call_expression "(**(code **)(pcVar23 + 0x383a8))(pbVar25)" (parenthesized_expression "(**(code **)(pcVar23 + 0x383a8))" ( (pointer_expression "**(code **)(pcVar23 + 0x383a8)" * (pointer_expression "*(code **)(pcVar23 + 0x383a8)" * (cast_expression "(code **)(pcVar23 + 0x383a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x383a8)" ( (binary_expression "pcVar23 + 0x383a8" identifier + number_literal) ))))) )) (argument_list "(pbVar25)" ( identifier ))) ;) (if_statement "if (piVar24 != (int *)0x0) {\n    *piVar24 = iVar2;\n    piVar24 = (int *)0x0;\n  }" if (parenthesized_expression "(piVar24 != (int *)0x0)" ( (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *piVar24 = iVar2;\n    piVar24 = (int *)0x0;\n  }" { (expression_statement "*piVar24 = iVar2;" (assignment_expression "*piVar24 = iVar2" (pointer_expression "*piVar24" * identifier) = identifier) ;) (expression_statement "piVar24 = (int *)0x0;" (assignment_expression "piVar24 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (return_statement "return (uchar *)piVar24;" return (cast_expression "(uchar *)piVar24" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ;) })))
(translation_unit "byte * rfc4716_loadpub(undefined4 param_1,undefined4 *param_2,byte *param_3,undefined4 *param_4,\n                      undefined4 *param_5)\n\n{\n  undefined4 uVar1;\n  byte *pbVar2;\n  int iVar3;\n  byte bVar8;\n  undefined1 *puVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 uVar7;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 *puVar12;\n  byte *pbVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  int iVar17;\n  byte *pbVar18;\n  undefined *puVar19;\n  undefined4 *puVar20;\n  byte *pbVar21;\n  undefined4 *puVar22;\n  byte *pbVar23;\n  undefined4 local_58;\n  int local_50;\n  undefined4 uStack_34;\n  byte abStack_30 [4];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_00080958;\n  puVar12 = param_2;\n  pbVar13 = param_3;\n  puVar14 = param_4;\n  uVar1 = (*(code *)PTR_fgetline_00080444)();\n  pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n  if (pbVar2 == (byte *)0x0) {\n    puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    pbVar23 = (byte *)0x0;\n    local_58 = 0;\n  }\n  else {\n    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);\n    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n    if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }\n  }\n  goto LAB_000477c4;\n  while (puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d) {\nLAB_00047bb8:\n    bVar8 = *pbVar2;\n    pbVar18 = pbVar2;\n    while (bVar8 != 0) {\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n    pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n    if (pbVar2 == (byte *)0x0) {\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }\n  }\nLAB_00047a78:\n  puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4);\n  iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n  if (iVar3 == 0) {\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    pbVar2 = (byte *)0x0;\n    if ((int)pbVar9 < 4) {\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }\n    else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }\n  }\n  else {\n    puVar15 = PTR_DAT_00080134 + -0x4b30;\n  }\nLAB_000477c4:\n  (*(code *)PTR_safefree_000800c4)(pbVar2);\n  (*(code *)PTR_safefree_000800c4)(local_58);\n  (*(code *)PTR_safefree_000800c4)(pbVar23);\n  if (param_5 == (undefined4 *)0x0) {\n    pbVar23 = (byte *)0x0;\n  }\n  else {\n    *param_5 = puVar15;\n    pbVar23 = (byte *)0x0;\n  }\nLAB_00047814:\n  if (local_2c == *(int *)PTR___stack_chk_guard_00080958) {\n    return pbVar23;\n  }\n  puVar15 = PTR___stack_chk_fail_00080814;\n  (*(code *)PTR___stack_chk_fail_00080814)();\n  uVar1 = (**(code **)(puVar15 + 0x38728))();\n  uVar1 = (**(code **)(puVar15 + 0x3872c))(uVar1);\n  puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20);\n  if (puVar4 == (undefined1 *)0x0) {\n    iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;\n    pbVar2 = (byte *)0x0;\n    puVar4 = (undefined1 *)0x0;\n  }\n  else {\n    pcVar16 = puVar4 + 1;\n    *puVar4 = 0;\n    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);\n    if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }\n    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);\n    iVar3 = (uVar5 >> 2) * 3;\n    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);\n    iVar17 = 0;\n    while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }\n    if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }\n  }\n  (**(code **)(puVar15 + 0x383a8))(uVar1);\n  (**(code **)(puVar15 + 0x383a8))(puVar4);\n  (**(code **)(puVar15 + 0x383a8))(pbVar2);\n  __gp_1 = iVar3;\n  return (byte *)0x0;\n}\n\n" (function_definition "byte * rfc4716_loadpub(undefined4 param_1,undefined4 *param_2,byte *param_3,undefined4 *param_4,\n                      undefined4 *param_5)\n\n{\n  undefined4 uVar1;\n  byte *pbVar2;\n  int iVar3;\n  byte bVar8;\n  undefined1 *puVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 uVar7;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 *puVar12;\n  byte *pbVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  int iVar17;\n  byte *pbVar18;\n  undefined *puVar19;\n  undefined4 *puVar20;\n  byte *pbVar21;\n  undefined4 *puVar22;\n  byte *pbVar23;\n  undefined4 local_58;\n  int local_50;\n  undefined4 uStack_34;\n  byte abStack_30 [4];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_00080958;\n  puVar12 = param_2;\n  pbVar13 = param_3;\n  puVar14 = param_4;\n  uVar1 = (*(code *)PTR_fgetline_00080444)();\n  pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n  if (pbVar2 == (byte *)0x0) {\n    puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    pbVar23 = (byte *)0x0;\n    local_58 = 0;\n  }\n  else {\n    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);\n    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n    if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }\n  }\n  goto LAB_000477c4;\n  while (puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d) {\nLAB_00047bb8:\n    bVar8 = *pbVar2;\n    pbVar18 = pbVar2;\n    while (bVar8 != 0) {\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n    pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n    if (pbVar2 == (byte *)0x0) {\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }\n  }\nLAB_00047a78:\n  puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4);\n  iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n  if (iVar3 == 0) {\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    pbVar2 = (byte *)0x0;\n    if ((int)pbVar9 < 4) {\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }\n    else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }\n  }\n  else {\n    puVar15 = PTR_DAT_00080134 + -0x4b30;\n  }\nLAB_000477c4:\n  (*(code *)PTR_safefree_000800c4)(pbVar2);\n  (*(code *)PTR_safefree_000800c4)(local_58);\n  (*(code *)PTR_safefree_000800c4)(pbVar23);\n  if (param_5 == (undefined4 *)0x0) {\n    pbVar23 = (byte *)0x0;\n  }\n  else {\n    *param_5 = puVar15;\n    pbVar23 = (byte *)0x0;\n  }\nLAB_00047814:\n  if (local_2c == *(int *)PTR___stack_chk_guard_00080958) {\n    return pbVar23;\n  }\n  puVar15 = PTR___stack_chk_fail_00080814;\n  (*(code *)PTR___stack_chk_fail_00080814)();\n  uVar1 = (**(code **)(puVar15 + 0x38728))();\n  uVar1 = (**(code **)(puVar15 + 0x3872c))(uVar1);\n  puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20);\n  if (puVar4 == (undefined1 *)0x0) {\n    iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;\n    pbVar2 = (byte *)0x0;\n    puVar4 = (undefined1 *)0x0;\n  }\n  else {\n    pcVar16 = puVar4 + 1;\n    *puVar4 = 0;\n    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);\n    if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }\n    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);\n    iVar3 = (uVar5 >> 2) * 3;\n    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);\n    iVar17 = 0;\n    while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }\n    if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }\n  }\n  (**(code **)(puVar15 + 0x383a8))(uVar1);\n  (**(code **)(puVar15 + 0x383a8))(puVar4);\n  (**(code **)(puVar15 + 0x383a8))(pbVar2);\n  __gp_1 = iVar3;\n  return (byte *)0x0;\n}" type_identifier (pointer_declarator "* rfc4716_loadpub(undefined4 param_1,undefined4 *param_2,byte *param_3,undefined4 *param_4,\n                      undefined4 *param_5)" * (function_declarator "rfc4716_loadpub(undefined4 param_1,undefined4 *param_2,byte *param_3,undefined4 *param_4,\n                      undefined4 *param_5)" identifier (parameter_list "(undefined4 param_1,undefined4 *param_2,byte *param_3,undefined4 *param_4,\n                      undefined4 *param_5)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined4 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) )))) (compound_statement "{\n  undefined4 uVar1;\n  byte *pbVar2;\n  int iVar3;\n  byte bVar8;\n  undefined1 *puVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 uVar7;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 *puVar12;\n  byte *pbVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  int iVar17;\n  byte *pbVar18;\n  undefined *puVar19;\n  undefined4 *puVar20;\n  byte *pbVar21;\n  undefined4 *puVar22;\n  byte *pbVar23;\n  undefined4 local_58;\n  int local_50;\n  undefined4 uStack_34;\n  byte abStack_30 [4];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_00080958;\n  puVar12 = param_2;\n  pbVar13 = param_3;\n  puVar14 = param_4;\n  uVar1 = (*(code *)PTR_fgetline_00080444)();\n  pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n  if (pbVar2 == (byte *)0x0) {\n    puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    pbVar23 = (byte *)0x0;\n    local_58 = 0;\n  }\n  else {\n    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);\n    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n    if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }\n  }\n  goto LAB_000477c4;\n  while (puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d) {\nLAB_00047bb8:\n    bVar8 = *pbVar2;\n    pbVar18 = pbVar2;\n    while (bVar8 != 0) {\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n    pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n    if (pbVar2 == (byte *)0x0) {\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }\n  }\nLAB_00047a78:\n  puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4);\n  iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n  if (iVar3 == 0) {\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    pbVar2 = (byte *)0x0;\n    if ((int)pbVar9 < 4) {\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }\n    else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }\n  }\n  else {\n    puVar15 = PTR_DAT_00080134 + -0x4b30;\n  }\nLAB_000477c4:\n  (*(code *)PTR_safefree_000800c4)(pbVar2);\n  (*(code *)PTR_safefree_000800c4)(local_58);\n  (*(code *)PTR_safefree_000800c4)(pbVar23);\n  if (param_5 == (undefined4 *)0x0) {\n    pbVar23 = (byte *)0x0;\n  }\n  else {\n    *param_5 = puVar15;\n    pbVar23 = (byte *)0x0;\n  }\nLAB_00047814:\n  if (local_2c == *(int *)PTR___stack_chk_guard_00080958) {\n    return pbVar23;\n  }\n  puVar15 = PTR___stack_chk_fail_00080814;\n  (*(code *)PTR___stack_chk_fail_00080814)();\n  uVar1 = (**(code **)(puVar15 + 0x38728))();\n  uVar1 = (**(code **)(puVar15 + 0x3872c))(uVar1);\n  puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20);\n  if (puVar4 == (undefined1 *)0x0) {\n    iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;\n    pbVar2 = (byte *)0x0;\n    puVar4 = (undefined1 *)0x0;\n  }\n  else {\n    pcVar16 = puVar4 + 1;\n    *puVar4 = 0;\n    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);\n    if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }\n    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);\n    iVar3 = (uVar5 >> 2) * 3;\n    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);\n    iVar17 = 0;\n    while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }\n    if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }\n  }\n  (**(code **)(puVar15 + 0x383a8))(uVar1);\n  (**(code **)(puVar15 + 0x383a8))(puVar4);\n  (**(code **)(puVar15 + 0x383a8))(pbVar2);\n  __gp_1 = iVar3;\n  return (byte *)0x0;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "undefined4 uStack_34;" type_identifier identifier ;) (declaration "byte abStack_30 [4];" type_identifier (array_declarator "abStack_30 [4]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00080958;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00080958" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00080958" * (cast_expression "(int *)PTR___stack_chk_guard_00080958" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar12 = param_2;" (assignment_expression "puVar12 = param_2" identifier = identifier) ;) (expression_statement "pbVar13 = param_3;" (assignment_expression "pbVar13 = param_3" identifier = identifier) ;) (expression_statement "puVar14 = param_4;" (assignment_expression "puVar14 = param_4" identifier = identifier) ;) (expression_statement "uVar1 = (*(code *)PTR_fgetline_00080444)();" (assignment_expression "uVar1 = (*(code *)PTR_fgetline_00080444)()" identifier = (call_expression "(*(code *)PTR_fgetline_00080444)()" (parenthesized_expression "(*(code *)PTR_fgetline_00080444)" ( (pointer_expression "*(code *)PTR_fgetline_00080444" * (cast_expression "(code *)PTR_fgetline_00080444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);" (assignment_expression "pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1)" identifier = (cast_expression "(byte *)(*(code *)PTR_chomp_00080448)(uVar1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_chomp_00080448)(uVar1)" (parenthesized_expression "(*(code *)PTR_chomp_00080448)" ( (pointer_expression "*(code *)PTR_chomp_00080448" * (cast_expression "(code *)PTR_chomp_00080448" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar1)" ( identifier ))))) ;) (if_statement "if (pbVar2 == (byte *)0x0) {\n    puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    pbVar23 = (byte *)0x0;\n    local_58 = 0;\n  }\n  else {\n    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);\n    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n    if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }\n  }" if (parenthesized_expression "(pbVar2 == (byte *)0x0)" ( (binary_expression "pbVar2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    pbVar23 = (byte *)0x0;\n    local_58 = 0;\n  }" { (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4bb8;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4bb8" identifier = (binary_expression "PTR_DAT_00080134 + -0x4bb8" identifier + number_literal)) ;) (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);\n    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n    if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }\n  }" else (compound_statement "{\n    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);\n    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n    if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }\n  }" { (expression_statement "puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);" (assignment_expression "puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4)" identifier = (cast_expression "(undefined4 *)(PTR_DAT_00080134 + -0x4ae4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00080134 + -0x4ae4)" ( (binary_expression "PTR_DAT_00080134 + -0x4ae4" identifier + number_literal) )))) ;) (expression_statement "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2)" identifier = (call_expression "(*(code *)PTR_strcmp_000808cc)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strcmp_000808cc)" ( (pointer_expression "*(code *)PTR_strcmp_000808cc" * (cast_expression "(code *)PTR_strcmp_000808cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }" { (expression_statement "(*(code *)PTR_safefree_000800c4)(pbVar2);" (call_expression "(*(code *)PTR_safefree_000800c4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" ( (pointer_expression "*(code *)PTR_safefree_000800c4" * (cast_expression "(code *)PTR_safefree_000800c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier ))) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4ac4;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4ac4" identifier = (binary_expression "PTR_DAT_00080134 + -0x4ac4" identifier + number_literal)) ;) (expression_statement "puVar19 = PTR_DAT_00080134 + -0x4c58;" (assignment_expression "puVar19 = PTR_DAT_00080134 + -0x4c58" identifier = (binary_expression "PTR_DAT_00080134 + -0x4c58" identifier + number_literal)) ;) (expression_statement "puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);" (assignment_expression "puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0)" identifier = (cast_expression "(undefined4 *)(PTR_DAT_00080134 + -0x4ac0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00080134 + -0x4ac0)" ( (binary_expression "PTR_DAT_00080134 + -0x4ac0" identifier + number_literal) )))) ;) (expression_statement "puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);" (assignment_expression "puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8)" identifier = (cast_expression "(undefined4 *)(PTR_DAT_00080134 + -0x4ab8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00080134 + -0x4ab8)" ( (binary_expression "PTR_DAT_00080134 + -0x4ab8" identifier + number_literal) )))) ;) (while_statement "while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }" { (expression_statement "uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);" (assignment_expression "uVar1 = (*(code *)PTR_fgetline_00080444)(param_1)" identifier = (call_expression "(*(code *)PTR_fgetline_00080444)(param_1)" (parenthesized_expression "(*(code *)PTR_fgetline_00080444)" ( (pointer_expression "*(code *)PTR_fgetline_00080444" * (cast_expression "(code *)PTR_fgetline_00080444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);" (assignment_expression "pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1)" identifier = (cast_expression "(byte *)(*(code *)PTR_chomp_00080448)(uVar1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_chomp_00080448)(uVar1)" (parenthesized_expression "(*(code *)PTR_chomp_00080448)" ( (pointer_expression "*(code *)PTR_chomp_00080448" * (cast_expression "(code *)PTR_chomp_00080448" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar1)" ( identifier ))))) ;) (if_statement "if (pbVar2 == (byte *)0x0) break;" if (parenthesized_expression "(pbVar2 == (byte *)0x0)" ( (binary_expression "pbVar2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);" (assignment_expression "puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15)" (parenthesized_expression "(*(code *)PTR_strstr_0008096c)" ( (pointer_expression "*(code *)PTR_strstr_0008096c" * (cast_expression "(code *)PTR_strstr_0008096c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2,puVar15)" ( identifier , identifier ))))) ;) (if_statement "if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }" if (parenthesized_expression "(puVar4 == (undefined1 *)0x0)" ( (binary_expression "puVar4 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }" { (expression_statement "puVar12 = (undefined4 *)0x1;" (assignment_expression "puVar12 = (undefined4 *)0x1" identifier = (cast_expression "(undefined4 *)0x1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);" (assignment_expression "pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000)" identifier = (cast_expression "(byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_safemalloc_000800d4)(0x1000)" (parenthesized_expression "(*(code *)PTR_safemalloc_000800d4)" ( (pointer_expression "*(code *)PTR_safemalloc_000800d4" * (cast_expression "(code *)PTR_safemalloc_000800d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0x1000)" ( number_literal ))))) ;) (expression_statement "pbVar10 = (byte *)0x0;" (assignment_expression "pbVar10 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" identifier = identifier) ;) (if_statement "if (*pbVar2 == 0x2d) goto LAB_00047a78;" if (parenthesized_expression "(*pbVar2 == 0x2d)" ( (binary_expression "*pbVar2 == 0x2d" (pointer_expression "*pbVar2" * identifier) == number_literal) )) (goto_statement "goto LAB_00047a78;" goto statement_identifier ;)) (expression_statement "local_50 = 0x1000;" (assignment_expression "local_50 = 0x1000" identifier = number_literal) ;) (expression_statement "pbVar21 = pbVar10;" (assignment_expression "pbVar21 = pbVar10" identifier = identifier) ;) (goto_statement "goto LAB_00047bb8;" goto statement_identifier ;) })) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19)" identifier = (call_expression "(*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19)" (parenthesized_expression "(*(code *)PTR_strcmp_000808cc)" ( (pointer_expression "*(code *)PTR_strcmp_000808cc" * (cast_expression "(code *)PTR_strcmp_000808cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2,puVar19)" ( identifier , identifier )))) ;) (expression_statement "puVar12 = puVar20;" (assignment_expression "puVar12 = puVar20" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }" { (expression_statement "pbVar23 = puVar4 + 2;" (assignment_expression "pbVar23 = puVar4 + 2" identifier = (binary_expression "puVar4 + 2" identifier + number_literal)) ;) (if_statement "if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }" if (parenthesized_expression "(puVar4[2] == '\"')" ( (binary_expression "puVar4[2] == '\"'" (subscript_expression "puVar4[2]" identifier [ number_literal ]) == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }" { (expression_statement "iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23)" identifier = (call_expression "(*(code *)PTR_strlen_000808f8)(pbVar23)" (parenthesized_expression "(*(code *)PTR_strlen_000808f8)" ( (pointer_expression "*(code *)PTR_strlen_000808f8" * (cast_expression "(code *)PTR_strlen_000808f8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar23)" ( identifier )))) ;) (if_statement "if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }" if (parenthesized_expression "(pbVar23[iVar3 + -1] == 0x22)" ( (binary_expression "pbVar23[iVar3 + -1] == 0x22" (subscript_expression "pbVar23[iVar3 + -1]" identifier [ (binary_expression "iVar3 + -1" identifier + number_literal) ]) == number_literal) )) (compound_statement "{\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }" { (expression_statement "pbVar23[iVar3 + -1] = 0;" (assignment_expression "pbVar23[iVar3 + -1] = 0" (subscript_expression "pbVar23[iVar3 + -1]" identifier [ (binary_expression "iVar3 + -1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "pbVar23 = puVar4 + 3;" (assignment_expression "pbVar23 = puVar4 + 3" identifier = (binary_expression "puVar4 + 3" identifier + number_literal)) ;) })) })) (expression_statement "bVar8 = *pbVar23;" (assignment_expression "bVar8 = *pbVar23" identifier = (pointer_expression "*pbVar23" * identifier)) ;) (expression_statement "pbVar10 = pbVar2;" (assignment_expression "pbVar10 = pbVar2" identifier = identifier) ;) (if_statement "if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }" if (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) (compound_statement "{\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }" { (expression_statement "puVar12 = (undefined4 *)&DAT_0000005c;" (assignment_expression "puVar12 = (undefined4 *)&DAT_0000005c" identifier = (cast_expression "(undefined4 *)&DAT_0000005c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000005c" & identifier))) ;) (expression_statement "pbVar9 = pbVar2;" (assignment_expression "pbVar9 = pbVar2" identifier = identifier) ;) (do_statement "do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);" do (compound_statement "{\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            }" { (expression_statement "pbVar21 = pbVar23;" (assignment_expression "pbVar21 = pbVar23" identifier = identifier) ;) (if_statement "if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }" if (parenthesized_expression "((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0))" ( (binary_expression "(bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)" (parenthesized_expression "(bVar8 == 0x5c)" ( (binary_expression "bVar8 == 0x5c" identifier == number_literal) )) && (parenthesized_expression "(pbVar21 = pbVar23 + 1, pbVar23[1] == 0)" ( (comma_expression "pbVar21 = pbVar23 + 1, pbVar23[1] == 0" (assignment_expression "pbVar21 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) , (binary_expression "pbVar23[1] == 0" (subscript_expression "pbVar23[1]" identifier [ number_literal ]) == number_literal)) ))) )) (compound_statement "{\n                pbVar21 = pbVar23;\n              }" { (expression_statement "pbVar21 = pbVar23;" (assignment_expression "pbVar21 = pbVar23" identifier = identifier) ;) })) (expression_statement "pbVar10 = pbVar9 + 1;" (assignment_expression "pbVar10 = pbVar9 + 1" identifier = (binary_expression "pbVar9 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar9 = *pbVar21;" (assignment_expression "*pbVar9 = *pbVar21" (pointer_expression "*pbVar9" * identifier) = (pointer_expression "*pbVar21" * identifier)) ;) (expression_statement "pbVar23 = pbVar21 + 1;" (assignment_expression "pbVar23 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (expression_statement "bVar8 = pbVar21[1];" (assignment_expression "bVar8 = pbVar21[1]" identifier = (subscript_expression "pbVar21[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" identifier = identifier) ;) }) while (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) ;) })) (expression_statement "*pbVar10 = 0;" (assignment_expression "*pbVar10 = 0" (pointer_expression "*pbVar10" * identifier) = number_literal) ;) (expression_statement "(*(code *)PTR_safefree_000800c4)(local_58);" (call_expression "(*(code *)PTR_safefree_000800c4)(local_58)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" ( (pointer_expression "*(code *)PTR_safefree_000800c4" * (cast_expression "(code *)PTR_safefree_000800c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);" (assignment_expression "local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2)" identifier = (call_expression "(*(code *)PTR_dupstr_000800fc)(pbVar2)" (parenthesized_expression "(*(code *)PTR_dupstr_000800fc)" ( (pointer_expression "*(code *)PTR_dupstr_000800fc" * (cast_expression "(code *)PTR_dupstr_000800fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) }) (else_clause "else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }" else (compound_statement "{\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }" { (expression_statement "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2)" identifier = (call_expression "(*(code *)PTR_strcmp_000808cc)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strcmp_000808cc)" ( (pointer_expression "*(code *)PTR_strcmp_000808cc" * (cast_expression "(code *)PTR_strcmp_000808cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }" { (expression_statement "pbVar13 = (byte *)0x2;" (assignment_expression "pbVar13 = (byte *)0x2" identifier = (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar12 = puVar22;" (assignment_expression "puVar12 = puVar22" identifier = identifier) ;) (expression_statement "iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);" (assignment_expression "iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2)" identifier = (call_expression "(*(code *)PTR_strncmp_000807e8)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strncmp_000807e8)" ( (pointer_expression "*(code *)PTR_strncmp_000807e8" * (cast_expression "(code *)PTR_strncmp_000807e8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) (if_statement "if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }" { (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4b8c;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4b8c" identifier = (binary_expression "PTR_DAT_00080134 + -0x4b8c" identifier + number_literal)) ;) (goto_statement "goto LAB_000477c4;" goto statement_identifier ;) })) })) }))) (expression_statement "(*(code *)PTR_safefree_000800c4)(pbVar2);" (call_expression "(*(code *)PTR_safefree_000800c4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" ( (pointer_expression "*(code *)PTR_safefree_000800c4" * (cast_expression "(code *)PTR_safefree_000800c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier ))) ;) })) (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4b04;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4b04" identifier = (binary_expression "PTR_DAT_00080134 + -0x4b04" identifier + number_literal)) ;) (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }" else (compound_statement "{\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }" { (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4bb8;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4bb8" identifier = (binary_expression "PTR_DAT_00080134 + -0x4bb8" identifier + number_literal)) ;) }))) }))) (goto_statement "goto LAB_000477c4;" goto statement_identifier ;) (while_statement "while (puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d) {\nLAB_00047bb8:\n    bVar8 = *pbVar2;\n    pbVar18 = pbVar2;\n    while (bVar8 != 0) {\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n    pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n    if (pbVar2 == (byte *)0x0) {\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }\n  }" while (parenthesized_expression "(puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d)" ( (comma_expression "puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d" (assignment_expression "puVar12 = (undefined4 *)PTR_DAT_00080134" identifier = (cast_expression "(undefined4 *)PTR_DAT_00080134" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "*pbVar2 != 0x2d" (pointer_expression "*pbVar2" * identifier) != number_literal)) )) (compound_statement "{\nLAB_00047bb8:\n    bVar8 = *pbVar2;\n    pbVar18 = pbVar2;\n    while (bVar8 != 0) {\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n    pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n    if (pbVar2 == (byte *)0x0) {\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }\n  }" { (labeled_statement "LAB_00047bb8:\n    bVar8 = *pbVar2;" statement_identifier : (expression_statement "bVar8 = *pbVar2;" (assignment_expression "bVar8 = *pbVar2" identifier = (pointer_expression "*pbVar2" * identifier)) ;)) (expression_statement "pbVar18 = pbVar2;" (assignment_expression "pbVar18 = pbVar2" identifier = identifier) ;) (while_statement "while (bVar8 != 0) {\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }" while (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }" { (expression_statement "pbVar11 = pbVar21 + 1;" (assignment_expression "pbVar11 = pbVar21 + 1" identifier = (binary_expression "pbVar21 + 1" identifier + number_literal)) ;) (expression_statement "abStack_30[(int)pbVar21] = bVar8;" (assignment_expression "abStack_30[(int)pbVar21] = bVar8" (subscript_expression "abStack_30[(int)pbVar21]" identifier [ (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) ]) = identifier) ;) (if_statement "if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }" if (parenthesized_expression "(pbVar11 == &DAT_00000004)" ( (binary_expression "pbVar11 == &DAT_00000004" identifier == (pointer_expression "&DAT_00000004" & identifier)) )) (compound_statement "{\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }" { (expression_statement "pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);" (assignment_expression "pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34)" identifier = (cast_expression "(byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34)" (parenthesized_expression "(*(code *)PTR_base64_decode_atom_000801b4)" ( (pointer_expression "*(code *)PTR_base64_decode_atom_000801b4" * (cast_expression "(code *)PTR_base64_decode_atom_000801b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(abStack_30,&uStack_34)" ( identifier , (pointer_expression "&uStack_34" & identifier) ))))) ;) (expression_statement "pbVar21 = pbVar13 + (int)pbVar9;" (assignment_expression "pbVar21 = pbVar13 + (int)pbVar9" identifier = (binary_expression "pbVar13 + (int)pbVar9" identifier + (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }" if (parenthesized_expression "(local_50 < (int)pbVar21)" ( (binary_expression "local_50 < (int)pbVar21" identifier < (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }" { (expression_statement "iVar3 = (int)pbVar21 * 5;" (assignment_expression "iVar3 = (int)pbVar21 * 5" identifier = (binary_expression "(int)pbVar21 * 5" (cast_expression "(int)pbVar21" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n            iVar3 = iVar3 + 3;\n          }" { (expression_statement "iVar3 = iVar3 + 3;" (assignment_expression "iVar3 = iVar3 + 3" identifier = (binary_expression "iVar3 + 3" identifier + number_literal)) ;) })) (expression_statement "local_50 = (iVar3 >> 2) + 0x400;" (assignment_expression "local_50 = (iVar3 >> 2) + 0x400" identifier = (binary_expression "(iVar3 >> 2) + 0x400" (parenthesized_expression "(iVar3 >> 2)" ( (binary_expression "iVar3 >> 2" identifier >> number_literal) )) + number_literal)) ;) (expression_statement "pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);" (assignment_expression "pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1)" identifier = (cast_expression "(byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1)" (parenthesized_expression "(*(code *)PTR_saferealloc_00080100)" ( (pointer_expression "*(code *)PTR_saferealloc_00080100" * (cast_expression "(code *)PTR_saferealloc_00080100" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar23,local_50,1)" ( identifier , identifier , number_literal ))))) ;) })) (expression_statement "puVar12 = &uStack_34;" (assignment_expression "puVar12 = &uStack_34" identifier = (pointer_expression "&uStack_34" & identifier)) ;) (expression_statement "(*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);" (call_expression "(*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9)" (parenthesized_expression "(*(code *)PTR_memcpy_00080908)" ( (pointer_expression "*(code *)PTR_memcpy_00080908" * (cast_expression "(code *)PTR_memcpy_00080908" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar23 + (int)pbVar9)" ( (binary_expression "pbVar23 + (int)pbVar9" identifier + (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" identifier = identifier) ;) (expression_statement "pbVar9 = pbVar21;" (assignment_expression "pbVar9 = pbVar21" identifier = identifier) ;) })) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "pbVar21 = pbVar11;" (assignment_expression "pbVar21 = pbVar11" identifier = identifier) ;) (expression_statement "bVar8 = *pbVar18;" (assignment_expression "bVar8 = *pbVar18" identifier = (pointer_expression "*pbVar18" * identifier)) ;) })) (expression_statement "(*(code *)PTR_safefree_000800c4)(pbVar2);" (call_expression "(*(code *)PTR_safefree_000800c4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" ( (pointer_expression "*(code *)PTR_safefree_000800c4" * (cast_expression "(code *)PTR_safefree_000800c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier ))) ;) (expression_statement "uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);" (assignment_expression "uVar1 = (*(code *)PTR_fgetline_00080444)(param_1)" identifier = (call_expression "(*(code *)PTR_fgetline_00080444)(param_1)" (parenthesized_expression "(*(code *)PTR_fgetline_00080444)" ( (pointer_expression "*(code *)PTR_fgetline_00080444" * (cast_expression "(code *)PTR_fgetline_00080444" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);" (assignment_expression "pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1)" identifier = (cast_expression "(byte *)(*(code *)PTR_chomp_00080448)(uVar1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_chomp_00080448)(uVar1)" (parenthesized_expression "(*(code *)PTR_chomp_00080448)" ( (pointer_expression "*(code *)PTR_chomp_00080448" * (cast_expression "(code *)PTR_chomp_00080448" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar1)" ( identifier ))))) ;) (if_statement "if (pbVar2 == (byte *)0x0) {\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }" if (parenthesized_expression "(pbVar2 == (byte *)0x0)" ( (binary_expression "pbVar2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }" { (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4b30;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4b30" identifier = (binary_expression "PTR_DAT_00080134 + -0x4b30" identifier + number_literal)) ;) (goto_statement "goto LAB_000477c4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00047a78:\n  puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4);" statement_identifier : (expression_statement "puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4);" (assignment_expression "puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4)" identifier = (cast_expression "(undefined4 *)(PTR_DAT_00080134 + -0x4ab4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00080134 + -0x4ab4)" ( (binary_expression "PTR_DAT_00080134 + -0x4ab4" identifier + number_literal) )))) ;)) (expression_statement "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2)" identifier = (call_expression "(*(code *)PTR_strcmp_000808cc)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strcmp_000808cc)" ( (pointer_expression "*(code *)PTR_strcmp_000808cc" * (cast_expression "(code *)PTR_strcmp_000808cc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier )))) ;) (if_statement "if (iVar3 == 0) {\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    pbVar2 = (byte *)0x0;\n    if ((int)pbVar9 < 4) {\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }\n    else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }\n  }\n  else {\n    puVar15 = PTR_DAT_00080134 + -0x4b30;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    pbVar2 = (byte *)0x0;\n    if ((int)pbVar9 < 4) {\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }\n    else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }\n  }" { (expression_statement "(*(code *)PTR_safefree_000800c4)(pbVar2);" (call_expression "(*(code *)PTR_safefree_000800c4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" ( (pointer_expression "*(code *)PTR_safefree_000800c4" * (cast_expression "(code *)PTR_safefree_000800c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier ))) ;) (expression_statement "pbVar2 = (byte *)0x0;" (assignment_expression "pbVar2 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((int)pbVar9 < 4) {\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }\n    else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }" if (parenthesized_expression "((int)pbVar9 < 4)" ( (binary_expression "(int)pbVar9 < 4" (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }" { (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4b5c;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4b5c" identifier = (binary_expression "PTR_DAT_00080134 + -0x4b5c" identifier + number_literal)) ;) }) (else_clause "else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }" else (compound_statement "{\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }" { (expression_statement "puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);" (assignment_expression "puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8)" identifier = (cast_expression "(undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8)" (parenthesized_expression "(*(code *)PTR_toint_00080198)" ( (pointer_expression "*(code *)PTR_toint_00080198" * (cast_expression "(code *)PTR_toint_00080198" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8)" ( (binary_expression "(uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8" (binary_expression "(uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3]" (binary_expression "(uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10" (binary_expression "(uint)*pbVar23 << 0x18" (binary_expression "(uint)*pbVar23" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal) | (binary_expression "(uint)pbVar23[1] << 0x10" (cast_expression "(uint)pbVar23[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar23[1]" identifier [ number_literal ])) << number_literal)) | (cast_expression "(uint)pbVar23[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar23[3]" identifier [ number_literal ]))) | (binary_expression "(uint)pbVar23[2] << 8" (cast_expression "(uint)pbVar23[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar23[2]" identifier [ number_literal ])) << number_literal)) ))))) ;) (if_statement "if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }" if (parenthesized_expression "((int)puVar20 < 0)" ( (binary_expression "(int)puVar20 < 0" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }" { (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4bec;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4bec" identifier = (binary_expression "PTR_DAT_00080134 + -0x4bec" identifier + number_literal)) ;) }) (else_clause "else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }" else (compound_statement "{\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }" { (if_statement "if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }" if (parenthesized_expression "((int)puVar20 < (int)(pbVar9 + -3))" ( (binary_expression "(int)puVar20 < (int)(pbVar9 + -3)" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(pbVar9 + -3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar9 + -3)" ( (binary_expression "pbVar9 + -3" identifier + number_literal) )))) )) (compound_statement "{\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }" { (expression_statement "pbVar13 = pbVar23 + 4;" (assignment_expression "pbVar13 = pbVar23 + 4" identifier = (binary_expression "pbVar23 + 4" identifier + number_literal)) ;) (if_statement "if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }" if (parenthesized_expression "(param_2 != (undefined4 *)0x0)" ( (binary_expression "param_2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }" { (expression_statement "uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);" (assignment_expression "uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50)" identifier = (call_expression "(*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50)" (parenthesized_expression "(*(code *)PTR_dupprintf_000800b8)" ( (pointer_expression "*(code *)PTR_dupprintf_000800b8" * (cast_expression "(code *)PTR_dupprintf_000800b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_000800a8 + 0x4a50)" ( (binary_expression "PTR_LAB_000800a8 + 0x4a50" identifier + number_literal) )))) ;) (expression_statement "*param_2 = uVar1;" (assignment_expression "*param_2 = uVar1" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "puVar12 = puVar20;" (assignment_expression "puVar12 = puVar20" identifier = identifier) ;) })) (if_statement "if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }" if (parenthesized_expression "(param_3 != (byte *)0x0)" ( (binary_expression "param_3 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(byte **)param_3 = pbVar9;\n          }" { (expression_statement "*(byte **)param_3 = pbVar9;" (assignment_expression "*(byte **)param_3 = pbVar9" (pointer_expression "*(byte **)param_3" * (cast_expression "(byte **)param_3" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) })) (if_statement "if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }" if (parenthesized_expression "(param_4 == (undefined4 *)0x0)" ( (binary_expression "param_4 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }" { (expression_statement "(*(code *)PTR_safefree_000800c4)(local_58);" (call_expression "(*(code *)PTR_safefree_000800c4)(local_58)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" ( (pointer_expression "*(code *)PTR_safefree_000800c4" * (cast_expression "(code *)PTR_safefree_000800c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_58)" ( identifier ))) ;) }) (else_clause "else {\n            *param_4 = local_58;\n          }" else (compound_statement "{\n            *param_4 = local_58;\n          }" { (expression_statement "*param_4 = local_58;" (assignment_expression "*param_4 = local_58" (pointer_expression "*param_4" * identifier) = identifier) ;) }))) (goto_statement "goto LAB_00047814;" goto statement_identifier ;) })) (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4bec;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4bec" identifier = (binary_expression "PTR_DAT_00080134 + -0x4bec" identifier + number_literal)) ;) }))) }))) }) (else_clause "else {\n    puVar15 = PTR_DAT_00080134 + -0x4b30;\n  }" else (compound_statement "{\n    puVar15 = PTR_DAT_00080134 + -0x4b30;\n  }" { (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4b30;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4b30" identifier = (binary_expression "PTR_DAT_00080134 + -0x4b30" identifier + number_literal)) ;) }))) (labeled_statement "LAB_000477c4:\n  (*(code *)PTR_safefree_000800c4)(pbVar2);" statement_identifier : (expression_statement "(*(code *)PTR_safefree_000800c4)(pbVar2);" (call_expression "(*(code *)PTR_safefree_000800c4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" ( (pointer_expression "*(code *)PTR_safefree_000800c4" * (cast_expression "(code *)PTR_safefree_000800c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar2)" ( identifier ))) ;)) (expression_statement "(*(code *)PTR_safefree_000800c4)(local_58);" (call_expression "(*(code *)PTR_safefree_000800c4)(local_58)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" ( (pointer_expression "*(code *)PTR_safefree_000800c4" * (cast_expression "(code *)PTR_safefree_000800c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_58)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_safefree_000800c4)(pbVar23);" (call_expression "(*(code *)PTR_safefree_000800c4)(pbVar23)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" ( (pointer_expression "*(code *)PTR_safefree_000800c4" * (cast_expression "(code *)PTR_safefree_000800c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar23)" ( identifier ))) ;) (if_statement "if (param_5 == (undefined4 *)0x0) {\n    pbVar23 = (byte *)0x0;\n  }\n  else {\n    *param_5 = puVar15;\n    pbVar23 = (byte *)0x0;\n  }" if (parenthesized_expression "(param_5 == (undefined4 *)0x0)" ( (binary_expression "param_5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pbVar23 = (byte *)0x0;\n  }" { (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    *param_5 = puVar15;\n    pbVar23 = (byte *)0x0;\n  }" else (compound_statement "{\n    *param_5 = puVar15;\n    pbVar23 = (byte *)0x0;\n  }" { (expression_statement "*param_5 = puVar15;" (assignment_expression "*param_5 = puVar15" (pointer_expression "*param_5" * identifier) = identifier) ;) (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_00047814:\n  if (local_2c == *(int *)PTR___stack_chk_guard_00080958) {\n    return pbVar23;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)PTR___stack_chk_guard_00080958) {\n    return pbVar23;\n  }" if (parenthesized_expression "(local_2c == *(int *)PTR___stack_chk_guard_00080958)" ( (binary_expression "local_2c == *(int *)PTR___stack_chk_guard_00080958" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_00080958" * (cast_expression "(int *)PTR___stack_chk_guard_00080958" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return pbVar23;\n  }" { (return_statement "return pbVar23;" return identifier ;) }))) (expression_statement "puVar15 = PTR___stack_chk_fail_00080814;" (assignment_expression "puVar15 = PTR___stack_chk_fail_00080814" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00080814)();" (call_expression "(*(code *)PTR___stack_chk_fail_00080814)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00080814)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00080814" * (cast_expression "(code *)PTR___stack_chk_fail_00080814" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar1 = (**(code **)(puVar15 + 0x38728))();" (assignment_expression "uVar1 = (**(code **)(puVar15 + 0x38728))()" identifier = (call_expression "(**(code **)(puVar15 + 0x38728))()" (parenthesized_expression "(**(code **)(puVar15 + 0x38728))" ( (pointer_expression "**(code **)(puVar15 + 0x38728)" * (pointer_expression "*(code **)(puVar15 + 0x38728)" * (cast_expression "(code **)(puVar15 + 0x38728)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x38728)" ( (binary_expression "puVar15 + 0x38728" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (**(code **)(puVar15 + 0x3872c))(uVar1);" (assignment_expression "uVar1 = (**(code **)(puVar15 + 0x3872c))(uVar1)" identifier = (call_expression "(**(code **)(puVar15 + 0x3872c))(uVar1)" (parenthesized_expression "(**(code **)(puVar15 + 0x3872c))" ( (pointer_expression "**(code **)(puVar15 + 0x3872c)" * (pointer_expression "*(code **)(puVar15 + 0x3872c)" * (cast_expression "(code **)(puVar15 + 0x3872c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x3872c)" ( (binary_expression "puVar15 + 0x3872c" identifier + number_literal) ))))) )) (argument_list "(uVar1)" ( identifier )))) ;) (expression_statement "puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20);" (assignment_expression "puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20)" identifier = (cast_expression "(undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar15 + 0x38b40))(uVar1,0x20)" (parenthesized_expression "(**(code **)(puVar15 + 0x38b40))" ( (pointer_expression "**(code **)(puVar15 + 0x38b40)" * (pointer_expression "*(code **)(puVar15 + 0x38b40)" * (cast_expression "(code **)(puVar15 + 0x38b40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x38b40)" ( (binary_expression "puVar15 + 0x38b40" identifier + number_literal) ))))) )) (argument_list "(uVar1,0x20)" ( identifier , number_literal ))))) ;) (if_statement "if (puVar4 == (undefined1 *)0x0) {\n    iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;\n    pbVar2 = (byte *)0x0;\n    puVar4 = (undefined1 *)0x0;\n  }\n  else {\n    pcVar16 = puVar4 + 1;\n    *puVar4 = 0;\n    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);\n    if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }\n    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);\n    iVar3 = (uVar5 >> 2) * 3;\n    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);\n    iVar17 = 0;\n    while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }\n    if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }\n  }" if (parenthesized_expression "(puVar4 == (undefined1 *)0x0)" ( (binary_expression "puVar4 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;\n    pbVar2 = (byte *)0x0;\n    puVar4 = (undefined1 *)0x0;\n  }" { (expression_statement "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;" (assignment_expression "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20" identifier = (binary_expression "*(int *)(puVar15 + 0x38418) + -0x4a20" (pointer_expression "*(int *)(puVar15 + 0x38418)" * (cast_expression "(int *)(puVar15 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38418)" ( (binary_expression "puVar15 + 0x38418" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pbVar2 = (byte *)0x0;" (assignment_expression "pbVar2 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar4 = (undefined1 *)0x0;" (assignment_expression "puVar4 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pcVar16 = puVar4 + 1;\n    *puVar4 = 0;\n    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);\n    if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }\n    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);\n    iVar3 = (uVar5 >> 2) * 3;\n    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);\n    iVar17 = 0;\n    while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }\n    if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }\n  }" else (compound_statement "{\n    pcVar16 = puVar4 + 1;\n    *puVar4 = 0;\n    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);\n    if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }\n    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);\n    iVar3 = (uVar5 >> 2) * 3;\n    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);\n    iVar17 = 0;\n    while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }\n    if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }\n  }" { (expression_statement "pcVar16 = puVar4 + 1;" (assignment_expression "pcVar16 = puVar4 + 1" identifier = (binary_expression "puVar4 + 1" identifier + number_literal)) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);" (assignment_expression "puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20)" identifier = (cast_expression "(undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20)" (parenthesized_expression "(**(code **)(puVar15 + 0x38b40))" ( (pointer_expression "**(code **)(puVar15 + 0x38b40)" * (pointer_expression "*(code **)(puVar15 + 0x38b40)" * (cast_expression "(code **)(puVar15 + 0x38b40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x38b40)" ( (binary_expression "puVar15 + 0x38b40" identifier + number_literal) ))))) )) (argument_list "(pcVar16,0x20)" ( identifier , number_literal ))))) ;) (if_statement "if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }" if (parenthesized_expression "(puVar4 != (undefined1 *)0x0)" ( (binary_expression "puVar4 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }" { (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);" (assignment_expression "puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1)" identifier = (cast_expression "(undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar15 + 0x383e0))(puVar4 + 1)" (parenthesized_expression "(**(code **)(puVar15 + 0x383e0))" ( (pointer_expression "**(code **)(puVar15 + 0x383e0)" * (pointer_expression "*(code **)(puVar15 + 0x383e0)" * (cast_expression "(code **)(puVar15 + 0x383e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x383e0)" ( (binary_expression "puVar15 + 0x383e0" identifier + number_literal) ))))) )) (argument_list "(puVar4 + 1)" ( (binary_expression "puVar4 + 1" identifier + number_literal) ))))) ;) })) (expression_statement "uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);" (assignment_expression "uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16)" identifier = (call_expression "(**(code **)(puVar15 + 0x38bdc))(pcVar16)" (parenthesized_expression "(**(code **)(puVar15 + 0x38bdc))" ( (pointer_expression "**(code **)(puVar15 + 0x38bdc)" * (pointer_expression "*(code **)(puVar15 + 0x38bdc)" * (cast_expression "(code **)(puVar15 + 0x38bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x38bdc)" ( (binary_expression "puVar15 + 0x38bdc" identifier + number_literal) ))))) )) (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "iVar3 = (uVar5 >> 2) * 3;" (assignment_expression "iVar3 = (uVar5 >> 2) * 3" identifier = (binary_expression "(uVar5 >> 2) * 3" (parenthesized_expression "(uVar5 >> 2)" ( (binary_expression "uVar5 >> 2" identifier >> number_literal) )) * number_literal)) ;) (expression_statement "pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);" (assignment_expression "pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1)" identifier = (cast_expression "(byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar15 + 0x383b8))(iVar3,1)" (parenthesized_expression "(**(code **)(puVar15 + 0x383b8))" ( (pointer_expression "**(code **)(puVar15 + 0x383b8)" * (pointer_expression "*(code **)(puVar15 + 0x383b8)" * (cast_expression "(code **)(puVar15 + 0x383b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x383b8)" ( (binary_expression "puVar15 + 0x383b8" identifier + number_literal) ))))) )) (argument_list "(iVar3,1)" ( identifier , number_literal ))))) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }" { (expression_statement "iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);" (assignment_expression "iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4)" identifier = (call_expression "(**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4)" (parenthesized_expression "(**(code **)(puVar15 + 0x38ba0))" ( (pointer_expression "**(code **)(puVar15 + 0x38ba0)" * (pointer_expression "*(code **)(puVar15 + 0x38ba0)" * (cast_expression "(code **)(puVar15 + 0x38ba0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x38ba0)" ( (binary_expression "puVar15 + 0x38ba0" identifier + number_literal) ))))) )) (argument_list "(pcVar16,0,4)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar6 != 0) break;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }" if (parenthesized_expression "(iVar3 <= iVar17 + 2)" ( (binary_expression "iVar3 <= iVar17 + 2" identifier <= (binary_expression "iVar17 + 2" identifier + number_literal)) )) (compound_statement "{\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }" { (expression_statement "pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);" (assignment_expression "pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0)" identifier = (cast_expression "(byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0)" (parenthesized_expression "(**(code **)(puVar15 + 0x389cc))" ( (pointer_expression "**(code **)(puVar15 + 0x389cc)" * (pointer_expression "*(code **)(puVar15 + 0x389cc)" * (cast_expression "(code **)(puVar15 + 0x389cc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x389cc)" ( (binary_expression "puVar15 + 0x389cc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0)" ( (binary_expression "*(int *)(puVar15 + 0x38418) + -0x49f8" (pointer_expression "*(int *)(puVar15 + 0x38418)" * (cast_expression "(int *)(puVar15 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38418)" ( (binary_expression "puVar15 + 0x38418" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar15 + 0x38418) + -0x4e7c" (pointer_expression "*(int *)(puVar15 + 0x38418)" * (cast_expression "(int *)(puVar15 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38418)" ( (binary_expression "puVar15 + 0x38418" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar15 + 0x38418) + -0x46b0" (pointer_expression "*(int *)(puVar15 + 0x38418)" * (cast_expression "(int *)(puVar15 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38418)" ( (binary_expression "puVar15 + 0x38418" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return pbVar2;" return identifier ;) })) (expression_statement "iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);" (assignment_expression "iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17)" identifier = (call_expression "(**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17)" (parenthesized_expression "(**(code **)(puVar15 + 0x38498))" ( (pointer_expression "**(code **)(puVar15 + 0x38498)" * (pointer_expression "*(code **)(puVar15 + 0x38498)" * (cast_expression "(code **)(puVar15 + 0x38498)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x38498)" ( (binary_expression "puVar15 + 0x38498" identifier + number_literal) ))))) )) (argument_list "(pcVar16,pbVar2 + iVar17)" ( identifier , (binary_expression "pbVar2 + iVar17" identifier + identifier) )))) ;) (expression_statement "iVar17 = iVar17 + iVar6;" (assignment_expression "iVar17 = iVar17 + iVar6" identifier = (binary_expression "iVar17 + iVar6" identifier + identifier)) ;) (expression_statement "pcVar16 = pcVar16 + 4;" (assignment_expression "pcVar16 = pcVar16 + 4" identifier = (binary_expression "pcVar16 + 4" identifier + number_literal)) ;) })) (if_statement "if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }" if (parenthesized_expression "(*pcVar16 == '\0')" ( (binary_expression "*pcVar16 == '\0'" (pointer_expression "*pcVar16" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }" { (expression_statement "uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);" (assignment_expression "uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1)" identifier = (call_expression "(**(code **)(puVar15 + 0x38bdc))(uVar1)" (parenthesized_expression "(**(code **)(puVar15 + 0x38bdc))" ( (pointer_expression "**(code **)(puVar15 + 0x38bdc)" * (pointer_expression "*(code **)(puVar15 + 0x38bdc)" * (cast_expression "(code **)(puVar15 + 0x38bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x38bdc)" ( (binary_expression "puVar15 + 0x38bdc" identifier + number_literal) ))))) )) (argument_list "(uVar1)" ( identifier )))) ;) (if_statement "if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }" if (parenthesized_expression "((int)(uVar5 + 3) < iVar17)" ( (binary_expression "(int)(uVar5 + 3) < iVar17" (cast_expression "(int)(uVar5 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar5 + 3)" ( (binary_expression "uVar5 + 3" identifier + number_literal) ))) < identifier) )) (compound_statement "{\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }" { (if_statement "if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }" if (parenthesized_expression "(uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8))" ( (binary_expression "uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)" identifier == (parenthesized_expression "((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)" ( (binary_expression "(uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8" (binary_expression "(uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3]" (binary_expression "(uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10" (binary_expression "(uint)*pbVar2 << 0x18" (binary_expression "(uint)*pbVar2" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal) | (binary_expression "(uint)pbVar2[1] << 0x10" (cast_expression "(uint)pbVar2[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar2[1]" identifier [ number_literal ])) << number_literal)) | (cast_expression "(uint)pbVar2[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar2[3]" identifier [ number_literal ]))) | (binary_expression "(uint)pbVar2[2] << 8" (cast_expression "(uint)pbVar2[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar2[2]" identifier [ number_literal ])) << number_literal)) ))) )) (compound_statement "{\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }" { (expression_statement "iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);" (assignment_expression "iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5)" identifier = (call_expression "(**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5)" (parenthesized_expression "(**(code **)(puVar15 + 0x38b88))" ( (pointer_expression "**(code **)(puVar15 + 0x38b88)" * (pointer_expression "*(code **)(puVar15 + 0x38b88)" * (cast_expression "(code **)(puVar15 + 0x38b88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x38b88)" ( (binary_expression "puVar15 + 0x38b88" identifier + number_literal) ))))) )) (argument_list "(pbVar2 + 4,uVar1,uVar5)" ( (binary_expression "pbVar2 + 4" identifier + number_literal) , identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }" { (if_statement "if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }" if (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" ( (binary_expression "puVar12 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }" { (expression_statement "uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);" (assignment_expression "uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1)" identifier = (call_expression "(**(code **)(puVar15 + 0x383e0))(uVar1)" (parenthesized_expression "(**(code **)(puVar15 + 0x383e0))" ( (pointer_expression "**(code **)(puVar15 + 0x383e0)" * (pointer_expression "*(code **)(puVar15 + 0x383e0)" * (cast_expression "(code **)(puVar15 + 0x383e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x383e0)" ( (binary_expression "puVar15 + 0x383e0" identifier + number_literal) ))))) )) (argument_list "(uVar1)" ( identifier )))) ;) (expression_statement "*puVar12 = uVar7;" (assignment_expression "*puVar12 = uVar7" (pointer_expression "*puVar12" * identifier) = identifier) ;) })) (if_statement "if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }" if (parenthesized_expression "(pbVar13 != (byte *)0x0)" ( (binary_expression "pbVar13 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              *(int *)pbVar13 = iVar17;\n            }" { (expression_statement "*(int *)pbVar13 = iVar17;" (assignment_expression "*(int *)pbVar13 = iVar17" (pointer_expression "*(int *)pbVar13" * (cast_expression "(int *)pbVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) })) (if_statement "if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }" if (parenthesized_expression "(puVar14 == (undefined4 *)0x0)" ( (binary_expression "puVar14 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }" { (expression_statement "(**(code **)(puVar15 + 0x383a8))(puVar4);" (call_expression "(**(code **)(puVar15 + 0x383a8))(puVar4)" (parenthesized_expression "(**(code **)(puVar15 + 0x383a8))" ( (pointer_expression "**(code **)(puVar15 + 0x383a8)" * (pointer_expression "*(code **)(puVar15 + 0x383a8)" * (cast_expression "(code **)(puVar15 + 0x383a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x383a8)" ( (binary_expression "puVar15 + 0x383a8" identifier + number_literal) ))))) )) (argument_list "(puVar4)" ( identifier ))) ;) }) (else_clause "else {\n              *puVar14 = puVar4;\n            }" else (compound_statement "{\n              *puVar14 = puVar4;\n            }" { (expression_statement "*puVar14 = puVar4;" (assignment_expression "*puVar14 = puVar4" (pointer_expression "*puVar14" * identifier) = identifier) ;) }))) (expression_statement "(**(code **)(puVar15 + 0x383a8))(uVar1);" (call_expression "(**(code **)(puVar15 + 0x383a8))(uVar1)" (parenthesized_expression "(**(code **)(puVar15 + 0x383a8))" ( (pointer_expression "**(code **)(puVar15 + 0x383a8)" * (pointer_expression "*(code **)(puVar15 + 0x383a8)" * (cast_expression "(code **)(puVar15 + 0x383a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x383a8)" ( (binary_expression "puVar15 + 0x383a8" identifier + number_literal) ))))) )) (argument_list "(uVar1)" ( identifier ))) ;) (return_statement "return pbVar2;" return identifier ;) })) (expression_statement "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;" (assignment_expression "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94" identifier = (binary_expression "*(int *)(puVar15 + 0x38418) + -0x4a94" (pointer_expression "*(int *)(puVar15 + 0x38418)" * (cast_expression "(int *)(puVar15 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38418)" ( (binary_expression "puVar15 + 0x38418" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }" else (compound_statement "{\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }" { (expression_statement "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;" (assignment_expression "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94" identifier = (binary_expression "*(int *)(puVar15 + 0x38418) + -0x4a94" (pointer_expression "*(int *)(puVar15 + 0x38418)" * (cast_expression "(int *)(puVar15 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38418)" ( (binary_expression "puVar15 + 0x38418" identifier + number_literal) )))) + number_literal)) ;) }))) }) (else_clause "else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }" else (compound_statement "{\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }" { (expression_statement "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;" (assignment_expression "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94" identifier = (binary_expression "*(int *)(puVar15 + 0x38418) + -0x4a94" (pointer_expression "*(int *)(puVar15 + 0x38418)" * (cast_expression "(int *)(puVar15 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38418)" ( (binary_expression "puVar15 + 0x38418" identifier + number_literal) )))) + number_literal)) ;) }))) }) (else_clause "else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }" else (compound_statement "{\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }" { (expression_statement "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;" (assignment_expression "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c" identifier = (binary_expression "*(int *)(puVar15 + 0x38418) + -0x4a5c" (pointer_expression "*(int *)(puVar15 + 0x38418)" * (cast_expression "(int *)(puVar15 + 0x38418)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 0x38418)" ( (binary_expression "puVar15 + 0x38418" identifier + number_literal) )))) + number_literal)) ;) }))) }))) (expression_statement "(**(code **)(puVar15 + 0x383a8))(uVar1);" (call_expression "(**(code **)(puVar15 + 0x383a8))(uVar1)" (parenthesized_expression "(**(code **)(puVar15 + 0x383a8))" ( (pointer_expression "**(code **)(puVar15 + 0x383a8)" * (pointer_expression "*(code **)(puVar15 + 0x383a8)" * (cast_expression "(code **)(puVar15 + 0x383a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x383a8)" ( (binary_expression "puVar15 + 0x383a8" identifier + number_literal) ))))) )) (argument_list "(uVar1)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar15 + 0x383a8))(puVar4);" (call_expression "(**(code **)(puVar15 + 0x383a8))(puVar4)" (parenthesized_expression "(**(code **)(puVar15 + 0x383a8))" ( (pointer_expression "**(code **)(puVar15 + 0x383a8)" * (pointer_expression "*(code **)(puVar15 + 0x383a8)" * (cast_expression "(code **)(puVar15 + 0x383a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x383a8)" ( (binary_expression "puVar15 + 0x383a8" identifier + number_literal) ))))) )) (argument_list "(puVar4)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar15 + 0x383a8))(pbVar2);" (call_expression "(**(code **)(puVar15 + 0x383a8))(pbVar2)" (parenthesized_expression "(**(code **)(puVar15 + 0x383a8))" ( (pointer_expression "**(code **)(puVar15 + 0x383a8)" * (pointer_expression "*(code **)(puVar15 + 0x383a8)" * (cast_expression "(code **)(puVar15 + 0x383a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 0x383a8)" ( (binary_expression "puVar15 + 0x383a8" identifier + number_literal) ))))) )) (argument_list "(pbVar2)" ( identifier ))) ;) (expression_statement "__gp_1 = iVar3;" (assignment_expression "__gp_1 = iVar3" identifier = identifier) ;) (return_statement "return (byte *)0x0;" return (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (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 IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (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 IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) })) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) }))) (goto_statement goto statement_identifier ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression (pointer_expression * IDENT) != LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (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 IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) << LIT) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT)) | (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( 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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) << LIT) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT)) | (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })))
(function_definition "byte * rfc4716_loadpub(undefined4 param_1,undefined4 *param_2,byte *param_3,undefined4 *param_4,\n                      undefined4 *param_5)\n\n{\n  undefined4 uVar1;\n  byte *pbVar2;\n  int iVar3;\n  byte bVar8;\n  undefined1 *puVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 uVar7;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 *puVar12;\n  byte *pbVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  int iVar17;\n  byte *pbVar18;\n  undefined *puVar19;\n  undefined4 *puVar20;\n  byte *pbVar21;\n  undefined4 *puVar22;\n  byte *pbVar23;\n  undefined4 local_58;\n  int local_50;\n  undefined4 uStack_34;\n  byte abStack_30 [4];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_00080958;\n  puVar12 = param_2;\n  pbVar13 = param_3;\n  puVar14 = param_4;\n  uVar1 = (*(code *)PTR_fgetline_00080444)();\n  pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n  if (pbVar2 == (byte *)0x0) {\n    puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    pbVar23 = (byte *)0x0;\n    local_58 = 0;\n  }\n  else {\n    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);\n    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n    if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }\n  }\n  goto LAB_000477c4;\n  while (puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d) {\nLAB_00047bb8:\n    bVar8 = *pbVar2;\n    pbVar18 = pbVar2;\n    while (bVar8 != 0) {\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n    pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n    if (pbVar2 == (byte *)0x0) {\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }\n  }\nLAB_00047a78:\n  puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4);\n  iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n  if (iVar3 == 0) {\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    pbVar2 = (byte *)0x0;\n    if ((int)pbVar9 < 4) {\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }\n    else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }\n  }\n  else {\n    puVar15 = PTR_DAT_00080134 + -0x4b30;\n  }\nLAB_000477c4:\n  (*(code *)PTR_safefree_000800c4)(pbVar2);\n  (*(code *)PTR_safefree_000800c4)(local_58);\n  (*(code *)PTR_safefree_000800c4)(pbVar23);\n  if (param_5 == (undefined4 *)0x0) {\n    pbVar23 = (byte *)0x0;\n  }\n  else {\n    *param_5 = puVar15;\n    pbVar23 = (byte *)0x0;\n  }\nLAB_00047814:\n  if (local_2c == *(int *)PTR___stack_chk_guard_00080958) {\n    return pbVar23;\n  }\n  puVar15 = PTR___stack_chk_fail_00080814;\n  (*(code *)PTR___stack_chk_fail_00080814)();\n  uVar1 = (**(code **)(puVar15 + 0x38728))();\n  uVar1 = (**(code **)(puVar15 + 0x3872c))(uVar1);\n  puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20);\n  if (puVar4 == (undefined1 *)0x0) {\n    iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;\n    pbVar2 = (byte *)0x0;\n    puVar4 = (undefined1 *)0x0;\n  }\n  else {\n    pcVar16 = puVar4 + 1;\n    *puVar4 = 0;\n    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);\n    if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }\n    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);\n    iVar3 = (uVar5 >> 2) * 3;\n    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);\n    iVar17 = 0;\n    while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }\n    if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }\n  }\n  (**(code **)(puVar15 + 0x383a8))(uVar1);\n  (**(code **)(puVar15 + 0x383a8))(puVar4);\n  (**(code **)(puVar15 + 0x383a8))(pbVar2);\n  __gp_1 = iVar3;\n  return (byte *)0x0;\n}" (type_identifier "byte") (pointer_declarator "* rfc4716_loadpub(undefined4 param_1,undefined4 *param_2,byte *param_3,undefined4 *param_4,\n                      undefined4 *param_5)" (* "*") (function_declarator "rfc4716_loadpub(undefined4 param_1,undefined4 *param_2,byte *param_3,undefined4 *param_4,\n                      undefined4 *param_5)" (identifier "rfc4716_loadpub") (parameter_list "(undefined4 param_1,undefined4 *param_2,byte *param_3,undefined4 *param_4,\n                      undefined4 *param_5)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "byte *param_3" (type_identifier "byte") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined4 *param_4" (type_identifier "undefined4") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "undefined4 *param_5" (type_identifier "undefined4") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) () ")")))) (compound_statement "{\n  undefined4 uVar1;\n  byte *pbVar2;\n  int iVar3;\n  byte bVar8;\n  undefined1 *puVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 uVar7;\n  byte *pbVar9;\n  byte *pbVar10;\n  byte *pbVar11;\n  undefined4 *puVar12;\n  byte *pbVar13;\n  undefined4 *puVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  int iVar17;\n  byte *pbVar18;\n  undefined *puVar19;\n  undefined4 *puVar20;\n  byte *pbVar21;\n  undefined4 *puVar22;\n  byte *pbVar23;\n  undefined4 local_58;\n  int local_50;\n  undefined4 uStack_34;\n  byte abStack_30 [4];\n  int local_2c;\n  \n  local_2c = *(int *)PTR___stack_chk_guard_00080958;\n  puVar12 = param_2;\n  pbVar13 = param_3;\n  puVar14 = param_4;\n  uVar1 = (*(code *)PTR_fgetline_00080444)();\n  pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n  if (pbVar2 == (byte *)0x0) {\n    puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    pbVar23 = (byte *)0x0;\n    local_58 = 0;\n  }\n  else {\n    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);\n    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n    if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }\n  }\n  goto LAB_000477c4;\n  while (puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d) {\nLAB_00047bb8:\n    bVar8 = *pbVar2;\n    pbVar18 = pbVar2;\n    while (bVar8 != 0) {\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n    pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n    if (pbVar2 == (byte *)0x0) {\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }\n  }\nLAB_00047a78:\n  puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4);\n  iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n  if (iVar3 == 0) {\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    pbVar2 = (byte *)0x0;\n    if ((int)pbVar9 < 4) {\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }\n    else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }\n  }\n  else {\n    puVar15 = PTR_DAT_00080134 + -0x4b30;\n  }\nLAB_000477c4:\n  (*(code *)PTR_safefree_000800c4)(pbVar2);\n  (*(code *)PTR_safefree_000800c4)(local_58);\n  (*(code *)PTR_safefree_000800c4)(pbVar23);\n  if (param_5 == (undefined4 *)0x0) {\n    pbVar23 = (byte *)0x0;\n  }\n  else {\n    *param_5 = puVar15;\n    pbVar23 = (byte *)0x0;\n  }\nLAB_00047814:\n  if (local_2c == *(int *)PTR___stack_chk_guard_00080958) {\n    return pbVar23;\n  }\n  puVar15 = PTR___stack_chk_fail_00080814;\n  (*(code *)PTR___stack_chk_fail_00080814)();\n  uVar1 = (**(code **)(puVar15 + 0x38728))();\n  uVar1 = (**(code **)(puVar15 + 0x3872c))(uVar1);\n  puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20);\n  if (puVar4 == (undefined1 *)0x0) {\n    iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;\n    pbVar2 = (byte *)0x0;\n    puVar4 = (undefined1 *)0x0;\n  }\n  else {\n    pcVar16 = puVar4 + 1;\n    *puVar4 = 0;\n    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);\n    if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }\n    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);\n    iVar3 = (uVar5 >> 2) * 3;\n    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);\n    iVar17 = 0;\n    while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }\n    if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }\n  }\n  (**(code **)(puVar15 + 0x383a8))(uVar1);\n  (**(code **)(puVar15 + 0x383a8))(puVar4);\n  (**(code **)(puVar15 + 0x383a8))(pbVar2);\n  __gp_1 = iVar3;\n  return (byte *)0x0;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "byte *pbVar2;" (type_identifier "byte") (pointer_declarator "*pbVar2" (* "*") (identifier "pbVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "byte bVar8;" (type_identifier "byte") (identifier "bVar8") (; ";")) (declaration "undefined1 *puVar4;" (type_identifier "undefined1") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "byte *pbVar10;" (type_identifier "byte") (pointer_declarator "*pbVar10" (* "*") (identifier "pbVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "undefined4 *puVar12;" (type_identifier "undefined4") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined *puVar15;" (type_identifier "undefined") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "char *pcVar16;" (primitive_type "char") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "undefined *puVar19;" (type_identifier "undefined") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "undefined4 *puVar20;" (type_identifier "undefined4") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "byte *pbVar21;" (type_identifier "byte") (pointer_declarator "*pbVar21" (* "*") (identifier "pbVar21")) (; ";")) (declaration "undefined4 *puVar22;" (type_identifier "undefined4") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "byte *pbVar23;" (type_identifier "byte") (pointer_declarator "*pbVar23" (* "*") (identifier "pbVar23")) (; ";")) (declaration "undefined4 local_58;" (type_identifier "undefined4") (identifier "local_58") (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "undefined4 uStack_34;" (type_identifier "undefined4") (identifier "uStack_34") (; ";")) (declaration "byte abStack_30 [4];" (type_identifier "byte") (array_declarator "abStack_30 [4]" (identifier "abStack_30") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00080958;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00080958" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00080958" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00080958" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00080958")))) (; ";")) (expression_statement "puVar12 = param_2;" (assignment_expression "puVar12 = param_2" (identifier "puVar12") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pbVar13 = param_3;" (assignment_expression "pbVar13 = param_3" (identifier "pbVar13") (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar14 = param_4;" (assignment_expression "puVar14 = param_4" (identifier "puVar14") (= "=") (identifier "param_4")) (; ";")) (expression_statement "uVar1 = (*(code *)PTR_fgetline_00080444)();" (assignment_expression "uVar1 = (*(code *)PTR_fgetline_00080444)()" (identifier "uVar1") (= "=") (call_expression "(*(code *)PTR_fgetline_00080444)()" (parenthesized_expression "(*(code *)PTR_fgetline_00080444)" (( "(") (pointer_expression "*(code *)PTR_fgetline_00080444" (* "*") (cast_expression "(code *)PTR_fgetline_00080444" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fgetline_00080444"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);" (assignment_expression "pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1)" (identifier "pbVar2") (= "=") (cast_expression "(byte *)(*(code *)PTR_chomp_00080448)(uVar1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_chomp_00080448)(uVar1)" (parenthesized_expression "(*(code *)PTR_chomp_00080448)" (( "(") (pointer_expression "*(code *)PTR_chomp_00080448" (* "*") (cast_expression "(code *)PTR_chomp_00080448" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_chomp_00080448"))) () ")")) (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))))) (; ";")) (if_statement "if (pbVar2 == (byte *)0x0) {\n    puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    pbVar23 = (byte *)0x0;\n    local_58 = 0;\n  }\n  else {\n    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);\n    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n    if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }\n  }" (if "if") (parenthesized_expression "(pbVar2 == (byte *)0x0)" (( "(") (binary_expression "pbVar2 == (byte *)0x0" (identifier "pbVar2") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    pbVar23 = (byte *)0x0;\n    local_58 = 0;\n  }" ({ "{") (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4bb8;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4bb8" (identifier "puVar15") (= "=") (binary_expression "PTR_DAT_00080134 + -0x4bb8" (identifier "PTR_DAT_00080134") (+ "+") (number_literal "-0x4bb8"))) (; ";")) (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" (identifier "pbVar23") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);\n    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n    if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }\n  }" (else "else") (compound_statement "{\n    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);\n    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n    if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }\n  }" ({ "{") (expression_statement "puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);" (assignment_expression "puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4)" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)(PTR_DAT_00080134 + -0x4ae4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_00080134 + -0x4ae4)" (( "(") (binary_expression "PTR_DAT_00080134 + -0x4ae4" (identifier "PTR_DAT_00080134") (+ "+") (number_literal "-0x4ae4")) () ")")))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strcmp_000808cc)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strcmp_000808cc)" (( "(") (pointer_expression "*(code *)PTR_strcmp_000808cc" (* "*") (cast_expression "(code *)PTR_strcmp_000808cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_000808cc"))) () ")")) (argument_list "(pbVar2)" (( "(") (identifier "pbVar2") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }\n    else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)PTR_safefree_000800c4)(pbVar2);\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4ac4;\n      puVar19 = PTR_DAT_00080134 + -0x4c58;\n      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);\n      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);\n      while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }\n      puVar15 = PTR_DAT_00080134 + -0x4b04;\n      pbVar23 = (byte *)0x0;\n    }" ({ "{") (expression_statement "(*(code *)PTR_safefree_000800c4)(pbVar2);" (call_expression "(*(code *)PTR_safefree_000800c4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" (( "(") (pointer_expression "*(code *)PTR_safefree_000800c4" (* "*") (cast_expression "(code *)PTR_safefree_000800c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safefree_000800c4"))) () ")")) (argument_list "(pbVar2)" (( "(") (identifier "pbVar2") () ")"))) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4ac4;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4ac4" (identifier "puVar15") (= "=") (binary_expression "PTR_DAT_00080134 + -0x4ac4" (identifier "PTR_DAT_00080134") (+ "+") (number_literal "-0x4ac4"))) (; ";")) (expression_statement "puVar19 = PTR_DAT_00080134 + -0x4c58;" (assignment_expression "puVar19 = PTR_DAT_00080134 + -0x4c58" (identifier "puVar19") (= "=") (binary_expression "PTR_DAT_00080134 + -0x4c58" (identifier "PTR_DAT_00080134") (+ "+") (number_literal "-0x4c58"))) (; ";")) (expression_statement "puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);" (assignment_expression "puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0)" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)(PTR_DAT_00080134 + -0x4ac0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_00080134 + -0x4ac0)" (( "(") (binary_expression "PTR_DAT_00080134 + -0x4ac0" (identifier "PTR_DAT_00080134") (+ "+") (number_literal "-0x4ac0")) () ")")))) (; ";")) (expression_statement "puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);" (assignment_expression "puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8)" (identifier "puVar22") (= "=") (cast_expression "(undefined4 *)(PTR_DAT_00080134 + -0x4ab8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_00080134 + -0x4ab8)" (( "(") (binary_expression "PTR_DAT_00080134 + -0x4ab8" (identifier "PTR_DAT_00080134") (+ "+") (number_literal "-0x4ab8")) () ")")))) (; ";")) (while_statement "while( true ) {\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n        if (pbVar2 == (byte *)0x0) break;\n        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);\n        if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }\n        *puVar4 = 0;\n        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);\n        puVar12 = puVar20;\n        if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }\n        (*(code *)PTR_safefree_000800c4)(pbVar2);\n      }" ({ "{") (expression_statement "uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);" (assignment_expression "uVar1 = (*(code *)PTR_fgetline_00080444)(param_1)" (identifier "uVar1") (= "=") (call_expression "(*(code *)PTR_fgetline_00080444)(param_1)" (parenthesized_expression "(*(code *)PTR_fgetline_00080444)" (( "(") (pointer_expression "*(code *)PTR_fgetline_00080444" (* "*") (cast_expression "(code *)PTR_fgetline_00080444" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fgetline_00080444"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);" (assignment_expression "pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1)" (identifier "pbVar2") (= "=") (cast_expression "(byte *)(*(code *)PTR_chomp_00080448)(uVar1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_chomp_00080448)(uVar1)" (parenthesized_expression "(*(code *)PTR_chomp_00080448)" (( "(") (pointer_expression "*(code *)PTR_chomp_00080448" (* "*") (cast_expression "(code *)PTR_chomp_00080448" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_chomp_00080448"))) () ")")) (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))))) (; ";")) (if_statement "if (pbVar2 == (byte *)0x0) break;" (if "if") (parenthesized_expression "(pbVar2 == (byte *)0x0)" (( "(") (binary_expression "pbVar2 == (byte *)0x0" (identifier "pbVar2") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);" (assignment_expression "puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15)" (identifier "puVar4") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15)" (parenthesized_expression "(*(code *)PTR_strstr_0008096c)" (( "(") (pointer_expression "*(code *)PTR_strstr_0008096c" (* "*") (cast_expression "(code *)PTR_strstr_0008096c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strstr_0008096c"))) () ")")) (argument_list "(pbVar2,puVar15)" (( "(") (identifier "pbVar2") (, ",") (identifier "puVar15") () ")"))))) (; ";")) (if_statement "if (puVar4 == (undefined1 *)0x0) {\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }" (if "if") (parenthesized_expression "(puVar4 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar4 == (undefined1 *)0x0" (identifier "puVar4") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          puVar12 = (undefined4 *)0x1;\n          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);\n          pbVar10 = (byte *)0x0;\n          pbVar9 = pbVar10;\n          if (*pbVar2 == 0x2d) goto LAB_00047a78;\n          local_50 = 0x1000;\n          pbVar21 = pbVar10;\n          goto LAB_00047bb8;\n        }" ({ "{") (expression_statement "puVar12 = (undefined4 *)0x1;" (assignment_expression "puVar12 = (undefined4 *)0x1" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)0x1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);" (assignment_expression "pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000)" (identifier "pbVar23") (= "=") (cast_expression "(byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_safemalloc_000800d4)(0x1000)" (parenthesized_expression "(*(code *)PTR_safemalloc_000800d4)" (( "(") (pointer_expression "*(code *)PTR_safemalloc_000800d4" (* "*") (cast_expression "(code *)PTR_safemalloc_000800d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safemalloc_000800d4"))) () ")")) (argument_list "(0x1000)" (( "(") (number_literal "0x1000") () ")"))))) (; ";")) (expression_statement "pbVar10 = (byte *)0x0;" (assignment_expression "pbVar10 = (byte *)0x0" (identifier "pbVar10") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" (identifier "pbVar9") (= "=") (identifier "pbVar10")) (; ";")) (if_statement "if (*pbVar2 == 0x2d) goto LAB_00047a78;" (if "if") (parenthesized_expression "(*pbVar2 == 0x2d)" (( "(") (binary_expression "*pbVar2 == 0x2d" (pointer_expression "*pbVar2" (* "*") (identifier "pbVar2")) (== "==") (number_literal "0x2d")) () ")")) (goto_statement "goto LAB_00047a78;" (goto "goto") (statement_identifier "LAB_00047a78") (; ";"))) (expression_statement "local_50 = 0x1000;" (assignment_expression "local_50 = 0x1000" (identifier "local_50") (= "=") (number_literal "0x1000")) (; ";")) (expression_statement "pbVar21 = pbVar10;" (assignment_expression "pbVar21 = pbVar10" (identifier "pbVar21") (= "=") (identifier "pbVar10")) (; ";")) (goto_statement "goto LAB_00047bb8;" (goto "goto") (statement_identifier "LAB_00047bb8") (; ";")) (} "}"))) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19)" (parenthesized_expression "(*(code *)PTR_strcmp_000808cc)" (( "(") (pointer_expression "*(code *)PTR_strcmp_000808cc" (* "*") (cast_expression "(code *)PTR_strcmp_000808cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_000808cc"))) () ")")) (argument_list "(pbVar2,puVar19)" (( "(") (identifier "pbVar2") (, ",") (identifier "puVar19") () ")")))) (; ";")) (expression_statement "puVar12 = puVar20;" (assignment_expression "puVar12 = puVar20" (identifier "puVar12") (= "=") (identifier "puVar20")) (; ";")) (if_statement "if (iVar3 == 0) {\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }\n        else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pbVar23 = puVar4 + 2;\n          if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }\n          bVar8 = *pbVar23;\n          pbVar10 = pbVar2;\n          if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }\n          *pbVar10 = 0;\n          (*(code *)PTR_safefree_000800c4)(local_58);\n          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);\n        }" ({ "{") (expression_statement "pbVar23 = puVar4 + 2;" (assignment_expression "pbVar23 = puVar4 + 2" (identifier "pbVar23") (= "=") (binary_expression "puVar4 + 2" (identifier "puVar4") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (puVar4[2] == '\"') {\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }" (if "if") (parenthesized_expression "(puVar4[2] == '\"')" (( "(") (binary_expression "puVar4[2] == '\"'" (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) () ")")) (compound_statement "{\n            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);\n            if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }\n          }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);" (assignment_expression "iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strlen_000808f8)(pbVar23)" (parenthesized_expression "(*(code *)PTR_strlen_000808f8)" (( "(") (pointer_expression "*(code *)PTR_strlen_000808f8" (* "*") (cast_expression "(code *)PTR_strlen_000808f8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000808f8"))) () ")")) (argument_list "(pbVar23)" (( "(") (identifier "pbVar23") () ")")))) (; ";")) (if_statement "if (pbVar23[iVar3 + -1] == 0x22) {\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }" (if "if") (parenthesized_expression "(pbVar23[iVar3 + -1] == 0x22)" (( "(") (binary_expression "pbVar23[iVar3 + -1] == 0x22" (subscript_expression "pbVar23[iVar3 + -1]" (identifier "pbVar23") ([ "[") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1")) (] "]")) (== "==") (number_literal "0x22")) () ")")) (compound_statement "{\n              pbVar23[iVar3 + -1] = 0;\n              pbVar23 = puVar4 + 3;\n            }" ({ "{") (expression_statement "pbVar23[iVar3 + -1] = 0;" (assignment_expression "pbVar23[iVar3 + -1] = 0" (subscript_expression "pbVar23[iVar3 + -1]" (identifier "pbVar23") ([ "[") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1")) (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar23 = puVar4 + 3;" (assignment_expression "pbVar23 = puVar4 + 3" (identifier "pbVar23") (= "=") (binary_expression "puVar4 + 3" (identifier "puVar4") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "bVar8 = *pbVar23;" (assignment_expression "bVar8 = *pbVar23" (identifier "bVar8") (= "=") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23"))) (; ";")) (expression_statement "pbVar10 = pbVar2;" (assignment_expression "pbVar10 = pbVar2" (identifier "pbVar10") (= "=") (identifier "pbVar2")) (; ";")) (if_statement "if (bVar8 != 0) {\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }" (if "if") (parenthesized_expression "(bVar8 != 0)" (( "(") (binary_expression "bVar8 != 0" (identifier "bVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            puVar12 = (undefined4 *)&DAT_0000005c;\n            pbVar9 = pbVar2;\n            do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);\n          }" ({ "{") (expression_statement "puVar12 = (undefined4 *)&DAT_0000005c;" (assignment_expression "puVar12 = (undefined4 *)&DAT_0000005c" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)&DAT_0000005c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000005c" (& "&") (identifier "DAT_0000005c")))) (; ";")) (expression_statement "pbVar9 = pbVar2;" (assignment_expression "pbVar9 = pbVar2" (identifier "pbVar9") (= "=") (identifier "pbVar2")) (; ";")) (do_statement "do {\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            } while (bVar8 != 0);" (do "do") (compound_statement "{\n              pbVar21 = pbVar23;\n              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }\n              pbVar10 = pbVar9 + 1;\n              *pbVar9 = *pbVar21;\n              pbVar23 = pbVar21 + 1;\n              bVar8 = pbVar21[1];\n              pbVar9 = pbVar10;\n            }" ({ "{") (expression_statement "pbVar21 = pbVar23;" (assignment_expression "pbVar21 = pbVar23" (identifier "pbVar21") (= "=") (identifier "pbVar23")) (; ";")) (if_statement "if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {\n                pbVar21 = pbVar23;\n              }" (if "if") (parenthesized_expression "((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0))" (( "(") (binary_expression "(bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)" (parenthesized_expression "(bVar8 == 0x5c)" (( "(") (binary_expression "bVar8 == 0x5c" (identifier "bVar8") (== "==") (number_literal "0x5c")) () ")")) (&& "&&") (parenthesized_expression "(pbVar21 = pbVar23 + 1, pbVar23[1] == 0)" (( "(") (comma_expression "pbVar21 = pbVar23 + 1, pbVar23[1] == 0" (assignment_expression "pbVar21 = pbVar23 + 1" (identifier "pbVar21") (= "=") (binary_expression "pbVar23 + 1" (identifier "pbVar23") (+ "+") (number_literal "1"))) (, ",") (binary_expression "pbVar23[1] == 0" (subscript_expression "pbVar23[1]" (identifier "pbVar23") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                pbVar21 = pbVar23;\n              }" ({ "{") (expression_statement "pbVar21 = pbVar23;" (assignment_expression "pbVar21 = pbVar23" (identifier "pbVar21") (= "=") (identifier "pbVar23")) (; ";")) (} "}"))) (expression_statement "pbVar10 = pbVar9 + 1;" (assignment_expression "pbVar10 = pbVar9 + 1" (identifier "pbVar10") (= "=") (binary_expression "pbVar9 + 1" (identifier "pbVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar9 = *pbVar21;" (assignment_expression "*pbVar9 = *pbVar21" (pointer_expression "*pbVar9" (* "*") (identifier "pbVar9")) (= "=") (pointer_expression "*pbVar21" (* "*") (identifier "pbVar21"))) (; ";")) (expression_statement "pbVar23 = pbVar21 + 1;" (assignment_expression "pbVar23 = pbVar21 + 1" (identifier "pbVar23") (= "=") (binary_expression "pbVar21 + 1" (identifier "pbVar21") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar8 = pbVar21[1];" (assignment_expression "bVar8 = pbVar21[1]" (identifier "bVar8") (= "=") (subscript_expression "pbVar21[1]" (identifier "pbVar21") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar9 = pbVar10;" (assignment_expression "pbVar9 = pbVar10" (identifier "pbVar9") (= "=") (identifier "pbVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar8 != 0)" (( "(") (binary_expression "bVar8 != 0" (identifier "bVar8") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "*pbVar10 = 0;" (assignment_expression "*pbVar10 = 0" (pointer_expression "*pbVar10" (* "*") (identifier "pbVar10")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)PTR_safefree_000800c4)(local_58);" (call_expression "(*(code *)PTR_safefree_000800c4)(local_58)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" (( "(") (pointer_expression "*(code *)PTR_safefree_000800c4" (* "*") (cast_expression "(code *)PTR_safefree_000800c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safefree_000800c4"))) () ")")) (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (expression_statement "local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);" (assignment_expression "local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2)" (identifier "local_58") (= "=") (call_expression "(*(code *)PTR_dupstr_000800fc)(pbVar2)" (parenthesized_expression "(*(code *)PTR_dupstr_000800fc)" (( "(") (pointer_expression "*(code *)PTR_dupstr_000800fc" (* "*") (cast_expression "(code *)PTR_dupstr_000800fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dupstr_000800fc"))) () ")")) (argument_list "(pbVar2)" (( "(") (identifier "pbVar2") () ")")))) (; ";")) (} "}")) (else_clause "else {\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }" (else "else") (compound_statement "{\n          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);\n          if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }\n        }" ({ "{") (expression_statement "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strcmp_000808cc)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strcmp_000808cc)" (( "(") (pointer_expression "*(code *)PTR_strcmp_000808cc" (* "*") (cast_expression "(code *)PTR_strcmp_000808cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_000808cc"))) () ")")) (argument_list "(pbVar2)" (( "(") (identifier "pbVar2") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            pbVar13 = (byte *)0x2;\n            puVar12 = puVar22;\n            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);\n            if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }\n          }" ({ "{") (expression_statement "pbVar13 = (byte *)0x2;" (assignment_expression "pbVar13 = (byte *)0x2" (identifier "pbVar13") (= "=") (cast_expression "(byte *)0x2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (expression_statement "puVar12 = puVar22;" (assignment_expression "puVar12 = puVar22" (identifier "puVar12") (= "=") (identifier "puVar22")) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);" (assignment_expression "iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strncmp_000807e8)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strncmp_000807e8)" (( "(") (pointer_expression "*(code *)PTR_strncmp_000807e8" (* "*") (cast_expression "(code *)PTR_strncmp_000807e8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strncmp_000807e8"))) () ")")) (argument_list "(pbVar2)" (( "(") (identifier "pbVar2") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              pbVar23 = (byte *)0x0;\n              puVar15 = PTR_DAT_00080134 + -0x4b8c;\n              goto LAB_000477c4;\n            }" ({ "{") (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" (identifier "pbVar23") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4b8c;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4b8c" (identifier "puVar15") (= "=") (binary_expression "PTR_DAT_00080134 + -0x4b8c" (identifier "PTR_DAT_00080134") (+ "+") (number_literal "-0x4b8c"))) (; ";")) (goto_statement "goto LAB_000477c4;" (goto "goto") (statement_identifier "LAB_000477c4") (; ";")) (} "}"))) (} "}"))) (} "}")))) (expression_statement "(*(code *)PTR_safefree_000800c4)(pbVar2);" (call_expression "(*(code *)PTR_safefree_000800c4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" (( "(") (pointer_expression "*(code *)PTR_safefree_000800c4" (* "*") (cast_expression "(code *)PTR_safefree_000800c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safefree_000800c4"))) () ")")) (argument_list "(pbVar2)" (( "(") (identifier "pbVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4b04;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4b04" (identifier "puVar15") (= "=") (binary_expression "PTR_DAT_00080134 + -0x4b04" (identifier "PTR_DAT_00080134") (+ "+") (number_literal "-0x4b04"))) (; ";")) (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" (identifier "pbVar23") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }" (else "else") (compound_statement "{\n      pbVar23 = (byte *)0x0;\n      local_58 = 0;\n      puVar15 = PTR_DAT_00080134 + -0x4bb8;\n    }" ({ "{") (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" (identifier "pbVar23") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4bb8;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4bb8" (identifier "puVar15") (= "=") (binary_expression "PTR_DAT_00080134 + -0x4bb8" (identifier "PTR_DAT_00080134") (+ "+") (number_literal "-0x4bb8"))) (; ";")) (} "}")))) (} "}")))) (goto_statement "goto LAB_000477c4;" (goto "goto") (statement_identifier "LAB_000477c4") (; ";")) (while_statement "while (puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d) {\nLAB_00047bb8:\n    bVar8 = *pbVar2;\n    pbVar18 = pbVar2;\n    while (bVar8 != 0) {\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n    pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n    if (pbVar2 == (byte *)0x0) {\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }\n  }" (while "while") (parenthesized_expression "(puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d)" (( "(") (comma_expression "puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d" (assignment_expression "puVar12 = (undefined4 *)PTR_DAT_00080134" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)PTR_DAT_00080134" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_00080134"))) (, ",") (binary_expression "*pbVar2 != 0x2d" (pointer_expression "*pbVar2" (* "*") (identifier "pbVar2")) (!= "!=") (number_literal "0x2d"))) () ")")) (compound_statement "{\nLAB_00047bb8:\n    bVar8 = *pbVar2;\n    pbVar18 = pbVar2;\n    while (bVar8 != 0) {\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);\n    pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);\n    if (pbVar2 == (byte *)0x0) {\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }\n  }" ({ "{") (labeled_statement "LAB_00047bb8:\n    bVar8 = *pbVar2;" (statement_identifier "LAB_00047bb8") (: ":") (expression_statement "bVar8 = *pbVar2;" (assignment_expression "bVar8 = *pbVar2" (identifier "bVar8") (= "=") (pointer_expression "*pbVar2" (* "*") (identifier "pbVar2"))) (; ";"))) (expression_statement "pbVar18 = pbVar2;" (assignment_expression "pbVar18 = pbVar2" (identifier "pbVar18") (= "=") (identifier "pbVar2")) (; ";")) (while_statement "while (bVar8 != 0) {\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }" (while "while") (parenthesized_expression "(bVar8 != 0)" (( "(") (binary_expression "bVar8 != 0" (identifier "bVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pbVar11 = pbVar21 + 1;\n      abStack_30[(int)pbVar21] = bVar8;\n      if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }\n      pbVar18 = pbVar18 + 1;\n      pbVar21 = pbVar11;\n      bVar8 = *pbVar18;\n    }" ({ "{") (expression_statement "pbVar11 = pbVar21 + 1;" (assignment_expression "pbVar11 = pbVar21 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar21 + 1" (identifier "pbVar21") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "abStack_30[(int)pbVar21] = bVar8;" (assignment_expression "abStack_30[(int)pbVar21] = bVar8" (subscript_expression "abStack_30[(int)pbVar21]" (identifier "abStack_30") ([ "[") (cast_expression "(int)pbVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar21")) (] "]")) (= "=") (identifier "bVar8")) (; ";")) (if_statement "if (pbVar11 == &DAT_00000004) {\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }" (if "if") (parenthesized_expression "(pbVar11 == &DAT_00000004)" (( "(") (binary_expression "pbVar11 == &DAT_00000004" (identifier "pbVar11") (== "==") (pointer_expression "&DAT_00000004" (& "&") (identifier "DAT_00000004"))) () ")")) (compound_statement "{\n        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);\n        pbVar21 = pbVar13 + (int)pbVar9;\n        if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }\n        puVar12 = &uStack_34;\n        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);\n        pbVar11 = pbVar10;\n        pbVar9 = pbVar21;\n      }" ({ "{") (expression_statement "pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);" (assignment_expression "pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34)" (identifier "pbVar13") (= "=") (cast_expression "(byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34)" (parenthesized_expression "(*(code *)PTR_base64_decode_atom_000801b4)" (( "(") (pointer_expression "*(code *)PTR_base64_decode_atom_000801b4" (* "*") (cast_expression "(code *)PTR_base64_decode_atom_000801b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_base64_decode_atom_000801b4"))) () ")")) (argument_list "(abStack_30,&uStack_34)" (( "(") (identifier "abStack_30") (, ",") (pointer_expression "&uStack_34" (& "&") (identifier "uStack_34")) () ")"))))) (; ";")) (expression_statement "pbVar21 = pbVar13 + (int)pbVar9;" (assignment_expression "pbVar21 = pbVar13 + (int)pbVar9" (identifier "pbVar21") (= "=") (binary_expression "pbVar13 + (int)pbVar9" (identifier "pbVar13") (+ "+") (cast_expression "(int)pbVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar9")))) (; ";")) (if_statement "if (local_50 < (int)pbVar21) {\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }" (if "if") (parenthesized_expression "(local_50 < (int)pbVar21)" (( "(") (binary_expression "local_50 < (int)pbVar21" (identifier "local_50") (< "<") (cast_expression "(int)pbVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar21"))) () ")")) (compound_statement "{\n          iVar3 = (int)pbVar21 * 5;\n          if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }\n          local_50 = (iVar3 >> 2) + 0x400;\n          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);\n        }" ({ "{") (expression_statement "iVar3 = (int)pbVar21 * 5;" (assignment_expression "iVar3 = (int)pbVar21 * 5" (identifier "iVar3") (= "=") (binary_expression "(int)pbVar21 * 5" (cast_expression "(int)pbVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar21")) (* "*") (number_literal "5"))) (; ";")) (if_statement "if (iVar3 < 0) {\n            iVar3 = iVar3 + 3;\n          }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            iVar3 = iVar3 + 3;\n          }" ({ "{") (expression_statement "iVar3 = iVar3 + 3;" (assignment_expression "iVar3 = iVar3 + 3" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 3" (identifier "iVar3") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "local_50 = (iVar3 >> 2) + 0x400;" (assignment_expression "local_50 = (iVar3 >> 2) + 0x400" (identifier "local_50") (= "=") (binary_expression "(iVar3 >> 2) + 0x400" (parenthesized_expression "(iVar3 >> 2)" (( "(") (binary_expression "iVar3 >> 2" (identifier "iVar3") (>> ">>") (number_literal "2")) () ")")) (+ "+") (number_literal "0x400"))) (; ";")) (expression_statement "pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);" (assignment_expression "pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1)" (identifier "pbVar23") (= "=") (cast_expression "(byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1)" (parenthesized_expression "(*(code *)PTR_saferealloc_00080100)" (( "(") (pointer_expression "*(code *)PTR_saferealloc_00080100" (* "*") (cast_expression "(code *)PTR_saferealloc_00080100" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_saferealloc_00080100"))) () ")")) (argument_list "(pbVar23,local_50,1)" (( "(") (identifier "pbVar23") (, ",") (identifier "local_50") (, ",") (number_literal "1") () ")"))))) (; ";")) (} "}"))) (expression_statement "puVar12 = &uStack_34;" (assignment_expression "puVar12 = &uStack_34" (identifier "puVar12") (= "=") (pointer_expression "&uStack_34" (& "&") (identifier "uStack_34"))) (; ";")) (expression_statement "(*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);" (call_expression "(*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9)" (parenthesized_expression "(*(code *)PTR_memcpy_00080908)" (( "(") (pointer_expression "*(code *)PTR_memcpy_00080908" (* "*") (cast_expression "(code *)PTR_memcpy_00080908" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_00080908"))) () ")")) (argument_list "(pbVar23 + (int)pbVar9)" (( "(") (binary_expression "pbVar23 + (int)pbVar9" (identifier "pbVar23") (+ "+") (cast_expression "(int)pbVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar9"))) () ")"))) (; ";")) (expression_statement "pbVar11 = pbVar10;" (assignment_expression "pbVar11 = pbVar10" (identifier "pbVar11") (= "=") (identifier "pbVar10")) (; ";")) (expression_statement "pbVar9 = pbVar21;" (assignment_expression "pbVar9 = pbVar21" (identifier "pbVar9") (= "=") (identifier "pbVar21")) (; ";")) (} "}"))) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar21 = pbVar11;" (assignment_expression "pbVar21 = pbVar11" (identifier "pbVar21") (= "=") (identifier "pbVar11")) (; ";")) (expression_statement "bVar8 = *pbVar18;" (assignment_expression "bVar8 = *pbVar18" (identifier "bVar8") (= "=") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_safefree_000800c4)(pbVar2);" (call_expression "(*(code *)PTR_safefree_000800c4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" (( "(") (pointer_expression "*(code *)PTR_safefree_000800c4" (* "*") (cast_expression "(code *)PTR_safefree_000800c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safefree_000800c4"))) () ")")) (argument_list "(pbVar2)" (( "(") (identifier "pbVar2") () ")"))) (; ";")) (expression_statement "uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);" (assignment_expression "uVar1 = (*(code *)PTR_fgetline_00080444)(param_1)" (identifier "uVar1") (= "=") (call_expression "(*(code *)PTR_fgetline_00080444)(param_1)" (parenthesized_expression "(*(code *)PTR_fgetline_00080444)" (( "(") (pointer_expression "*(code *)PTR_fgetline_00080444" (* "*") (cast_expression "(code *)PTR_fgetline_00080444" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_fgetline_00080444"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);" (assignment_expression "pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1)" (identifier "pbVar2") (= "=") (cast_expression "(byte *)(*(code *)PTR_chomp_00080448)(uVar1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_chomp_00080448)(uVar1)" (parenthesized_expression "(*(code *)PTR_chomp_00080448)" (( "(") (pointer_expression "*(code *)PTR_chomp_00080448" (* "*") (cast_expression "(code *)PTR_chomp_00080448" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_chomp_00080448"))) () ")")) (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))))) (; ";")) (if_statement "if (pbVar2 == (byte *)0x0) {\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }" (if "if") (parenthesized_expression "(pbVar2 == (byte *)0x0)" (( "(") (binary_expression "pbVar2 == (byte *)0x0" (identifier "pbVar2") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      puVar15 = PTR_DAT_00080134 + -0x4b30;\n      goto LAB_000477c4;\n    }" ({ "{") (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4b30;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4b30" (identifier "puVar15") (= "=") (binary_expression "PTR_DAT_00080134 + -0x4b30" (identifier "PTR_DAT_00080134") (+ "+") (number_literal "-0x4b30"))) (; ";")) (goto_statement "goto LAB_000477c4;" (goto "goto") (statement_identifier "LAB_000477c4") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00047a78:\n  puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4);" (statement_identifier "LAB_00047a78") (: ":") (expression_statement "puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4);" (assignment_expression "puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4)" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)(PTR_DAT_00080134 + -0x4ab4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_00080134 + -0x4ab4)" (( "(") (binary_expression "PTR_DAT_00080134 + -0x4ab4" (identifier "PTR_DAT_00080134") (+ "+") (number_literal "-0x4ab4")) () ")")))) (; ";"))) (expression_statement "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);" (assignment_expression "iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_strcmp_000808cc)(pbVar2)" (parenthesized_expression "(*(code *)PTR_strcmp_000808cc)" (( "(") (pointer_expression "*(code *)PTR_strcmp_000808cc" (* "*") (cast_expression "(code *)PTR_strcmp_000808cc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_000808cc"))) () ")")) (argument_list "(pbVar2)" (( "(") (identifier "pbVar2") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    pbVar2 = (byte *)0x0;\n    if ((int)pbVar9 < 4) {\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }\n    else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }\n  }\n  else {\n    puVar15 = PTR_DAT_00080134 + -0x4b30;\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_safefree_000800c4)(pbVar2);\n    pbVar2 = (byte *)0x0;\n    if ((int)pbVar9 < 4) {\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }\n    else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }\n  }" ({ "{") (expression_statement "(*(code *)PTR_safefree_000800c4)(pbVar2);" (call_expression "(*(code *)PTR_safefree_000800c4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" (( "(") (pointer_expression "*(code *)PTR_safefree_000800c4" (* "*") (cast_expression "(code *)PTR_safefree_000800c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safefree_000800c4"))) () ")")) (argument_list "(pbVar2)" (( "(") (identifier "pbVar2") () ")"))) (; ";")) (expression_statement "pbVar2 = (byte *)0x0;" (assignment_expression "pbVar2 = (byte *)0x0" (identifier "pbVar2") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((int)pbVar9 < 4) {\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }\n    else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }" (if "if") (parenthesized_expression "((int)pbVar9 < 4)" (( "(") (binary_expression "(int)pbVar9 < 4" (cast_expression "(int)pbVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar9")) (< "<") (number_literal "4")) () ")")) (compound_statement "{\n      puVar15 = PTR_DAT_00080134 + -0x4b5c;\n    }" ({ "{") (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4b5c;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4b5c" (identifier "puVar15") (= "=") (binary_expression "PTR_DAT_00080134 + -0x4b5c" (identifier "PTR_DAT_00080134") (+ "+") (number_literal "-0x4b5c"))) (; ";")) (} "}")) (else_clause "else {\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }" (else "else") (compound_statement "{\n      puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);\n      if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n    }" ({ "{") (expression_statement "puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8);" (assignment_expression "puVar20 = (undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8)" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)\n                (*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_toint_00080198)\n                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8)" (parenthesized_expression "(*(code *)PTR_toint_00080198)" (( "(") (pointer_expression "*(code *)PTR_toint_00080198" (* "*") (cast_expression "(code *)PTR_toint_00080198" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_toint_00080198"))) () ")")) (argument_list "((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8)" (( "(") (binary_expression "(uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |\n                           (uint)pbVar23[2] << 8" (binary_expression "(uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3]" (binary_expression "(uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10" (binary_expression "(uint)*pbVar23 << 0x18" (binary_expression "(uint)*pbVar23" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar23")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uint)pbVar23[1] << 0x10" (cast_expression "(uint)pbVar23[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar23[1]" (identifier "pbVar23") ([ "[") (number_literal "1") (] "]"))) (<< "<<") (number_literal "0x10"))) (| "|") (cast_expression "(uint)pbVar23[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar23[3]" (identifier "pbVar23") ([ "[") (number_literal "3") (] "]")))) (| "|") (binary_expression "(uint)pbVar23[2] << 8" (cast_expression "(uint)pbVar23[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar23[2]" (identifier "pbVar23") ([ "[") (number_literal "2") (] "]"))) (<< "<<") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if ((int)puVar20 < 0) {\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }\n      else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }" (if "if") (parenthesized_expression "((int)puVar20 < 0)" (( "(") (binary_expression "(int)puVar20 < 0" (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }" ({ "{") (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4bec;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4bec" (identifier "puVar15") (= "=") (binary_expression "PTR_DAT_00080134 + -0x4bec" (identifier "PTR_DAT_00080134") (+ "+") (number_literal "-0x4bec"))) (; ";")) (} "}")) (else_clause "else {\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }" (else "else") (compound_statement "{\n        if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }\n        puVar15 = PTR_DAT_00080134 + -0x4bec;\n      }" ({ "{") (if_statement "if ((int)puVar20 < (int)(pbVar9 + -3)) {\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }" (if "if") (parenthesized_expression "((int)puVar20 < (int)(pbVar9 + -3))" (( "(") (binary_expression "(int)puVar20 < (int)(pbVar9 + -3)" (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20")) (< "<") (cast_expression "(int)(pbVar9 + -3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar9 + -3)" (( "(") (binary_expression "pbVar9 + -3" (identifier "pbVar9") (+ "+") (number_literal "-3")) () ")")))) () ")")) (compound_statement "{\n          pbVar13 = pbVar23 + 4;\n          if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }\n          if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }\n          if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }\n          goto LAB_00047814;\n        }" ({ "{") (expression_statement "pbVar13 = pbVar23 + 4;" (assignment_expression "pbVar13 = pbVar23 + 4" (identifier "pbVar13") (= "=") (binary_expression "pbVar23 + 4" (identifier "pbVar23") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (param_2 != (undefined4 *)0x0) {\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }" (if "if") (parenthesized_expression "(param_2 != (undefined4 *)0x0)" (( "(") (binary_expression "param_2 != (undefined4 *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);\n            *param_2 = uVar1;\n            puVar12 = puVar20;\n          }" ({ "{") (expression_statement "uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);" (assignment_expression "uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50)" (identifier "uVar1") (= "=") (call_expression "(*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50)" (parenthesized_expression "(*(code *)PTR_dupprintf_000800b8)" (( "(") (pointer_expression "*(code *)PTR_dupprintf_000800b8" (* "*") (cast_expression "(code *)PTR_dupprintf_000800b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dupprintf_000800b8"))) () ")")) (argument_list "(PTR_LAB_000800a8 + 0x4a50)" (( "(") (binary_expression "PTR_LAB_000800a8 + 0x4a50" (identifier "PTR_LAB_000800a8") (+ "+") (number_literal "0x4a50")) () ")")))) (; ";")) (expression_statement "*param_2 = uVar1;" (assignment_expression "*param_2 = uVar1" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "puVar12 = puVar20;" (assignment_expression "puVar12 = puVar20" (identifier "puVar12") (= "=") (identifier "puVar20")) (; ";")) (} "}"))) (if_statement "if (param_3 != (byte *)0x0) {\n            *(byte **)param_3 = pbVar9;\n          }" (if "if") (parenthesized_expression "(param_3 != (byte *)0x0)" (( "(") (binary_expression "param_3 != (byte *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            *(byte **)param_3 = pbVar9;\n          }" ({ "{") (expression_statement "*(byte **)param_3 = pbVar9;" (assignment_expression "*(byte **)param_3 = pbVar9" (pointer_expression "*(byte **)param_3" (* "*") (cast_expression "(byte **)param_3" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "param_3"))) (= "=") (identifier "pbVar9")) (; ";")) (} "}"))) (if_statement "if (param_4 == (undefined4 *)0x0) {\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }\n          else {\n            *param_4 = local_58;\n          }" (if "if") (parenthesized_expression "(param_4 == (undefined4 *)0x0)" (( "(") (binary_expression "param_4 == (undefined4 *)0x0" (identifier "param_4") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            (*(code *)PTR_safefree_000800c4)(local_58);\n          }" ({ "{") (expression_statement "(*(code *)PTR_safefree_000800c4)(local_58);" (call_expression "(*(code *)PTR_safefree_000800c4)(local_58)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" (( "(") (pointer_expression "*(code *)PTR_safefree_000800c4" (* "*") (cast_expression "(code *)PTR_safefree_000800c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safefree_000800c4"))) () ")")) (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *param_4 = local_58;\n          }" (else "else") (compound_statement "{\n            *param_4 = local_58;\n          }" ({ "{") (expression_statement "*param_4 = local_58;" (assignment_expression "*param_4 = local_58" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "local_58")) (; ";")) (} "}")))) (goto_statement "goto LAB_00047814;" (goto "goto") (statement_identifier "LAB_00047814") (; ";")) (} "}"))) (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4bec;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4bec" (identifier "puVar15") (= "=") (binary_expression "PTR_DAT_00080134 + -0x4bec" (identifier "PTR_DAT_00080134") (+ "+") (number_literal "-0x4bec"))) (; ";")) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n    puVar15 = PTR_DAT_00080134 + -0x4b30;\n  }" (else "else") (compound_statement "{\n    puVar15 = PTR_DAT_00080134 + -0x4b30;\n  }" ({ "{") (expression_statement "puVar15 = PTR_DAT_00080134 + -0x4b30;" (assignment_expression "puVar15 = PTR_DAT_00080134 + -0x4b30" (identifier "puVar15") (= "=") (binary_expression "PTR_DAT_00080134 + -0x4b30" (identifier "PTR_DAT_00080134") (+ "+") (number_literal "-0x4b30"))) (; ";")) (} "}")))) (labeled_statement "LAB_000477c4:\n  (*(code *)PTR_safefree_000800c4)(pbVar2);" (statement_identifier "LAB_000477c4") (: ":") (expression_statement "(*(code *)PTR_safefree_000800c4)(pbVar2);" (call_expression "(*(code *)PTR_safefree_000800c4)(pbVar2)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" (( "(") (pointer_expression "*(code *)PTR_safefree_000800c4" (* "*") (cast_expression "(code *)PTR_safefree_000800c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safefree_000800c4"))) () ")")) (argument_list "(pbVar2)" (( "(") (identifier "pbVar2") () ")"))) (; ";"))) (expression_statement "(*(code *)PTR_safefree_000800c4)(local_58);" (call_expression "(*(code *)PTR_safefree_000800c4)(local_58)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" (( "(") (pointer_expression "*(code *)PTR_safefree_000800c4" (* "*") (cast_expression "(code *)PTR_safefree_000800c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safefree_000800c4"))) () ")")) (argument_list "(local_58)" (( "(") (identifier "local_58") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_safefree_000800c4)(pbVar23);" (call_expression "(*(code *)PTR_safefree_000800c4)(pbVar23)" (parenthesized_expression "(*(code *)PTR_safefree_000800c4)" (( "(") (pointer_expression "*(code *)PTR_safefree_000800c4" (* "*") (cast_expression "(code *)PTR_safefree_000800c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safefree_000800c4"))) () ")")) (argument_list "(pbVar23)" (( "(") (identifier "pbVar23") () ")"))) (; ";")) (if_statement "if (param_5 == (undefined4 *)0x0) {\n    pbVar23 = (byte *)0x0;\n  }\n  else {\n    *param_5 = puVar15;\n    pbVar23 = (byte *)0x0;\n  }" (if "if") (parenthesized_expression "(param_5 == (undefined4 *)0x0)" (( "(") (binary_expression "param_5 == (undefined4 *)0x0" (identifier "param_5") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pbVar23 = (byte *)0x0;\n  }" ({ "{") (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" (identifier "pbVar23") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    *param_5 = puVar15;\n    pbVar23 = (byte *)0x0;\n  }" (else "else") (compound_statement "{\n    *param_5 = puVar15;\n    pbVar23 = (byte *)0x0;\n  }" ({ "{") (expression_statement "*param_5 = puVar15;" (assignment_expression "*param_5 = puVar15" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "puVar15")) (; ";")) (expression_statement "pbVar23 = (byte *)0x0;" (assignment_expression "pbVar23 = (byte *)0x0" (identifier "pbVar23") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (labeled_statement "LAB_00047814:\n  if (local_2c == *(int *)PTR___stack_chk_guard_00080958) {\n    return pbVar23;\n  }" (statement_identifier "LAB_00047814") (: ":") (if_statement "if (local_2c == *(int *)PTR___stack_chk_guard_00080958) {\n    return pbVar23;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)PTR___stack_chk_guard_00080958)" (( "(") (binary_expression "local_2c == *(int *)PTR___stack_chk_guard_00080958" (identifier "local_2c") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_00080958" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00080958" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00080958")))) () ")")) (compound_statement "{\n    return pbVar23;\n  }" ({ "{") (return_statement "return pbVar23;" (return "return") (identifier "pbVar23") (; ";")) (} "}")))) (expression_statement "puVar15 = PTR___stack_chk_fail_00080814;" (assignment_expression "puVar15 = PTR___stack_chk_fail_00080814" (identifier "puVar15") (= "=") (identifier "PTR___stack_chk_fail_00080814")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00080814)();" (call_expression "(*(code *)PTR___stack_chk_fail_00080814)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00080814)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00080814" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00080814" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00080814"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar1 = (**(code **)(puVar15 + 0x38728))();" (assignment_expression "uVar1 = (**(code **)(puVar15 + 0x38728))()" (identifier "uVar1") (= "=") (call_expression "(**(code **)(puVar15 + 0x38728))()" (parenthesized_expression "(**(code **)(puVar15 + 0x38728))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x38728)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x38728)" (* "*") (cast_expression "(code **)(puVar15 + 0x38728)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x38728)" (( "(") (binary_expression "puVar15 + 0x38728" (identifier "puVar15") (+ "+") (number_literal "0x38728")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = (**(code **)(puVar15 + 0x3872c))(uVar1);" (assignment_expression "uVar1 = (**(code **)(puVar15 + 0x3872c))(uVar1)" (identifier "uVar1") (= "=") (call_expression "(**(code **)(puVar15 + 0x3872c))(uVar1)" (parenthesized_expression "(**(code **)(puVar15 + 0x3872c))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x3872c)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x3872c)" (* "*") (cast_expression "(code **)(puVar15 + 0x3872c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x3872c)" (( "(") (binary_expression "puVar15 + 0x3872c" (identifier "puVar15") (+ "+") (number_literal "0x3872c")) () ")"))))) () ")")) (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")")))) (; ";")) (expression_statement "puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20);" (assignment_expression "puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20)" (identifier "puVar4") (= "=") (cast_expression "(undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar15 + 0x38b40))(uVar1,0x20)" (parenthesized_expression "(**(code **)(puVar15 + 0x38b40))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x38b40)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x38b40)" (* "*") (cast_expression "(code **)(puVar15 + 0x38b40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x38b40)" (( "(") (binary_expression "puVar15 + 0x38b40" (identifier "puVar15") (+ "+") (number_literal "0x38b40")) () ")"))))) () ")")) (argument_list "(uVar1,0x20)" (( "(") (identifier "uVar1") (, ",") (number_literal "0x20") () ")"))))) (; ";")) (if_statement "if (puVar4 == (undefined1 *)0x0) {\n    iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;\n    pbVar2 = (byte *)0x0;\n    puVar4 = (undefined1 *)0x0;\n  }\n  else {\n    pcVar16 = puVar4 + 1;\n    *puVar4 = 0;\n    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);\n    if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }\n    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);\n    iVar3 = (uVar5 >> 2) * 3;\n    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);\n    iVar17 = 0;\n    while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }\n    if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }\n  }" (if "if") (parenthesized_expression "(puVar4 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar4 == (undefined1 *)0x0" (identifier "puVar4") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;\n    pbVar2 = (byte *)0x0;\n    puVar4 = (undefined1 *)0x0;\n  }" ({ "{") (expression_statement "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;" (assignment_expression "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20" (identifier "iVar3") (= "=") (binary_expression "*(int *)(puVar15 + 0x38418) + -0x4a20" (pointer_expression "*(int *)(puVar15 + 0x38418)" (* "*") (cast_expression "(int *)(puVar15 + 0x38418)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38418)" (( "(") (binary_expression "puVar15 + 0x38418" (identifier "puVar15") (+ "+") (number_literal "0x38418")) () ")")))) (+ "+") (number_literal "-0x4a20"))) (; ";")) (expression_statement "pbVar2 = (byte *)0x0;" (assignment_expression "pbVar2 = (byte *)0x0" (identifier "pbVar2") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar4 = (undefined1 *)0x0;" (assignment_expression "puVar4 = (undefined1 *)0x0" (identifier "puVar4") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    pcVar16 = puVar4 + 1;\n    *puVar4 = 0;\n    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);\n    if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }\n    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);\n    iVar3 = (uVar5 >> 2) * 3;\n    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);\n    iVar17 = 0;\n    while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }\n    if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }\n  }" (else "else") (compound_statement "{\n    pcVar16 = puVar4 + 1;\n    *puVar4 = 0;\n    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);\n    if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }\n    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);\n    iVar3 = (uVar5 >> 2) * 3;\n    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);\n    iVar17 = 0;\n    while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }\n    if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }\n  }" ({ "{") (expression_statement "pcVar16 = puVar4 + 1;" (assignment_expression "pcVar16 = puVar4 + 1" (identifier "pcVar16") (= "=") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);" (assignment_expression "puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20)" (identifier "puVar4") (= "=") (cast_expression "(undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20)" (parenthesized_expression "(**(code **)(puVar15 + 0x38b40))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x38b40)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x38b40)" (* "*") (cast_expression "(code **)(puVar15 + 0x38b40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x38b40)" (( "(") (binary_expression "puVar15 + 0x38b40" (identifier "puVar15") (+ "+") (number_literal "0x38b40")) () ")"))))) () ")")) (argument_list "(pcVar16,0x20)" (( "(") (identifier "pcVar16") (, ",") (number_literal "0x20") () ")"))))) (; ";")) (if_statement "if (puVar4 != (undefined1 *)0x0) {\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }" (if "if") (parenthesized_expression "(puVar4 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar4 != (undefined1 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *puVar4 = 0;\n      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);\n    }" ({ "{") (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);" (assignment_expression "puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1)" (identifier "puVar4") (= "=") (cast_expression "(undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar15 + 0x383e0))(puVar4 + 1)" (parenthesized_expression "(**(code **)(puVar15 + 0x383e0))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x383e0)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x383e0)" (* "*") (cast_expression "(code **)(puVar15 + 0x383e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x383e0)" (( "(") (binary_expression "puVar15 + 0x383e0" (identifier "puVar15") (+ "+") (number_literal "0x383e0")) () ")"))))) () ")")) (argument_list "(puVar4 + 1)" (( "(") (binary_expression "puVar4 + 1" (identifier "puVar4") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);" (assignment_expression "uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16)" (identifier "uVar5") (= "=") (call_expression "(**(code **)(puVar15 + 0x38bdc))(pcVar16)" (parenthesized_expression "(**(code **)(puVar15 + 0x38bdc))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x38bdc)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x38bdc)" (* "*") (cast_expression "(code **)(puVar15 + 0x38bdc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x38bdc)" (( "(") (binary_expression "puVar15 + 0x38bdc" (identifier "puVar15") (+ "+") (number_literal "0x38bdc")) () ")"))))) () ")")) (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")")))) (; ";")) (expression_statement "iVar3 = (uVar5 >> 2) * 3;" (assignment_expression "iVar3 = (uVar5 >> 2) * 3" (identifier "iVar3") (= "=") (binary_expression "(uVar5 >> 2) * 3" (parenthesized_expression "(uVar5 >> 2)" (( "(") (binary_expression "uVar5 >> 2" (identifier "uVar5") (>> ">>") (number_literal "2")) () ")")) (* "*") (number_literal "3"))) (; ";")) (expression_statement "pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);" (assignment_expression "pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1)" (identifier "pbVar2") (= "=") (cast_expression "(byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar15 + 0x383b8))(iVar3,1)" (parenthesized_expression "(**(code **)(puVar15 + 0x383b8))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x383b8)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x383b8)" (* "*") (cast_expression "(code **)(puVar15 + 0x383b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x383b8)" (( "(") (binary_expression "puVar15 + 0x383b8" (identifier "puVar15") (+ "+") (number_literal "0x383b8")) () ")"))))) () ")")) (argument_list "(iVar3,1)" (( "(") (identifier "iVar3") (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);\n      if (iVar6 != 0) break;\n      if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }\n      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);\n      iVar17 = iVar17 + iVar6;\n      pcVar16 = pcVar16 + 4;\n    }" ({ "{") (expression_statement "iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);" (assignment_expression "iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4)" (parenthesized_expression "(**(code **)(puVar15 + 0x38ba0))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x38ba0)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x38ba0)" (* "*") (cast_expression "(code **)(puVar15 + 0x38ba0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x38ba0)" (( "(") (binary_expression "puVar15 + 0x38ba0" (identifier "puVar15") (+ "+") (number_literal "0x38ba0")) () ")"))))) () ")")) (argument_list "(pcVar16,0,4)" (( "(") (identifier "pcVar16") (, ",") (number_literal "0") (, ",") (number_literal "4") () ")")))) (; ";")) (if_statement "if (iVar6 != 0) break;" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (iVar3 <= iVar17 + 2) {\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }" (if "if") (parenthesized_expression "(iVar3 <= iVar17 + 2)" (( "(") (binary_expression "iVar3 <= iVar17 + 2" (identifier "iVar3") (<= "<=") (binary_expression "iVar17 + 2" (identifier "iVar17") (+ "+") (number_literal "2"))) () ")")) (compound_statement "{\n        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);\n        return pbVar2;\n      }" ({ "{") (expression_statement "pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0);" (assignment_expression "pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0)" (identifier "pbVar2") (= "=") (cast_expression "(byte *)(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar15 + 0x389cc))\n                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0)" (parenthesized_expression "(**(code **)(puVar15 + 0x389cc))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x389cc)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x389cc)" (* "*") (cast_expression "(code **)(puVar15 + 0x389cc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x389cc)" (( "(") (binary_expression "puVar15 + 0x389cc" (identifier "puVar15") (+ "+") (number_literal "0x389cc")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar15 + 0x38418) + -0x49f8,\n                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,\n                                    *(int *)(puVar15 + 0x38418) + -0x46b0)" (( "(") (binary_expression "*(int *)(puVar15 + 0x38418) + -0x49f8" (pointer_expression "*(int *)(puVar15 + 0x38418)" (* "*") (cast_expression "(int *)(puVar15 + 0x38418)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38418)" (( "(") (binary_expression "puVar15 + 0x38418" (identifier "puVar15") (+ "+") (number_literal "0x38418")) () ")")))) (+ "+") (number_literal "-0x49f8")) (, ",") (binary_expression "*(int *)(puVar15 + 0x38418) + -0x4e7c" (pointer_expression "*(int *)(puVar15 + 0x38418)" (* "*") (cast_expression "(int *)(puVar15 + 0x38418)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38418)" (( "(") (binary_expression "puVar15 + 0x38418" (identifier "puVar15") (+ "+") (number_literal "0x38418")) () ")")))) (+ "+") (number_literal "-0x4e7c")) (, ",") (number_literal "0x441") (, ",") (binary_expression "*(int *)(puVar15 + 0x38418) + -0x46b0" (pointer_expression "*(int *)(puVar15 + 0x38418)" (* "*") (cast_expression "(int *)(puVar15 + 0x38418)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38418)" (( "(") (binary_expression "puVar15 + 0x38418" (identifier "puVar15") (+ "+") (number_literal "0x38418")) () ")")))) (+ "+") (number_literal "-0x46b0")) () ")"))))) (; ";")) (return_statement "return pbVar2;" (return "return") (identifier "pbVar2") (; ";")) (} "}"))) (expression_statement "iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);" (assignment_expression "iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17)" (parenthesized_expression "(**(code **)(puVar15 + 0x38498))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x38498)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x38498)" (* "*") (cast_expression "(code **)(puVar15 + 0x38498)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x38498)" (( "(") (binary_expression "puVar15 + 0x38498" (identifier "puVar15") (+ "+") (number_literal "0x38498")) () ")"))))) () ")")) (argument_list "(pcVar16,pbVar2 + iVar17)" (( "(") (identifier "pcVar16") (, ",") (binary_expression "pbVar2 + iVar17" (identifier "pbVar2") (+ "+") (identifier "iVar17")) () ")")))) (; ";")) (expression_statement "iVar17 = iVar17 + iVar6;" (assignment_expression "iVar17 = iVar17 + iVar6" (identifier "iVar17") (= "=") (binary_expression "iVar17 + iVar6" (identifier "iVar17") (+ "+") (identifier "iVar6"))) (; ";")) (expression_statement "pcVar16 = pcVar16 + 4;" (assignment_expression "pcVar16 = pcVar16 + 4" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + 4" (identifier "pcVar16") (+ "+") (number_literal "4"))) (; ";")) (} "}"))) (if_statement "if (*pcVar16 == '\0') {\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }\n    else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }" (if "if") (parenthesized_expression "(*pcVar16 == '\0')" (( "(") (binary_expression "*pcVar16 == '\0'" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);\n      if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }\n    }" ({ "{") (expression_statement "uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);" (assignment_expression "uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1)" (identifier "uVar5") (= "=") (call_expression "(**(code **)(puVar15 + 0x38bdc))(uVar1)" (parenthesized_expression "(**(code **)(puVar15 + 0x38bdc))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x38bdc)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x38bdc)" (* "*") (cast_expression "(code **)(puVar15 + 0x38bdc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x38bdc)" (( "(") (binary_expression "puVar15 + 0x38bdc" (identifier "puVar15") (+ "+") (number_literal "0x38bdc")) () ")"))))) () ")")) (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")")))) (; ";")) (if_statement "if ((int)(uVar5 + 3) < iVar17) {\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }\n      else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }" (if "if") (parenthesized_expression "((int)(uVar5 + 3) < iVar17)" (( "(") (binary_expression "(int)(uVar5 + 3) < iVar17" (cast_expression "(int)(uVar5 + 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar5 + 3)" (( "(") (binary_expression "uVar5 + 3" (identifier "uVar5") (+ "+") (number_literal "3")) () ")"))) (< "<") (identifier "iVar17")) () ")")) (compound_statement "{\n        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n      }" ({ "{") (if_statement "if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)) {\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }\n        else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }" (if "if") (parenthesized_expression "(uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8))" (( "(") (binary_expression "uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)" (identifier "uVar5") (== "==") (parenthesized_expression "((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8)" (( "(") (binary_expression "(uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |\n                     (uint)pbVar2[2] << 8" (binary_expression "(uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3]" (binary_expression "(uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10" (binary_expression "(uint)*pbVar2 << 0x18" (binary_expression "(uint)*pbVar2" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar2")) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uint)pbVar2[1] << 0x10" (cast_expression "(uint)pbVar2[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar2[1]" (identifier "pbVar2") ([ "[") (number_literal "1") (] "]"))) (<< "<<") (number_literal "0x10"))) (| "|") (cast_expression "(uint)pbVar2[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar2[3]" (identifier "pbVar2") ([ "[") (number_literal "3") (] "]")))) (| "|") (binary_expression "(uint)pbVar2[2] << 8" (cast_expression "(uint)pbVar2[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar2[2]" (identifier "pbVar2") ([ "[") (number_literal "2") (] "]"))) (<< "<<") (number_literal "8"))) () ")"))) () ")")) (compound_statement "{\n          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);\n          if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }" ({ "{") (expression_statement "iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);" (assignment_expression "iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5)" (parenthesized_expression "(**(code **)(puVar15 + 0x38b88))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x38b88)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x38b88)" (* "*") (cast_expression "(code **)(puVar15 + 0x38b88)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x38b88)" (( "(") (binary_expression "puVar15 + 0x38b88" (identifier "puVar15") (+ "+") (number_literal "0x38b88")) () ")"))))) () ")")) (argument_list "(pbVar2 + 4,uVar1,uVar5)" (( "(") (binary_expression "pbVar2 + 4" (identifier "pbVar2") (+ "+") (number_literal "4")) (, ",") (identifier "uVar1") (, ",") (identifier "uVar5") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }\n            if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }\n            if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }\n            (**(code **)(puVar15 + 0x383a8))(uVar1);\n            return pbVar2;\n          }" ({ "{") (if_statement "if (puVar12 != (undefined4 *)0x0) {\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }" (if "if") (parenthesized_expression "(puVar12 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar12 != (undefined4 *)0x0" (identifier "puVar12") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);\n              *puVar12 = uVar7;\n            }" ({ "{") (expression_statement "uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);" (assignment_expression "uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(puVar15 + 0x383e0))(uVar1)" (parenthesized_expression "(**(code **)(puVar15 + 0x383e0))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x383e0)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x383e0)" (* "*") (cast_expression "(code **)(puVar15 + 0x383e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x383e0)" (( "(") (binary_expression "puVar15 + 0x383e0" (identifier "puVar15") (+ "+") (number_literal "0x383e0")) () ")"))))) () ")")) (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")")))) (; ";")) (expression_statement "*puVar12 = uVar7;" (assignment_expression "*puVar12 = uVar7" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (identifier "uVar7")) (; ";")) (} "}"))) (if_statement "if (pbVar13 != (byte *)0x0) {\n              *(int *)pbVar13 = iVar17;\n            }" (if "if") (parenthesized_expression "(pbVar13 != (byte *)0x0)" (( "(") (binary_expression "pbVar13 != (byte *)0x0" (identifier "pbVar13") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              *(int *)pbVar13 = iVar17;\n            }" ({ "{") (expression_statement "*(int *)pbVar13 = iVar17;" (assignment_expression "*(int *)pbVar13 = iVar17" (pointer_expression "*(int *)pbVar13" (* "*") (cast_expression "(int *)pbVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar13"))) (= "=") (identifier "iVar17")) (; ";")) (} "}"))) (if_statement "if (puVar14 == (undefined4 *)0x0) {\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }\n            else {\n              *puVar14 = puVar4;\n            }" (if "if") (parenthesized_expression "(puVar14 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar14 == (undefined4 *)0x0" (identifier "puVar14") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              (**(code **)(puVar15 + 0x383a8))(puVar4);\n            }" ({ "{") (expression_statement "(**(code **)(puVar15 + 0x383a8))(puVar4);" (call_expression "(**(code **)(puVar15 + 0x383a8))(puVar4)" (parenthesized_expression "(**(code **)(puVar15 + 0x383a8))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x383a8)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x383a8)" (* "*") (cast_expression "(code **)(puVar15 + 0x383a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x383a8)" (( "(") (binary_expression "puVar15 + 0x383a8" (identifier "puVar15") (+ "+") (number_literal "0x383a8")) () ")"))))) () ")")) (argument_list "(puVar4)" (( "(") (identifier "puVar4") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              *puVar14 = puVar4;\n            }" (else "else") (compound_statement "{\n              *puVar14 = puVar4;\n            }" ({ "{") (expression_statement "*puVar14 = puVar4;" (assignment_expression "*puVar14 = puVar4" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (identifier "puVar4")) (; ";")) (} "}")))) (expression_statement "(**(code **)(puVar15 + 0x383a8))(uVar1);" (call_expression "(**(code **)(puVar15 + 0x383a8))(uVar1)" (parenthesized_expression "(**(code **)(puVar15 + 0x383a8))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x383a8)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x383a8)" (* "*") (cast_expression "(code **)(puVar15 + 0x383a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x383a8)" (( "(") (binary_expression "puVar15 + 0x383a8" (identifier "puVar15") (+ "+") (number_literal "0x383a8")) () ")"))))) () ")")) (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))) (; ";")) (return_statement "return pbVar2;" (return "return") (identifier "pbVar2") (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;" (assignment_expression "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94" (identifier "iVar3") (= "=") (binary_expression "*(int *)(puVar15 + 0x38418) + -0x4a94" (pointer_expression "*(int *)(puVar15 + 0x38418)" (* "*") (cast_expression "(int *)(puVar15 + 0x38418)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38418)" (( "(") (binary_expression "puVar15 + 0x38418" (identifier "puVar15") (+ "+") (number_literal "0x38418")) () ")")))) (+ "+") (number_literal "-0x4a94"))) (; ";")) (} "}")) (else_clause "else {\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }" (else "else") (compound_statement "{\n          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n        }" ({ "{") (expression_statement "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;" (assignment_expression "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94" (identifier "iVar3") (= "=") (binary_expression "*(int *)(puVar15 + 0x38418) + -0x4a94" (pointer_expression "*(int *)(puVar15 + 0x38418)" (* "*") (cast_expression "(int *)(puVar15 + 0x38418)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38418)" (( "(") (binary_expression "puVar15 + 0x38418" (identifier "puVar15") (+ "+") (number_literal "0x38418")) () ")")))) (+ "+") (number_literal "-0x4a94"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }" (else "else") (compound_statement "{\n        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;\n      }" ({ "{") (expression_statement "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;" (assignment_expression "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94" (identifier "iVar3") (= "=") (binary_expression "*(int *)(puVar15 + 0x38418) + -0x4a94" (pointer_expression "*(int *)(puVar15 + 0x38418)" (* "*") (cast_expression "(int *)(puVar15 + 0x38418)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38418)" (( "(") (binary_expression "puVar15 + 0x38418" (identifier "puVar15") (+ "+") (number_literal "0x38418")) () ")")))) (+ "+") (number_literal "-0x4a94"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }" (else "else") (compound_statement "{\n      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;\n    }" ({ "{") (expression_statement "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;" (assignment_expression "iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c" (identifier "iVar3") (= "=") (binary_expression "*(int *)(puVar15 + 0x38418) + -0x4a5c" (pointer_expression "*(int *)(puVar15 + 0x38418)" (* "*") (cast_expression "(int *)(puVar15 + 0x38418)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 0x38418)" (( "(") (binary_expression "puVar15 + 0x38418" (identifier "puVar15") (+ "+") (number_literal "0x38418")) () ")")))) (+ "+") (number_literal "-0x4a5c"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "(**(code **)(puVar15 + 0x383a8))(uVar1);" (call_expression "(**(code **)(puVar15 + 0x383a8))(uVar1)" (parenthesized_expression "(**(code **)(puVar15 + 0x383a8))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x383a8)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x383a8)" (* "*") (cast_expression "(code **)(puVar15 + 0x383a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x383a8)" (( "(") (binary_expression "puVar15 + 0x383a8" (identifier "puVar15") (+ "+") (number_literal "0x383a8")) () ")"))))) () ")")) (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar15 + 0x383a8))(puVar4);" (call_expression "(**(code **)(puVar15 + 0x383a8))(puVar4)" (parenthesized_expression "(**(code **)(puVar15 + 0x383a8))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x383a8)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x383a8)" (* "*") (cast_expression "(code **)(puVar15 + 0x383a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x383a8)" (( "(") (binary_expression "puVar15 + 0x383a8" (identifier "puVar15") (+ "+") (number_literal "0x383a8")) () ")"))))) () ")")) (argument_list "(puVar4)" (( "(") (identifier "puVar4") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar15 + 0x383a8))(pbVar2);" (call_expression "(**(code **)(puVar15 + 0x383a8))(pbVar2)" (parenthesized_expression "(**(code **)(puVar15 + 0x383a8))" (( "(") (pointer_expression "**(code **)(puVar15 + 0x383a8)" (* "*") (pointer_expression "*(code **)(puVar15 + 0x383a8)" (* "*") (cast_expression "(code **)(puVar15 + 0x383a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 0x383a8)" (( "(") (binary_expression "puVar15 + 0x383a8" (identifier "puVar15") (+ "+") (number_literal "0x383a8")) () ")"))))) () ")")) (argument_list "(pbVar2)" (( "(") (identifier "pbVar2") () ")"))) (; ";")) (expression_statement "__gp_1 = iVar3;" (assignment_expression "__gp_1 = iVar3" (identifier "__gp_1") (= "=") (identifier "iVar3")) (; ";")) (return_statement "return (byte *)0x0;" (return "return") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}")))

type_1 * function_1(type_2 *fp,char **var_19,int *var_20,char **var_21,
                       char **var_22)

{
  type_3 *pbVar1;
  int var_23;
  type_4 uVar3;
  char *var_2;
  int var_3;
  char *var_10;
  char var_7;
  int var_6;
  type_5 *var_4;
  type_6 var_25;
  int var_5;
  char *var_9;
  char *pcVar13;
  type_3 *var_13;
  char **var_17;
  type_3 *var_14;
  char **var_26;
  char *var_8;
  char **ppcVar19;
  type_3 *var_12;
  int var_11;
  type_3 *var_18;
  int var_1;
  type_7 *var_24;
  int *var_27;
  type_3 *var_16;
  char *pcStack_58;
  int var_15;
  type_1 base64out [3];
  char base64in [4];
  
  var_27 = (int *)(var_1 + 0x40970);
  var_23 = **(int **)(var_1 + 0x39258);
  var_17 = var_19;
  var_14 = (type_3 *)var_20;
  var_26 = var_21;
  uVar3 = (**(type_7 **)(var_1 + 0x38d44))();
  var_2 = (char *)(**(type_7 **)(var_1 + 0x38d48))(uVar3);
  if (var_2 == (char *)0x0) {
    var_8 = (char *)(*(int *)(var_1 + 0x38a34) + -0x4bb8);
    var_16 = (type_3 *)0x0;
    pcStack_58 = (char *)0x0;
  }
  else {
    var_17 = (char **)(*(int *)(var_1 + 0x38a34) + -0x4ae4);
    var_3 = (**(type_7 **)(var_1 + 0x391cc))(var_2);
    if (var_3 == 0) {
      (**(type_7 **)(var_1 + 0x389c4))(var_2);
      pcStack_58 = (char *)0x0;
      var_3 = *(int *)(var_1 + 0x38a34);
      var_5 = *(int *)(var_1 + 0x38a34);
      ppcVar19 = (char **)(*(int *)(var_1 + 0x38a34) + -0x4ac0);
      var_11 = *(int *)(var_1 + 0x38a34);
      while( true ) {
        uVar3 = (**(type_7 **)(var_1 + 0x38d44))(fp);
        var_2 = (char *)(**(type_7 **)(var_1 + 0x38d48))(uVar3);
        if (var_2 == (char *)0x0) break;
        var_4 = (type_5 *)(**(type_7 **)(var_1 + 0x3926c))(var_2,var_3 + -0x4ac4);
        if (var_4 == (type_5 *)0x0) {
          var_17 = (char **)0x1;
          var_16 = (type_3 *)(**(type_7 **)(var_1 + 0x389d4))(0x1000);
          pbVar1 = (type_3 *)0x0;
          var_18 = pbVar1;
          if (*var_2 == '-') {
            var_17 = *(char ***)(var_1 + 0x38a34);
            goto LAB_00047a78;
          }
          var_15 = 0x1000;
          var_12 = pbVar1;
          goto LAB_00047bb8;
        }
        *var_4 = 0;
        var_6 = (**(type_7 **)(var_1 + 0x391cc))(var_2,var_5 + -0x4c58);
        var_17 = ppcVar19;
        if (var_6 == 0) {
          var_8 = var_4 + 2;
          if (var_4[2] == '\"') {
            var_6 = (**(type_7 **)(var_1 + 0x391f8))(var_8);
            if (var_8[var_6 + -1] == '\"') {
              var_8[var_6 + -1] = '\0';
              var_8 = var_4 + 3;
            }
          }
          var_7 = *var_8;
          pcVar13 = var_2;
          if (var_7 != '\0') {
            var_17 = (char **)&DAT_0000005c;
            var_9 = var_2;
            do {
              var_10 = var_8;
              if ((var_7 == '\\') && (var_10 = var_8 + 1, var_8[1] == '\0')) {
                var_10 = var_8;
              }
              pcVar13 = var_9 + 1;
              *var_9 = *var_10;
              var_8 = var_10 + 1;
              var_7 = var_10[1];
              var_9 = pcVar13;
            } while (var_7 != '\0');
          }
          *pcVar13 = '\0';
          (**(type_7 **)(var_1 + 0x389c4))(pcStack_58);
          pcStack_58 = (char *)(**(type_7 **)(var_1 + 0x389fc))(var_2);
        }
        else {
          var_6 = (**(type_7 **)(var_1 + 0x391cc))(var_2);
          if (var_6 != 0) {
            var_14 = (type_3 *)0x2;
            var_17 = (char **)(var_11 + -0x4ab8);
            var_6 = (**(type_7 **)(var_1 + 0x390e8))(var_2);
            if (var_6 != 0) {
              var_16 = (type_3 *)0x0;
              var_8 = (char *)(*(int *)(var_1 + 0x38a34) + -0x4b8c);
              goto LAB_000477c4;
            }
          }
        }
        (**(type_7 **)(var_1 + 0x389c4))(var_2);
      }
      var_8 = (char *)(*(int *)(var_1 + 0x38a34) + -0x4b04);
      var_16 = (type_3 *)0x0;
    }
    else {
      var_16 = (type_3 *)0x0;
      pcStack_58 = (char *)0x0;
      var_8 = (char *)(*(int *)(var_1 + 0x38a34) + -0x4bb8);
    }
  }
  goto LAB_000477c4;
  while (var_17 = *(char ***)(var_1 + 0x38a34), *var_2 != '-') {
LAB_00047bb8:
    var_7 = *var_2;
    var_8 = var_2;
    while (var_7 != '\0') {
      var_13 = var_12 + 1;
      base64in[(int)var_12] = var_7;
      if (var_13 == (type_3 *)0x4) {
        var_14 = (type_3 *)(**(type_7 **)(var_1 + 0x38ab4))(base64in,base64out);
        var_12 = var_14 + (int)var_18;
        if (var_15 < (int)var_12) {
          var_3 = (int)var_12 * 5;
          if (var_3 < 0) {
            var_3 = var_3 + 3;
          }
          var_15 = (var_3 >> 2) + 0x400;
          var_16 = (type_3 *)(**(type_7 **)(var_1 + 0x38a00))(var_16,var_15,1);
        }
        var_17 = (char **)base64out;
        (**(type_7 **)(var_1 + 0x39208))(var_16 + (int)var_18);
        var_13 = pbVar1;
        var_18 = var_12;
      }
      var_8 = var_8 + 1;
      var_12 = var_13;
      var_7 = *var_8;
    }
    (**(type_7 **)(var_1 + 0x389c4))(var_2);
    uVar3 = (**(type_7 **)(var_1 + 0x38d44))(fp);
    var_2 = (char *)(**(type_7 **)(var_1 + 0x38d48))(uVar3);
    if (var_2 == (char *)0x0) {
      var_8 = (char *)(*(int *)(var_1 + 0x38a34) + -0x4b30);
      goto LAB_000477c4;
    }
  }
LAB_00047a78:
  var_17 = var_17 + -0x12ad;
  var_3 = (**(type_7 **)(var_1 + 0x391cc))(var_2);
  if (var_3 == 0) {
    (**(type_7 **)(var_1 + 0x389c4))(var_2);
    var_2 = (char *)0x0;
    if ((int)var_18 < 4) {
      var_8 = (char *)(*(int *)(var_1 + 0x38a34) + -0x4b5c);
    }
    else {
      ppcVar19 = (char **)(**(type_7 **)(var_1 + 0x38a98))
                                    ((type_6)*var_16 << 0x18 | (type_6)var_16[1] << 0x10 |
                                     (type_6)var_16[3] | (type_6)var_16[2] << 8);
      if ((int)ppcVar19 < 0) {
        var_8 = (char *)(*(int *)(var_1 + 0x38a34) + -0x4bec);
      }
      else {
        if ((int)ppcVar19 < (int)(var_18 + -3)) {
          var_14 = var_16 + 4;
          if (var_19 != (char **)0x0) {
            var_2 = (char *)(**(type_7 **)(var_1 + 0x389b8))(*(int *)(var_1 + 0x389a8) + 0x4a50);
            *var_19 = var_2;
            var_17 = ppcVar19;
          }
          if (var_20 != (int *)0x0) {
            *var_20 = (int)var_18;
          }
          if (var_21 == (char **)0x0) {
            (**(type_7 **)(var_1 + 0x389c4))(pcStack_58);
          }
          else {
            *var_21 = pcStack_58;
          }
          goto LAB_00047814;
        }
        var_8 = (char *)(*(int *)(var_1 + 0x38a34) + -0x4bec);
      }
    }
  }
  else {
    var_8 = (char *)(*(int *)(var_1 + 0x38a34) + -0x4b30);
  }
LAB_000477c4:
  (**(type_7 **)(var_1 + 0x389c4))(var_2);
  (**(type_7 **)(var_1 + 0x389c4))(pcStack_58);
  (**(type_7 **)(var_1 + 0x389c4))(var_16);
  if (var_22 == (char **)0x0) {
    var_16 = (type_3 *)0x0;
  }
  else {
    *var_22 = var_8;
    var_16 = (type_3 *)0x0;
  }
LAB_00047814:
  if (var_23 == **(int **)(var_1 + 0x39258)) {
    return var_16;
  }
  var_24 = *(type_7 **)(var_1 + 0x39114);
  (*var_24)();
  uVar3 = (**(type_7 **)(var_24 + 0x38728))();
  uVar3 = (**(type_7 **)(var_24 + 0x3872c))(uVar3);
  var_4 = (type_5 *)(**(type_7 **)(var_24 + 0x38b40))(uVar3,0x20);
  if (var_4 == (type_5 *)0x0) {
    var_23 = *(int *)(var_24 + 0x38418) + -0x4a20;
    var_16 = (type_3 *)0x0;
    var_2 = (char *)0x0;
  }
  else {
    var_8 = var_4 + 1;
    *var_4 = 0;
    var_2 = (char *)(**(type_7 **)(var_24 + 0x38b40))(var_8,0x20);
    if (var_2 != (char *)0x0) {
      *var_2 = '\0';
      var_2 = (char *)(**(type_7 **)(var_24 + 0x383e0))(var_2 + 1);
    }
    var_25 = (**(type_7 **)(var_24 + 0x38bdc))(var_8);
    var_23 = (var_25 >> 2) * 3;
    var_16 = (type_3 *)(**(type_7 **)(var_24 + 0x383b8))(var_23,1);
    var_3 = 0;
    while( true ) {
      var_5 = (**(type_7 **)(var_24 + 0x38ba0))(var_8,0,4);
      if (var_5 != 0) break;
      if (var_23 <= var_3 + 2) {
        (**(type_7 **)(var_24 + 0x389cc))
                  (*(int *)(var_24 + 0x38418) + -0x49f8,*(int *)(var_24 + 0x38418) + -0x4e7c,0x441
                   ,*(int *)(var_24 + 0x38418) + -0x46b0);
        break;
      }
      var_5 = (**(type_7 **)(var_24 + 0x38498))(var_8,var_16 + var_3);
      var_3 = var_3 + var_5;
      var_8 = var_8 + 4;
    }
    if (*var_8 == '\0') {
      var_25 = (**(type_7 **)(var_24 + 0x38bdc))(uVar3);
      if ((int)(var_25 + 3) < var_3) {
        if (var_25 == ((type_6)*var_16 << 0x18 | (type_6)var_16[1] << 0x10 | (type_6)var_16[3] |
                     (type_6)var_16[2] << 8)) {
          var_23 = (**(type_7 **)(var_24 + 0x38b88))(var_16 + 4,uVar3,var_25);
          if (var_23 == 0) {
            if (var_17 != (char **)0x0) {
              var_8 = (char *)(**(type_7 **)(var_24 + 0x383e0))(uVar3);
              *var_17 = var_8;
            }
            if (var_14 != (type_3 *)0x0) {
              *(int *)var_14 = var_3;
            }
            if (var_26 == (char **)0x0) {
              (**(type_7 **)(var_24 + 0x383a8))(var_2);
            }
            else {
              *var_26 = var_2;
            }
            (**(type_7 **)(var_24 + 0x383a8))(uVar3);
            return var_16;
          }
          var_23 = *(int *)(var_24 + 0x38418) + -0x4a94;
        }
        else {
          var_23 = *(int *)(var_24 + 0x38418) + -0x4a94;
        }
      }
      else {
        var_23 = *(int *)(var_24 + 0x38418) + -0x4a94;
      }
    }
    else {
      var_23 = *(int *)(var_24 + 0x38418) + -0x4a5c;
    }
  }
  (**(type_7 **)(var_24 + 0x383a8))(uVar3);
  (**(type_7 **)(var_24 + 0x383a8))(var_2);
  (**(type_7 **)(var_24 + 0x383a8))(var_16);
  if (var_27 != (int *)0x0) {
    *var_27 = var_23;
    var_27 = (int *)0x0;
  }
  return (type_1 *)var_27;
}


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

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

byte * MASKED(undefined4 param_1,undefined4 *param_2,byte *param_3,undefined4 *param_4,
                      undefined4 *param_5)

{
  undefined4 uVar1;
  byte *pbVar2;
  int iVar3;
  byte bVar8;
  undefined1 *puVar4;
  uint uVar5;
  int iVar6;
  undefined4 uVar7;
  byte *pbVar9;
  byte *pbVar10;
  byte *pbVar11;
  undefined4 *puVar12;
  byte *pbVar13;
  undefined4 *puVar14;
  undefined *puVar15;
  char *pcVar16;
  int iVar17;
  byte *pbVar18;
  undefined *puVar19;
  undefined4 *puVar20;
  byte *pbVar21;
  undefined4 *puVar22;
  byte *pbVar23;
  undefined4 local_58;
  int local_50;
  undefined4 uStack_34;
  byte abStack_30 [4];
  int local_2c;
  
  local_2c = *(int *)PTR___stack_chk_guard_00080958;
  puVar12 = param_2;
  pbVar13 = param_3;
  puVar14 = param_4;
  uVar1 = (*(code *)PTR_fgetline_00080444)();
  pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);
  if (pbVar2 == (byte *)0x0) {
    puVar15 = PTR_DAT_00080134 + -0x4bb8;
    pbVar23 = (byte *)0x0;
    local_58 = 0;
  }
  else {
    puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ae4);
    iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);
    if (iVar3 == 0) {
      (*(code *)PTR_safefree_000800c4)(pbVar2);
      local_58 = 0;
      puVar15 = PTR_DAT_00080134 + -0x4ac4;
      puVar19 = PTR_DAT_00080134 + -0x4c58;
      puVar20 = (undefined4 *)(PTR_DAT_00080134 + -0x4ac0);
      puVar22 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab8);
      while( true ) {
        uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);
        pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);
        if (pbVar2 == (byte *)0x0) break;
        puVar4 = (undefined1 *)(*(code *)PTR_strstr_0008096c)(pbVar2,puVar15);
        if (puVar4 == (undefined1 *)0x0) {
          puVar12 = (undefined4 *)0x1;
          pbVar23 = (byte *)(*(code *)PTR_safemalloc_000800d4)(0x1000);
          pbVar10 = (byte *)0x0;
          pbVar9 = pbVar10;
          if (*pbVar2 == 0x2d) goto LAB_00047a78;
          local_50 = 0x1000;
          pbVar21 = pbVar10;
          goto LAB_00047bb8;
        }
        *puVar4 = 0;
        iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2,puVar19);
        puVar12 = puVar20;
        if (iVar3 == 0) {
          pbVar23 = puVar4 + 2;
          if (puVar4[2] == '\"') {
            iVar3 = (*(code *)PTR_strlen_000808f8)(pbVar23);
            if (pbVar23[iVar3 + -1] == 0x22) {
              pbVar23[iVar3 + -1] = 0;
              pbVar23 = puVar4 + 3;
            }
          }
          bVar8 = *pbVar23;
          pbVar10 = pbVar2;
          if (bVar8 != 0) {
            puVar12 = (undefined4 *)&DAT_0000005c;
            pbVar9 = pbVar2;
            do {
              pbVar21 = pbVar23;
              if ((bVar8 == 0x5c) && (pbVar21 = pbVar23 + 1, pbVar23[1] == 0)) {
                pbVar21 = pbVar23;
              }
              pbVar10 = pbVar9 + 1;
              *pbVar9 = *pbVar21;
              pbVar23 = pbVar21 + 1;
              bVar8 = pbVar21[1];
              pbVar9 = pbVar10;
            } while (bVar8 != 0);
          }
          *pbVar10 = 0;
          (*(code *)PTR_safefree_000800c4)(local_58);
          local_58 = (*(code *)PTR_dupstr_000800fc)(pbVar2);
        }
        else {
          iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);
          if (iVar3 != 0) {
            pbVar13 = (byte *)0x2;
            puVar12 = puVar22;
            iVar3 = (*(code *)PTR_strncmp_000807e8)(pbVar2);
            if (iVar3 != 0) {
              pbVar23 = (byte *)0x0;
              puVar15 = PTR_DAT_00080134 + -0x4b8c;
              goto LAB_000477c4;
            }
          }
        }
        (*(code *)PTR_safefree_000800c4)(pbVar2);
      }
      puVar15 = PTR_DAT_00080134 + -0x4b04;
      pbVar23 = (byte *)0x0;
    }
    else {
      pbVar23 = (byte *)0x0;
      local_58 = 0;
      puVar15 = PTR_DAT_00080134 + -0x4bb8;
    }
  }
  goto LAB_000477c4;
  while (puVar12 = (undefined4 *)PTR_DAT_00080134, *pbVar2 != 0x2d) {
LAB_00047bb8:
    bVar8 = *pbVar2;
    pbVar18 = pbVar2;
    while (bVar8 != 0) {
      pbVar11 = pbVar21 + 1;
      abStack_30[(int)pbVar21] = bVar8;
      if (pbVar11 == &DAT_00000004) {
        pbVar13 = (byte *)(*(code *)PTR_base64_decode_atom_000801b4)(abStack_30,&uStack_34);
        pbVar21 = pbVar13 + (int)pbVar9;
        if (local_50 < (int)pbVar21) {
          iVar3 = (int)pbVar21 * 5;
          if (iVar3 < 0) {
            iVar3 = iVar3 + 3;
          }
          local_50 = (iVar3 >> 2) + 0x400;
          pbVar23 = (byte *)(*(code *)PTR_saferealloc_00080100)(pbVar23,local_50,1);
        }
        puVar12 = &uStack_34;
        (*(code *)PTR_memcpy_00080908)(pbVar23 + (int)pbVar9);
        pbVar11 = pbVar10;
        pbVar9 = pbVar21;
      }
      pbVar18 = pbVar18 + 1;
      pbVar21 = pbVar11;
      bVar8 = *pbVar18;
    }
    (*(code *)PTR_safefree_000800c4)(pbVar2);
    uVar1 = (*(code *)PTR_fgetline_00080444)(param_1);
    pbVar2 = (byte *)(*(code *)PTR_chomp_00080448)(uVar1);
    if (pbVar2 == (byte *)0x0) {
      puVar15 = PTR_DAT_00080134 + -0x4b30;
      goto LAB_000477c4;
    }
  }
LAB_00047a78:
  puVar12 = (undefined4 *)(PTR_DAT_00080134 + -0x4ab4);
  iVar3 = (*(code *)PTR_strcmp_000808cc)(pbVar2);
  if (iVar3 == 0) {
    (*(code *)PTR_safefree_000800c4)(pbVar2);
    pbVar2 = (byte *)0x0;
    if ((int)pbVar9 < 4) {
      puVar15 = PTR_DAT_00080134 + -0x4b5c;
    }
    else {
      puVar20 = (undefined4 *)
                (*(code *)PTR_toint_00080198)
                          ((uint)*pbVar23 << 0x18 | (uint)pbVar23[1] << 0x10 | (uint)pbVar23[3] |
                           (uint)pbVar23[2] << 8);
      if ((int)puVar20 < 0) {
        puVar15 = PTR_DAT_00080134 + -0x4bec;
      }
      else {
        if ((int)puVar20 < (int)(pbVar9 + -3)) {
          pbVar13 = pbVar23 + 4;
          if (param_2 != (undefined4 *)0x0) {
            uVar1 = (*(code *)PTR_dupprintf_000800b8)(PTR_LAB_000800a8 + 0x4a50);
            *param_2 = uVar1;
            puVar12 = puVar20;
          }
          if (param_3 != (byte *)0x0) {
            *(byte **)param_3 = pbVar9;
          }
          if (param_4 == (undefined4 *)0x0) {
            (*(code *)PTR_safefree_000800c4)(local_58);
          }
          else {
            *param_4 = local_58;
          }
          goto LAB_00047814;
        }
        puVar15 = PTR_DAT_00080134 + -0x4bec;
      }
    }
  }
  else {
    puVar15 = PTR_DAT_00080134 + -0x4b30;
  }
LAB_000477c4:
  (*(code *)PTR_safefree_000800c4)(pbVar2);
  (*(code *)PTR_safefree_000800c4)(local_58);
  (*(code *)PTR_safefree_000800c4)(pbVar23);
  if (param_5 == (undefined4 *)0x0) {
    pbVar23 = (byte *)0x0;
  }
  else {
    *param_5 = puVar15;
    pbVar23 = (byte *)0x0;
  }
LAB_00047814:
  if (local_2c == *(int *)PTR___stack_chk_guard_00080958) {
    return pbVar23;
  }
  puVar15 = PTR___stack_chk_fail_00080814;
  (*(code *)PTR___stack_chk_fail_00080814)();
  uVar1 = (**(code **)(puVar15 + 0x38728))();
  uVar1 = (**(code **)(puVar15 + 0x3872c))(uVar1);
  puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(uVar1,0x20);
  if (puVar4 == (undefined1 *)0x0) {
    iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a20;
    pbVar2 = (byte *)0x0;
    puVar4 = (undefined1 *)0x0;
  }
  else {
    pcVar16 = puVar4 + 1;
    *puVar4 = 0;
    puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x38b40))(pcVar16,0x20);
    if (puVar4 != (undefined1 *)0x0) {
      *puVar4 = 0;
      puVar4 = (undefined1 *)(**(code **)(puVar15 + 0x383e0))(puVar4 + 1);
    }
    uVar5 = (**(code **)(puVar15 + 0x38bdc))(pcVar16);
    iVar3 = (uVar5 >> 2) * 3;
    pbVar2 = (byte *)(**(code **)(puVar15 + 0x383b8))(iVar3,1);
    iVar17 = 0;
    while( true ) {
      iVar6 = (**(code **)(puVar15 + 0x38ba0))(pcVar16,0,4);
      if (iVar6 != 0) break;
      if (iVar3 <= iVar17 + 2) {
        pbVar2 = (byte *)(**(code **)(puVar15 + 0x389cc))
                                   (*(int *)(puVar15 + 0x38418) + -0x49f8,
                                    *(int *)(puVar15 + 0x38418) + -0x4e7c,0x441,
                                    *(int *)(puVar15 + 0x38418) + -0x46b0);
        return pbVar2;
      }
      iVar6 = (**(code **)(puVar15 + 0x38498))(pcVar16,pbVar2 + iVar17);
      iVar17 = iVar17 + iVar6;
      pcVar16 = pcVar16 + 4;
    }
    if (*pcVar16 == '\0') {
      uVar5 = (**(code **)(puVar15 + 0x38bdc))(uVar1);
      if ((int)(uVar5 + 3) < iVar17) {
        if (uVar5 == ((uint)*pbVar2 << 0x18 | (uint)pbVar2[1] << 0x10 | (uint)pbVar2[3] |
                     (uint)pbVar2[2] << 8)) {
          iVar3 = (**(code **)(puVar15 + 0x38b88))(pbVar2 + 4,uVar1,uVar5);
          if (iVar3 == 0) {
            if (puVar12 != (undefined4 *)0x0) {
              uVar7 = (**(code **)(puVar15 + 0x383e0))(uVar1);
              *puVar12 = uVar7;
            }
            if (pbVar13 != (byte *)0x0) {
              *(int *)pbVar13 = iVar17;
            }
            if (puVar14 == (undefined4 *)0x0) {
              (**(code **)(puVar15 + 0x383a8))(puVar4);
            }
            else {
              *puVar14 = puVar4;
            }
            (**(code **)(puVar15 + 0x383a8))(uVar1);
            return pbVar2;
          }
          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;
        }
        else {
          iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;
        }
      }
      else {
        iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a94;
      }
    }
    else {
      iVar3 = *(int *)(puVar15 + 0x38418) + -0x4a5c;
    }
  }
  (**(code **)(puVar15 + 0x383a8))(uVar1);
  (**(code **)(puVar15 + 0x383a8))(puVar4);
  (**(code **)(puVar15 + 0x383a8))(pbVar2);
  __gp_1 = iVar3;
  return (byte *)0x0;
}

