
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

_Bool read_files(file_data *filevec,_Bool pretend_binary)

{
  uint *puVar1;
  byte bVar2;
  undefined4 uVar3;
  char *s1;
  ushort *puVar4;
  size_t sVar5;
  DIFF_white_space DVar6;
  _Bool _Var7;
  _Bool _Var8;
  uint uVar9;
  undefined4 *p;
  undefined4 *puVar10;
  size_t sVar11;
  void *pvVar12;
  byte *pbVar13;
  ushort **ppuVar14;
  __int32_t **pp_Var15;
  char **ppcVar16;
  size_t **ppsVar17;
  bool bVar18;
  lin lVar19;
  size_t *psVar20;
  undefined4 *puVar21;
  int iVar22;
  char cVar23;
  size_t *psVar24;
  uint uVar25;
  undefined4 *puVar26;
  lin lVar27;
  uint uVar28;
  DIFF_white_space DVar29;
  byte *pbVar30;
  size_t *psVar31;
  byte *pbVar33;
  equivclass *peVar34;
  size_t *psVar35;
  size_t *psVar36;
  int iVar37;
  bool bVar38;
  bool bVar39;
  size_t *local_90;
  size_t *local_8c;
  uint local_88;
  size_t *local_84;
  char **local_80;
  equivclass *local_7c;
  size_t *local_78;
  uint local_74;
  size_t *local_70;
  uint local_6c;
  lin *local_68;
  uint local_64;
  uint local_60;
  size_t **local_5c;
  byte *pbVar32;
  
  _Var8 = text;
  _Var7 = sip(filevec,text || pretend_binary);
  bVar18 = _Var7 || pretend_binary;
  if (filevec->desc == filevec[1].desc) {
    filevec[1].buffer = filevec->buffer;
    filevec[1].bufsize = filevec->bufsize;
    filevec[1].buffered = filevec->buffered;
    if (bVar18) {
      return bVar18;
    }
  }
  else {
    _Var8 = sip(filevec + 1,pretend_binary || (_Var8 || _Var7));
    if (bVar18 || _Var8) {
      return bVar18 || _Var8;
    }
  }
  slurp(filevec);
  prepare_text(filevec);
  if (filevec->desc == filevec[1].desc) {
    local_78 = filevec->buffer;
    filevec[1].buffer = local_78;
    filevec[1].bufsize = filevec->bufsize;
    uVar28 = filevec->buffered;
    filevec[1].buffered = uVar28;
    filevec[1].missing_newline = filevec->missing_newline;
    local_88 = uVar28;
LAB_000199ff:
    psVar31 = (size_t *)((int)local_78 + uVar28);
    local_80 = (char **)(output_style - OUTPUT_ED);
    local_90 = local_78;
    local_84 = (size_t *)(local_88 + (int)local_78);
    local_8c = psVar31;
    lVar19 = horizon_lines;
    local_7c = (equivclass *)psVar31;
  }
  else {
    slurp(filevec + 1);
    prepare_text(filevec + 1);
    local_88 = filevec->buffered;
    local_90 = filevec->buffer;
    local_78 = filevec[1].buffer;
    uVar28 = filevec[1].buffered;
    if (local_90 == local_78) goto LAB_000199ff;
    local_84 = (size_t *)((int)local_90 + local_88);
    local_7c = (equivclass *)((int)local_78 + uVar28);
    if (local_88 < uVar28) {
      *(byte *)local_84 = ~*(byte *)((int)local_78 + local_88);
    }
    else {
      *(byte *)local_7c = ~*(byte *)((int)local_90 + uVar28);
    }
    psVar31 = local_90;
    local_8c = local_78;
    if (*local_78 == *local_90) {
      do {
        local_8c = local_8c + 1;
        psVar31 = psVar31 + 1;
      } while (*psVar31 == *local_8c);
    }
    if ((byte)*local_8c == (byte)*psVar31) {
      do {
        local_8c = (size_t *)((int)local_8c + 1);
        psVar31 = (size_t *)((int)psVar31 + 1);
      } while (*(byte *)psVar31 == *(byte *)local_8c);
    }
    local_80 = (char **)(output_style - OUTPUT_ED);
    lVar19 = horizon_lines;
    if ((1 < local_80) &&
       ((size_t *)((int)local_90 + (local_88 - filevec->missing_newline)) < psVar31 !=
        (size_t *)((int)local_78 + (uVar28 - filevec[1].missing_newline)) < local_8c)) {
      local_8c = (size_t *)((int)local_8c + -1);
      psVar31 = (size_t *)((int)psVar31 + -1);
    }
  }
  for (; uVar9 = local_88, lVar27 = horizon_lines, psVar31 != local_90;
      psVar31 = (size_t *)((int)psVar31 + -1)) {
    while (*(byte *)((int)psVar31 + -1) == 10) {
      if (lVar19 == 0) goto LAB_00019a73;
      psVar31 = (size_t *)((int)psVar31 + -1);
      local_8c = (size_t *)((int)local_8c + -1);
      lVar19 = lVar19 + -1;
      if (psVar31 == local_90) goto LAB_00019a73;
    }
    local_8c = (size_t *)((int)local_8c + -1);
  }
LAB_00019a73:
  filevec->prefix_end = (char *)psVar31;
  filevec[1].prefix_end = (char *)local_8c;
  if ((local_80 < 2) ||
     (local_70 = (size_t *)local_7c, psVar35 = local_84,
     filevec->missing_newline == filevec[1].missing_newline)) {
    psVar35 = (size_t *)((local_88 - uVar28) + (int)psVar31);
    if (local_88 < uVar28) {
      psVar35 = psVar31;
    }
    if ((psVar35 == local_84) || (*(byte *)((int)local_7c + -1) != *(byte *)((int)local_84 + -1))) {
      local_80 = (char **)local_7c;
      psVar20 = local_84;
    }
    else {
      psVar36 = (size_t *)((int)local_7c + ((int)psVar35 - (int)local_84));
      psVar35 = local_84;
      peVar34 = local_7c;
      do {
        psVar24 = (size_t *)((int)peVar34 + -1);
        psVar20 = (size_t *)((int)psVar35 + -1);
        local_80 = (char **)psVar36;
        if (psVar24 == psVar36) break;
        pbVar32 = (byte *)((int)peVar34 + -2);
        pbVar13 = (byte *)((int)psVar35 + -2);
        psVar35 = psVar20;
        local_80 = (char **)psVar24;
        peVar34 = (equivclass *)psVar24;
      } while (*pbVar13 == *pbVar32);
    }
    psVar35 = psVar20;
    if ((psVar20 == local_90) || (*(byte *)((int)psVar20 + -1) == 10)) {
      if ((char **)local_78 != local_80) {
        lVar27 = lVar27 + (uint)(*(byte *)((int)local_80 + -1) != 10);
      }
    }
    else {
      lVar27 = lVar27 + 1;
    }
    for (; (psVar35 != local_84 && (lVar27 != 0)); lVar27 = lVar27 + -1) {
      do {
        psVar36 = (size_t *)((int)psVar35 + 1);
        sVar11 = *psVar35;
        psVar35 = psVar36;
      } while ((byte)sVar11 != 10);
    }
    local_70 = (size_t *)(((int)psVar35 - (int)psVar20) + (int)local_80);
  }
  bVar18 = no_diff_means_no_output == false;
  filevec->suffix_begin = (char *)psVar35;
  filevec[1].suffix_begin = (char *)local_70;
  if ((((bVar18) || (function_regexp.fastmap != (char *)0x0)) || (0x1ffffffe < context)) ||
     (local_88 <= (uint)context)) {
    local_74 = 0xffffffff;
    local_88 = 0;
    uVar9 = uVar9 >> 5;
    if (uVar9 == 0) {
      uVar9 = 1;
    }
    local_84 = (size_t *)(uVar9 + 5);
  }
  else {
    local_74 = 0;
    local_88 = 1;
    uVar28 = (uint)((int)psVar35 - (int)psVar31) >> 5;
    if (uVar28 == 0) {
      uVar28 = 1;
    }
    uVar9 = (uint)((int)local_84 - (int)psVar35) >> 5;
    if (uVar9 == 0) {
      uVar9 = 1;
    }
    uVar25 = 1;
    if (0 < context) {
      do {
        local_88 = uVar25 * 2;
        iVar22 = uVar25 * -2;
        uVar25 = local_88;
      } while (SBORROW4(context,local_88) == context + iVar22 < 0);
      local_74 = local_88 - 1;
    }
    iVar22 = uVar9 + 5;
    if (context <= (int)(uVar9 + 5)) {
      iVar22 = context;
    }
    local_84 = (size_t *)(iVar22 + local_88 + uVar28 + 5);
  }
  p = (undefined4 *)xmalloc((int)local_84 << 2);
  psVar31 = (size_t *)filevec->prefix_end;
  if (((no_diff_means_no_output == false) || (psVar35 != psVar31)) ||
     (psVar35 = (size_t *)filevec[1].prefix_end, local_70 != psVar35)) {
    if (local_90 == psVar31) {
      psVar35 = (size_t *)filevec[1].prefix_end;
      goto LAB_0001a84f;
    }
    uVar28 = (uint)local_84;
    local_8c = (size_t *)0;
    psVar35 = local_90;
    do {
      uVar9 = (uint)local_8c;
      local_8c = (size_t *)(uVar9 + 1);
      local_84 = (size_t *)uVar28;
      if ((local_74 & uVar9) == uVar28) {
        if (0xffffffe < uVar28) goto LAB_0001a9c0;
        local_84 = (size_t *)(uVar28 * 2);
        p = (undefined4 *)xrealloc(p,uVar28 * 8);
      }
      p[local_74 & uVar9] = psVar35;
      psVar20 = psVar35;
      do {
        psVar35 = (size_t *)((int)psVar20 + 1);
        sVar11 = *psVar20;
        psVar20 = psVar35;
      } while ((byte)sVar11 != 10);
      uVar28 = (uint)local_84;
    } while (psVar35 != psVar31);
    local_6c = (int)local_70 - (int)filevec[1].prefix_end;
    bVar18 = local_88 != 0;
    local_88 = (uint)local_8c;
    if ((bVar18) && (local_88 = context, (int)local_8c <= context)) {
      local_88 = (uint)local_8c;
    }
    uVar28 = 0x20;
    if (9 < (int)local_8c) {
      uVar28 = (uint)((int)psVar31 - (int)local_90) / uVar9;
    }
  }
  else {
LAB_0001a84f:
    local_6c = (int)local_70 - (int)psVar35;
    if (local_88 == 0) {
      local_8c = (size_t *)0x0;
      uVar28 = 0x20;
    }
    else {
      local_88 = 0;
      uVar28 = 0x20;
      local_8c = (size_t *)0x0;
      if (context < 1) {
        local_88 = context;
      }
    }
  }
  uVar9 = (uint)((int)local_7c - (int)local_70) / uVar28;
  if (uVar9 == 0) {
    uVar9 = 1;
  }
  if (0xe38e389 < uVar9) {
    uVar9 = 0xe38e389;
  }
  iVar22 = uVar9 + 5;
  if (context < (int)(uVar9 + 5)) {
    iVar22 = context;
  }
  uVar9 = 1;
  if (local_6c / uVar28 != 0) {
    uVar9 = local_6c / uVar28;
  }
  if (0xe38e389 < uVar9) {
    uVar9 = 0xe38e389;
  }
  uVar28 = local_88 + 5 + uVar9 + iVar22;
  bVar18 = (int)uVar28 < (int)local_88 || 0x1ffffffe < uVar28;
  if (bVar18) goto LAB_0001a9c0;
  puVar10 = (undefined4 *)xmalloc(uVar28 * 4);
  if ((size_t *)local_88 == local_8c) {
    if (local_88 != 0) goto LAB_00019df3;
  }
  else if (0 < (int)local_88) {
    uVar25 = (int)local_8c - context;
    uVar9 = uVar25;
    do {
      puVar10[uVar9 - uVar25] = p[uVar9 & local_74];
      uVar9 = uVar9 + 1;
    } while (local_88 + uVar25 != uVar9);
    puVar21 = p;
    puVar26 = puVar10;
    do {
      uVar3 = *puVar26;
      puVar26 = puVar26 + 1;
      *puVar21 = uVar3;
      puVar21 = puVar21 + 1;
    } while (puVar10 + local_88 != puVar26);
LAB_00019df3:
    iVar22 = 0;
    do {
      puVar10[iVar22] = (byte *)((p[iVar22] - (int)local_90) + (int)local_78);
      iVar22 = iVar22 + 1;
    } while (iVar22 < (int)local_88);
  }
  filevec[1].linbuf = (char **)(puVar10 + local_88);
  filevec->linbuf = (char **)(p + local_88);
  filevec[1].linbuf_base = -local_88;
  filevec->linbuf_base = -local_88;
  filevec->alloc_lines = (int)local_84 - local_88;
  uVar9 = ((int)local_84 - local_88) + 1 + (uVar28 - local_88);
  filevec[1].alloc_lines = uVar28 - local_88;
  equivs_alloc = uVar9;
  filevec[1].prefix_lines = (lin)local_8c;
  filevec->prefix_lines = (lin)local_8c;
  if (0x7fffffe < uVar9) {
LAB_0001a9c0:
                    /* WARNING: Subroutine does not return */
    xalloc_die();
  }
  equivs = (equivclass *)xmalloc(uVar9 * 0x10);
  equivs_index = 1;
  if ((uint)(equivs_alloc / 3) < 0x201) {
    nbuckets = 0x1fd;
    sVar11 = 0x7f8;
  }
  else {
    iVar22 = 9;
    do {
      iVar37 = iVar22;
      iVar22 = iVar37 + 1;
      uVar28 = 1 << ((byte)iVar22 & 0x1f);
    } while (uVar28 < (uint)(equivs_alloc / 3));
    nbuckets = uVar28 - ""[iVar37 + 1];
    if (0x1ffffffe < nbuckets) goto LAB_0001a9c0;
    sVar11 = nbuckets * 4 + 4;
  }
  pvVar12 = zalloc(sVar11);
  buckets = (lin *)((int)pvVar12 + 4);
  local_5c = &filevec->buffer;
  do {
    local_80 = (char **)local_5c[3];
    iVar22 = (int)local_5c[4];
    psVar31 = local_5c[8];
    local_6c = (uint)local_5c[7];
    local_68 = (lin *)xmalloc(local_6c << 2);
    _Var8 = ignore_case;
    DVar6 = ignore_white_space;
    pbVar32 = (byte *)local_5c[10];
    local_7c = equivs;
    local_64 = equivs_index;
    local_60 = equivs_alloc;
    pbVar13 = (byte *)((int)local_5c[2] + (int)*local_5c);
    bVar39 = ignore_white_space == IGNORE_NO_WHITE_SPACE;
    if (psVar31 < pbVar32) {
      local_8c = (size_t *)0x0;
      local_90 = psVar31;
      do {
        sVar11 = tabsize;
        bVar2 = (byte)*local_90;
        uVar28 = (uint)bVar2;
        psVar31 = (size_t *)((int)local_90 + 1);
        if (DVar6 == IGNORE_SPACE_CHANGE) {
          if (bVar2 != 10) {
            ppuVar14 = __ctype_b_loc();
            uVar9 = 0;
            puVar4 = *ppuVar14;
            do {
              pbVar33 = (byte *)psVar31;
              if ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0) {
                do {
                  psVar31 = (size_t *)(pbVar33 + 1);
                  if (*pbVar33 == 10) goto LAB_0001a0a0;
                  uVar28 = (uint)*pbVar33;
                  pbVar33 = (byte *)psVar31;
                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);
                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;
              }
              uVar25 = uVar28;
              if (_Var8 != false) {
                pp_Var15 = __ctype_tolower_loc();
                uVar25 = (*pp_Var15)[uVar28];
              }
              bVar2 = *(byte *)psVar31;
              uVar28 = (uint)bVar2;
              psVar31 = (size_t *)((int)psVar31 + 1);
              uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar25;
            } while (bVar2 != 10);
            goto LAB_0001a0a0;
          }
LAB_0001a500:
          pbVar33 = (byte *)0x0;
          uVar9 = 0;
        }
        else {
          if (DVar6 < IGNORE_ALL_SPACE) {
            if (DVar6 == IGNORE_NO_WHITE_SPACE) {
LAB_0001a398:
              if (_Var8 == false) {
                uVar9 = 0;
                pbVar33 = (byte *)0x0;
                pbVar30 = (byte *)psVar31;
                if (bVar2 == 10) goto LAB_0001a0a9;
                do {
                  psVar31 = (size_t *)(pbVar30 + 1);
                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;
                  bVar2 = *pbVar30;
                  uVar28 = (uint)bVar2;
                  pbVar30 = (byte *)psVar31;
                } while (bVar2 != 10);
              }
              else {
                if (bVar2 == 10) goto LAB_0001a500;
                pp_Var15 = __ctype_tolower_loc();
                uVar9 = 0;
                pbVar33 = (byte *)psVar31;
                do {
                  psVar31 = (size_t *)(pbVar33 + 1);
                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];
                  bVar2 = *pbVar33;
                  uVar28 = (uint)bVar2;
                  pbVar33 = (byte *)psVar31;
                } while (bVar2 != 10);
              }
            }
            else {
              uVar9 = 0;
              psVar31 = (size_t *)((int)local_90 + 1);
              if (bVar2 != 10) {
                uVar25 = 0;
                local_84 = psVar31;
                do {
                  cVar23 = (char)uVar28;
                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {
                    ppuVar14 = __ctype_b_loc();
                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);
                    psVar35 = local_84;
                    while ((bVar2 & 0x20) != 0) {
                      psVar31 = (size_t *)((int)psVar35 + 1);
                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;
                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);
                      psVar35 = psVar31;
                    }
                  }
                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;
                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {
                    DVar29 = IGNORE_TAB_EXPANSION;
                  }
                  else if (cVar23 == '\t') {
                    DVar29 = sVar11 - uVar25 % sVar11;
                    uVar28 = 0x20;
                    bVar38 = CARRY4(uVar25,DVar29);
                    uVar25 = uVar25 + DVar29;
                    if (bVar38) {
                      uVar25 = 0;
                    }
                  }
                  else if (cVar23 == '\r') {
                    uVar28 = 0xd;
                    uVar25 = 0;
                  }
                  else if (cVar23 == '\b') {
                    uVar28 = 8;
                    uVar25 = uVar25 - (uVar25 != 0);
                  }
                  else {
                    uVar25 = uVar25 + 1;
                  }
                  if (_Var8 != false) {
                    pp_Var15 = __ctype_tolower_loc();
                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);
                  }
                  do {
                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;
                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;
                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);
                  psVar31 = (size_t *)((int)local_84 + 1);
                  sVar5 = *local_84;
                  uVar28 = (uint)(byte)sVar5;
                  local_84 = psVar31;
                } while ((byte)sVar5 != 10);
              }
            }
          }
          else {
            if (DVar6 != IGNORE_ALL_SPACE) goto LAB_0001a398;
            uVar9 = 0;
            psVar31 = local_90;
            while (psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n') {
              ppuVar14 = __ctype_b_loc();
              if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {
                if (_Var8 != false) {
                  pp_Var15 = __ctype_tolower_loc();
                  uVar28 = (*pp_Var15)[uVar28];
                }
                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;
              }
              uVar28 = (uint)*(byte *)psVar31;
            }
          }
LAB_0001a0a0:
          pbVar33 = (byte *)((int)psVar31 + (-1 - (int)local_90));
        }
LAB_0001a0a9:
        puVar1 = (uint *)(buckets + uVar9 % nbuckets);
        local_84 = puVar1;
        if (((((size_t *)pbVar13 == psVar31) && (*(_Bool *)(local_5c + 0x10) != false)) &&
            (1 < output_style - OUTPUT_ED)) &&
           (local_84 = (size_t *)(buckets + -1), IGNORE_TAB_EXPANSION < DVar6)) {
          local_84 = puVar1;
        }
        uVar28 = *local_84;
        local_78 = (size_t *)uVar28;
joined_r0x0001a0d6:
        if (local_78 != (size_t *)0x0) {
          do {
            peVar34 = local_7c + (int)local_78;
            if (uVar9 == peVar34->hash) {
              s1 = peVar34->line;
              if ((byte *)peVar34->length == pbVar33) {
                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);
                if (iVar37 == 0) goto joined_r0x0001a144;
                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;
              }
              else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;
              _Var7 = lines_differ(s1,(char *)local_90);
              if (!_Var7) goto joined_r0x0001a144;
            }
LAB_0001a0f0:
            local_78 = (size_t *)peVar34->next;
            if (local_78 == (size_t *)0x0) break;
          } while( true );
        }
        if (local_60 == local_64) {
          if (0x3fffffe < local_60) goto LAB_0001a9c0;
          local_7c = (equivclass *)xrealloc(local_7c,local_60 << 5);
          uVar28 = *local_84;
          local_60 = local_60 * 2;
        }
        peVar34 = local_7c + local_64;
        peVar34->next = uVar28;
        peVar34->hash = uVar9;
        peVar34->line = (char *)local_90;
        peVar34->length = (size_t)pbVar33;
        *local_84 = local_64;
        local_78 = (size_t *)local_64;
        local_64 = local_64 + 1;
joined_r0x0001a144:
        if (local_8c == (size_t *)local_6c) {
          if (((0x2aaaaaa9 < (int)local_8c) ||
              (local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c)) ||
             (0x1ffffffe < (uint)((int)local_8c - iVar22))) goto LAB_0001a9c0;
          local_68 = (lin *)xrealloc(local_68,local_6c * 4);
          pvVar12 = xrealloc(local_80 + iVar22,(local_6c - iVar22) * 4);
          local_80 = (char **)((int)pvVar12 + iVar22 * -4);
        }
        local_80[(int)local_8c] = (char *)local_90;
        local_68[(int)local_8c] = (lin)local_78;
        local_8c = (size_t *)((int)local_8c + 1);
        local_90 = psVar31;
        if (pbVar32 <= psVar31) goto LAB_0001a520;
      } while( true );
    }
    local_8c = (size_t *)0x0;
LAB_0001a520:
    local_5c[5] = local_8c;
    iVar37 = 0;
    while ((size_t *)local_6c != local_8c) {
      ppcVar16 = local_80 + (int)local_8c;
      *ppcVar16 = (char *)psVar31;
      if ((size_t *)pbVar13 == psVar31) goto LAB_0001a5e6;
LAB_0001a553:
      if ((context <= iVar37) && (no_diff_means_no_output != false)) goto LAB_0001a618;
      local_8c = (size_t *)((int)local_8c + 1);
      pbVar32 = (byte *)psVar31;
      do {
        psVar31 = (size_t *)(pbVar32 + 1);
        bVar2 = *pbVar32;
        pbVar32 = (byte *)psVar31;
      } while (bVar2 != 10);
      iVar37 = iVar37 + 1;
    }
    if (((0x2aaaaaa9 < (int)local_6c) || (uVar28 = local_6c * 2 - iVar22, 0x1ffffffe < uVar28)) ||
       (0x1ffffffe < local_6c - iVar22)) goto LAB_0001a9c0;
    pvVar12 = xrealloc(local_80 + iVar22,(uVar28 - iVar22) * 4);
    local_80 = (char **)(iVar22 * -4 + (int)pvVar12);
    ppcVar16 = local_80 + (int)local_8c;
    *ppcVar16 = (char *)psVar31;
    local_6c = uVar28;
    if ((size_t *)pbVar13 != psVar31) goto LAB_0001a553;
LAB_0001a5e6:
    if ((*(_Bool *)(local_5c + 0x10) != false) && (1 < output_style - OUTPUT_ED)) {
      *ppcVar16 = (char *)(pbVar13 + -1);
    }
LAB_0001a618:
    local_5c[3] = (size_t *)local_80;
    ppsVar17 = local_5c + 0x2c;
    equivs = local_7c;
    local_5c[6] = local_8c;
    local_5c[7] = (size_t *)local_6c;
    local_5c[0xb] = (size_t *)local_68;
    equivs_alloc = local_60;
    equivs_index = local_64;
    local_5c = ppsVar17;
    if (&filevec[2].buffer == ppsVar17) {
      filevec[1].equiv_max = local_64;
      filevec->equiv_max = local_64;
      free(local_7c);
      free(buckets + -1);
      return bVar18;
    }
  } while( true );
code_r0x0001a1dc:
  local_78 = (size_t *)peVar34->next;
  goto joined_r0x0001a0d6;
}



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

byte FUN_000198d0(int *param_1,byte param_2)

{
  byte *pbVar1;
  undefined4 uVar2;
  void *__s1;
  ushort *puVar3;
  char cVar4;
  byte bVar5;
  byte bVar6;
  char cVar7;
  uint uVar8;
  undefined4 *puVar9;
  undefined4 *puVar10;
  byte *pbVar11;
  ushort **ppuVar12;
  __int32_t **pp_Var13;
  int iVar14;
  int *piVar15;
  uint *puVar16;
  undefined4 *puVar17;
  int iVar18;
  undefined4 *puVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  byte *pbVar23;
  byte *pbVar24;
  uint uVar25;
  byte *pbVar26;
  uint *puVar27;
  byte *pbVar28;
  uint uVar29;
  int iVar30;
  bool bVar31;
  bool bVar32;
  bool bVar33;
  byte *local_90;
  byte *local_8c;
  uint local_88;
  uint *local_84;
  byte *local_80;
  byte *local_7c;
  byte *local_78;
  uint local_74;
  byte *local_70;
  uint local_6c;
  int local_68;
  uint local_64;
  uint local_60;
  int *local_5c;
  
  bVar5 = FUN_000197e0();
  bVar5 = bVar5 | param_2;
  if (*param_1 == param_1[0x2c]) {
    param_1[0x46] = param_1[0x1a];
    param_1[0x47] = param_1[0x1b];
    param_1[0x48] = param_1[0x1c];
  }
  else {
    bVar6 = FUN_000197e0();
    bVar5 = bVar5 | bVar6;
  }
  if (bVar5 != 0) {
    return bVar5;
  }
  FUN_00019690();
  FUN_00019560();
  if (*param_1 == param_1[0x2c]) {
    local_78 = (byte *)param_1[0x1a];
    param_1[0x46] = (int)local_78;
    param_1[0x47] = param_1[0x1b];
    uVar20 = param_1[0x1c];
    param_1[0x48] = uVar20;
    *(char *)(param_1 + 0x56) = (char)param_1[0x2a];
    local_88 = uVar20;
LAB_000199ff:
    pbVar24 = local_78 + uVar20;
    local_80 = (byte *)(DAT_0004d688 - 4);
    local_90 = local_78;
    local_84 = (uint *)(local_78 + local_88);
    local_8c = pbVar24;
    iVar18 = DAT_0004d698;
    local_7c = pbVar24;
  }
  else {
    FUN_00019690();
    FUN_00019560();
    local_88 = param_1[0x1c];
    local_90 = (byte *)param_1[0x1a];
    local_78 = (byte *)param_1[0x46];
    uVar20 = param_1[0x48];
    if (local_90 == local_78) goto LAB_000199ff;
    local_84 = (uint *)(local_90 + local_88);
    local_7c = local_78 + uVar20;
    if (local_88 < uVar20) {
      *(byte *)local_84 = ~local_78[local_88];
    }
    else {
      *local_7c = ~local_90[uVar20];
    }
    pbVar24 = local_90;
    local_8c = local_78;
    if (*(int *)local_78 == *(int *)local_90) {
      do {
        local_8c = local_8c + 4;
        pbVar24 = pbVar24 + 4;
      } while (*(int *)pbVar24 == *(int *)local_8c);
    }
    if (*local_8c == *pbVar24) {
      do {
        local_8c = local_8c + 1;
        pbVar24 = pbVar24 + 1;
      } while (*pbVar24 == *local_8c);
    }
    local_80 = (byte *)(DAT_0004d688 - 4);
    iVar18 = DAT_0004d698;
    if ((1 < local_80) &&
       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=
        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {
      local_8c = local_8c + -1;
      pbVar24 = pbVar24 + -1;
    }
  }
  for (; uVar8 = local_88, iVar30 = DAT_0004d698, pbVar24 != local_90; pbVar24 = pbVar24 + -1) {
    while (pbVar24[-1] == 10) {
      if (iVar18 == 0) goto LAB_00019a73;
      pbVar24 = pbVar24 + -1;
      local_8c = local_8c + -1;
      iVar18 = iVar18 + -1;
      if (pbVar24 == local_90) goto LAB_00019a73;
    }
    local_8c = local_8c + -1;
  }
LAB_00019a73:
  param_1[0x22] = (int)pbVar24;
  param_1[0x4e] = (int)local_8c;
  if ((local_80 < 2) ||
     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])) {
    pbVar28 = pbVar24 + (local_88 - uVar20);
    if (local_88 < uVar20) {
      pbVar28 = pbVar24;
    }
    if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {
      local_80 = local_7c;
      puVar16 = local_84;
    }
    else {
      puVar27 = local_84;
      pbVar11 = local_7c;
      do {
        pbVar26 = pbVar11 + -1;
        puVar16 = (uint *)((int)puVar27 + -1);
        local_80 = local_7c + ((int)pbVar28 - (int)local_84);
        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;
        pbVar23 = pbVar11 + -2;
        pbVar1 = (byte *)((int)puVar27 + -2);
        puVar27 = puVar16;
        local_80 = pbVar26;
        pbVar11 = pbVar26;
      } while (*pbVar1 == *pbVar23);
    }
    puVar27 = puVar16;
    if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {
      if (local_78 != local_80) {
        iVar30 = iVar30 + (uint)(local_80[-1] != 10);
      }
    }
    else {
      iVar30 = iVar30 + 1;
    }
    for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {
      do {
        pbVar28 = (byte *)((int)puVar27 + 1);
        bVar5 = *(byte *)puVar27;
        puVar27 = (uint *)pbVar28;
      } while (bVar5 != 10);
    }
    local_70 = local_80 + ((int)puVar27 - (int)puVar16);
  }
  bVar32 = DAT_0004d68c == '\0';
  param_1[0x24] = (int)puVar27;
  param_1[0x50] = (int)local_70;
  if ((((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||
     (local_88 <= DAT_0004d69c)) {
    local_74 = 0xffffffff;
    local_88 = 0;
    uVar8 = uVar8 >> 5;
    if (uVar8 == 0) {
      uVar8 = 1;
    }
    local_84 = (uint *)(uVar8 + 5);
  }
  else {
    local_74 = 0;
    local_88 = 1;
    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;
    if (uVar20 == 0) {
      uVar20 = 1;
    }
    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;
    if (uVar8 == 0) {
      uVar8 = 1;
    }
    uVar21 = 1;
    if (0 < (int)DAT_0004d69c) {
      do {
        local_88 = uVar21 * 2;
        iVar18 = uVar21 * -2;
        uVar21 = local_88;
      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);
      local_74 = local_88 - 1;
    }
    uVar21 = uVar8 + 5;
    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {
      uVar21 = DAT_0004d69c;
    }
    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);
  }
  puVar9 = (undefined4 *)FUN_00023c60((int)local_84 << 2);
  pbVar24 = (byte *)param_1[0x22];
  if (((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||
     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)) {
    if (local_90 == pbVar24) {
      pbVar28 = (byte *)param_1[0x4e];
      goto LAB_0001a84f;
    }
    uVar20 = (uint)local_84;
    local_8c = (byte *)0;
    pbVar28 = local_90;
    do {
      uVar8 = (uint)local_8c;
      local_8c = (byte *)(uVar8 + 1);
      local_84 = (uint *)uVar20;
      if ((local_74 & uVar8) == uVar20) {
        if (0xffffffe < uVar20) goto LAB_0001a9c0;
        local_84 = (uint *)(uVar20 * 2);
        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);
      }
      puVar9[local_74 & uVar8] = pbVar28;
      pbVar11 = pbVar28;
      do {
        pbVar28 = pbVar11 + 1;
        bVar5 = *pbVar11;
        pbVar11 = pbVar28;
      } while (bVar5 != 10);
      uVar20 = (uint)local_84;
    } while (pbVar28 != pbVar24);
    local_6c = (int)local_70 - param_1[0x4e];
    bVar32 = local_88 != 0;
    local_88 = (uint)local_8c;
    if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {
      local_88 = (uint)local_8c;
    }
    uVar20 = 0x20;
    if (9 < (int)local_8c) {
      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;
    }
  }
  else {
LAB_0001a84f:
    local_6c = (int)local_70 - (int)pbVar28;
    if (local_88 == 0) {
      local_8c = (byte *)0x0;
      uVar20 = 0x20;
    }
    else {
      local_88 = 0;
      uVar20 = 0x20;
      local_8c = (byte *)0x0;
      if ((int)DAT_0004d69c < 1) {
        local_88 = DAT_0004d69c;
      }
    }
  }
  uVar8 = (uint)((int)local_7c - (int)local_70) / uVar20;
  if (uVar8 == 0) {
    uVar8 = 1;
  }
  if (0xe38e389 < uVar8) {
    uVar8 = 0xe38e389;
  }
  uVar21 = uVar8 + 5;
  if ((int)DAT_0004d69c < (int)(uVar8 + 5)) {
    uVar21 = DAT_0004d69c;
  }
  uVar8 = 1;
  if (local_6c / uVar20 != 0) {
    uVar8 = local_6c / uVar20;
  }
  if (0xe38e389 < uVar8) {
    uVar8 = 0xe38e389;
  }
  uVar21 = local_88 + 5 + uVar8 + uVar21;
  bVar32 = (int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21;
  if (bVar32) goto LAB_0001a9c0;
  puVar10 = (undefined4 *)FUN_00023c60(uVar21 * 4);
  if ((byte *)local_88 == local_8c) {
    if (local_88 != 0) goto LAB_00019df3;
  }
  else if (0 < (int)local_88) {
    uVar8 = (int)local_8c - DAT_0004d69c;
    uVar20 = uVar8;
    do {
      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];
      uVar20 = uVar20 + 1;
    } while (local_88 + uVar8 != uVar20);
    puVar17 = puVar9;
    puVar19 = puVar10;
    do {
      uVar2 = *puVar19;
      puVar19 = puVar19 + 1;
      *puVar17 = uVar2;
      puVar17 = puVar17 + 1;
    } while (puVar10 + local_88 != puVar19);
LAB_00019df3:
    iVar18 = 0;
    do {
      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);
      iVar18 = iVar18 + 1;
    } while (iVar18 < (int)local_88);
  }
  param_1[0x49] = (int)(puVar10 + local_88);
  param_1[0x1d] = (int)(puVar9 + local_88);
  param_1[0x4a] = -local_88;
  param_1[0x1e] = -local_88;
  param_1[0x21] = (int)local_84 - local_88;
  uVar20 = ((int)local_84 - local_88) + 1 + (uVar21 - local_88);
  param_1[0x4d] = uVar21 - local_88;
  DAT_0004d388 = uVar20;
  param_1[0x4f] = (int)local_8c;
  param_1[0x23] = (int)local_8c;
  if (uVar20 < 0x7ffffff) {
    DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);
    DAT_0004d38c = 1;
    if ((uint)((int)DAT_0004d388 / 3) < 0x201) {
      DAT_0004d394 = 0x1fd;
      iVar18 = 0x7f8;
    }
    else {
      iVar18 = 9;
      do {
        iVar30 = iVar18;
        iVar18 = iVar30 + 1;
        uVar20 = 1 << ((byte)iVar18 & 0x1f);
      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));
      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];
      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;
      iVar18 = DAT_0004d394 * 4 + 4;
    }
    iVar18 = FUN_0001d920(iVar18);
    DAT_0004d398 = iVar18 + 4;
    local_5c = param_1 + 0x1a;
    do {
      local_80 = (byte *)local_5c[3];
      iVar18 = local_5c[4];
      pbVar24 = (byte *)local_5c[8];
      local_6c = local_5c[7];
      local_68 = FUN_00023c60(local_6c << 2);
      cVar4 = DAT_0004d68d;
      uVar20 = DAT_0004d638;
      pbVar28 = (byte *)local_5c[10];
      local_7c = (byte *)DAT_0004d390;
      local_64 = DAT_0004d38c;
      local_60 = DAT_0004d388;
      pbVar11 = (byte *)(local_5c[2] + *local_5c);
      bVar33 = DAT_0004d638 == 0;
      if (pbVar24 < pbVar28) {
        local_8c = (byte *)0x0;
        local_90 = pbVar24;
        do {
          uVar21 = DAT_0004d650;
          bVar5 = *local_90;
          uVar8 = (uint)bVar5;
          pbVar24 = local_90 + 1;
          if (uVar20 == 4) {
            if (bVar5 != 10) {
              ppuVar12 = __ctype_b_loc();
              uVar29 = 0;
              puVar3 = *ppuVar12;
              do {
                pbVar26 = pbVar24;
                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {
                  do {
                    pbVar24 = pbVar26 + 1;
                    if (*pbVar26 == 10) goto LAB_0001a0a0;
                    uVar8 = (uint)*pbVar26;
                    pbVar26 = pbVar24;
                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);
                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;
                }
                uVar21 = uVar8;
                if (cVar4 != '\0') {
                  pp_Var13 = __ctype_tolower_loc();
                  uVar21 = (*pp_Var13)[uVar8];
                }
                bVar5 = *pbVar24;
                uVar8 = (uint)bVar5;
                pbVar24 = pbVar24 + 1;
                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;
              } while (bVar5 != 10);
              goto LAB_0001a0a0;
            }
LAB_0001a500:
            pbVar26 = (byte *)0x0;
            uVar29 = 0;
          }
          else {
            if (uVar20 < 5) {
              if (uVar20 == 0) {
LAB_0001a398:
                if (cVar4 == '\0') {
                  uVar29 = 0;
                  pbVar26 = (byte *)0x0;
                  pbVar23 = pbVar24;
                  if (bVar5 == 10) goto LAB_0001a0a9;
                  do {
                    pbVar24 = pbVar23 + 1;
                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;
                    bVar5 = *pbVar23;
                    uVar8 = (uint)bVar5;
                    pbVar23 = pbVar24;
                  } while (bVar5 != 10);
                }
                else {
                  if (bVar5 == 10) goto LAB_0001a500;
                  pp_Var13 = __ctype_tolower_loc();
                  uVar29 = 0;
                  pbVar26 = pbVar24;
                  do {
                    pbVar24 = pbVar26 + 1;
                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];
                    bVar5 = *pbVar26;
                    uVar8 = (uint)bVar5;
                    pbVar26 = pbVar24;
                  } while (bVar5 != 10);
                }
              }
              else {
                uVar29 = 0;
                pbVar24 = local_90 + 1;
                if (bVar5 != 10) {
                  uVar25 = 0;
                  local_84 = (uint *)pbVar24;
                  do {
                    cVar7 = (char)uVar8;
                    if ((uVar20 & 2) != 0) {
                      ppuVar12 = __ctype_b_loc();
                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);
                      puVar27 = local_84;
                      while ((bVar5 & 0x20) != 0) {
                        pbVar24 = (byte *)((int)puVar27 + 1);
                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;
                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);
                        puVar27 = (uint *)pbVar24;
                      }
                    }
                    uVar22 = uVar20 & 1;
                    if (uVar22 == 0) {
                      uVar22 = 1;
                    }
                    else if (cVar7 == '\t') {
                      uVar22 = uVar21 - uVar25 % uVar21;
                      uVar8 = 0x20;
                      bVar31 = CARRY4(uVar25,uVar22);
                      uVar25 = uVar25 + uVar22;
                      if (bVar31) {
                        uVar25 = 0;
                      }
                    }
                    else if (cVar7 == '\r') {
                      uVar8 = 0xd;
                      uVar25 = 0;
                    }
                    else if (cVar7 == '\b') {
                      uVar8 = 8;
                      uVar25 = uVar25 - (uVar25 != 0);
                    }
                    else {
                      uVar25 = uVar25 + 1;
                    }
                    if (cVar4 != '\0') {
                      pp_Var13 = __ctype_tolower_loc();
                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);
                    }
                    do {
                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;
                      uVar22 = uVar22 - 1;
                    } while (uVar22 != 0);
                    pbVar24 = (byte *)((int)local_84 + 1);
                    uVar22 = *local_84;
                    uVar8 = (uint)(byte)uVar22;
                    local_84 = (uint *)pbVar24;
                  } while ((byte)uVar22 != 10);
                }
              }
            }
            else {
              if (uVar20 != 5) goto LAB_0001a398;
              uVar29 = 0;
              pbVar24 = local_90;
              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {
                ppuVar12 = __ctype_b_loc();
                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {
                  if (cVar4 != '\0') {
                    pp_Var13 = __ctype_tolower_loc();
                    uVar8 = (*pp_Var13)[uVar8];
                  }
                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;
                }
                uVar8 = (uint)*pbVar24;
              }
            }
LAB_0001a0a0:
            pbVar26 = pbVar24 + (-1 - (int)local_90);
          }
LAB_0001a0a9:
          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);
          local_84 = puVar27;
          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))
             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {
            local_84 = puVar27;
          }
          uVar8 = *local_84;
          local_78 = (byte *)uVar8;
joined_r0x0001a0d6:
          if (local_78 != (byte *)0x0) {
            do {
              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);
              if (uVar29 == puVar27[1]) {
                __s1 = (void *)puVar27[2];
                if ((byte *)puVar27[3] == pbVar26) {
                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);
                  if (iVar30 == 0) goto joined_r0x0001a144;
                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;
                }
                else if (uVar20 == 0) goto LAB_0001a0f0;
                cVar7 = FUN_0001c840(__s1,local_90);
                if (cVar7 == '\0') goto joined_r0x0001a144;
              }
LAB_0001a0f0:
              local_78 = (byte *)*puVar27;
              if (local_78 == (byte *)0x0) break;
            } while( true );
          }
          if (local_60 == local_64) {
            if (0x3fffffe < local_60) goto LAB_0001a9c0;
            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);
            uVar8 = *local_84;
            local_60 = local_60 * 2;
          }
          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);
          *puVar27 = uVar8;
          puVar27[1] = uVar29;
          puVar27[2] = (uint)local_90;
          puVar27[3] = (uint)pbVar26;
          *local_84 = local_64;
          local_78 = (byte *)local_64;
          local_64 = local_64 + 1;
joined_r0x0001a144:
          if (local_8c == (byte *)local_6c) {
            if (((0x2aaaaaa9 < (int)local_8c) ||
                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||
               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;
            local_68 = FUN_00023ce0(local_68,local_6c * 4);
            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);
            local_80 = (byte *)(iVar30 + iVar18 * -4);
          }
          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;
          *(byte **)(local_68 + (int)local_8c * 4) = local_78;
          local_8c = (byte *)((int)local_8c + 1);
          local_90 = pbVar24;
          if (pbVar28 <= pbVar24) goto LAB_0001a520;
        } while( true );
      }
      local_8c = (byte *)0x0;
LAB_0001a520:
      local_5c[5] = (int)local_8c;
      iVar30 = 0;
      while( true ) {
        if ((byte *)local_6c == local_8c) {
          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)
              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;
          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);
          local_80 = (byte *)(iVar18 * -4 + iVar14);
          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);
          *puVar9 = pbVar24;
          local_6c = uVar20;
        }
        else {
          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);
          *puVar9 = pbVar24;
        }
        if (pbVar11 == pbVar24) break;
        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;
        local_8c = (byte *)((int)local_8c + 1);
        pbVar28 = pbVar24;
        do {
          pbVar24 = pbVar28 + 1;
          bVar5 = *pbVar28;
          pbVar28 = pbVar24;
        } while (bVar5 != 10);
        iVar30 = iVar30 + 1;
      }
      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {
        *puVar9 = pbVar11 + -1;
      }
LAB_0001a618:
      local_5c[3] = (int)local_80;
      piVar15 = local_5c + 0x2c;
      DAT_0004d390 = local_7c;
      local_5c[6] = (int)local_8c;
      local_5c[7] = local_6c;
      local_5c[0xb] = local_68;
      DAT_0004d388 = local_60;
      DAT_0004d38c = local_64;
      local_5c = piVar15;
      if (param_1 + 0x72 == piVar15) {
        param_1[0x57] = local_64;
        param_1[0x2b] = local_64;
        free(local_7c);
        free((void *)(DAT_0004d398 + -4));
        return bVar32;
      }
    } while( true );
  }
LAB_0001a9c0:
                    /* WARNING: Subroutine does not return */
  FUN_00023f50();
code_r0x0001a1dc:
  local_78 = (byte *)*puVar27;
  goto joined_r0x0001a0d6;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00013b20
ADD EBX,0x33727
SUB ESP,0x8c
MOV ESI,dword ptr [ESP + 0xa4]
LEA EAX,[EBX + 0x600]
MOVZX EDI,byte ptr [EAX]
OR EDI,ESI
MOV EAX,EDI
MOVZX EDX,AL
MOV EAX,dword ptr [ESP + 0xa0]
CALL 0x000197e0
MOV ECX,EAX
MOV EAX,dword ptr [ESP + 0xa0]
OR ECX,ESI
MOV byte ptr [ESP + 0x66],CL
MOV ESI,dword ptr [EAX + 0xb0]
CMP dword ptr [EAX],ESI
JNZ 0x00019968
MOV EAX,dword ptr [ESP + 0xa0]
MOV ESI,dword ptr [ESP + 0xa0]
CMP byte ptr [ESP + 0x66],0x0
MOV EAX,dword ptr [EAX + 0x68]
MOV dword ptr [ESI + 0x118],EAX
MOV EAX,dword ptr [ESI + 0x6c]
MOV dword ptr [ESI + 0x11c],EAX
MOV EAX,dword ptr [ESI + 0x70]
MOV dword ptr [ESI + 0x120],EAX
JZ 0x0001998b
MOVZX EAX,byte ptr [ESP + 0x66]
ADD ESP,0x8c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,EDI
OR EAX,ECX
MOVZX EDX,AL
MOV EAX,dword ptr [ESP + 0xa0]
ADD EAX,0xb0
CALL 0x000197e0
OR byte ptr [ESP + 0x66],AL
CMP byte ptr [ESP + 0x66],0x0
JNZ 0x00019951
MOV EAX,dword ptr [ESP + 0xa0]
CALL 0x00019690
MOV EAX,dword ptr [ESP + 0xa0]
CALL 0x00019560
MOV EAX,dword ptr [ESP + 0xa0]
MOV EDI,dword ptr [EAX + 0xb0]
CMP dword ptr [EAX],EDI
JNZ 0x0001a6b8
MOV EAX,dword ptr [ESP + 0xa0]
MOV ESI,dword ptr [ESP + 0xa0]
MOV ECX,dword ptr [ESP + 0xa0]
MOV EAX,dword ptr [EAX + 0x68]
MOV dword ptr [ESI + 0x118],EAX
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,dword ptr [ESI + 0x6c]
MOV dword ptr [ESI + 0x11c],EAX
MOV EAX,ESI
MOV ESI,dword ptr [ESI + 0x70]
MOV dword ptr [EAX + 0x120],ESI
MOVZX EAX,byte ptr [EAX + 0xa8]
MOV dword ptr [ESP + 0x14],ESI
MOV byte ptr [ECX + 0x158],AL
LEA EDI,[EBX + 0x688]
MOV ECX,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [EDI]
MOV dword ptr [ESP + 0x68],EDI
LEA EAX,[ECX + ESI*0x1]
MOV dword ptr [ESP + 0x20],EAX
LEA EDI,[EDX + -0x4]
MOV dword ptr [ESP + 0xc],ECX
MOV dword ptr [ESP + 0x1c],EDI
MOV EDI,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x10],EAX
ADD EDI,ECX
MOV dword ptr [ESP + 0x18],EDI
LEA ECX,[EBX + 0x698]
MOV EDX,dword ptr [ESP + 0x10]
MOV EBP,dword ptr [ECX]
MOV ECX,EBP
CMP EAX,dword ptr [ESP + 0xc]
JNZ 0x00019a54
JMP 0x00019a73
SUB EAX,0x1
SUB EDX,0x1
CMP EAX,dword ptr [ESP + 0xc]
JZ 0x00019a6f
CMP byte ptr [EAX + -0x1],0xa
JNZ 0x00019a48
LEA EDI,[ECX + -0x1]
TEST ECX,ECX
JZ 0x00019a6f
MOV ECX,EDI
SUB EAX,0x1
SUB EDX,0x1
CMP EAX,dword ptr [ESP + 0xc]
JNZ 0x00019a54
MOV dword ptr [ESP + 0x10],EDX
MOV ECX,dword ptr [ESP + 0xa0]
CMP dword ptr [ESP + 0x1c],0x1
MOV dword ptr [ECX + 0x88],EAX
MOV EDX,ECX
MOV ECX,dword ptr [ESP + 0x10]
MOV dword ptr [EDX + 0x138],ECX
JBE 0x00019bc0
MOV ECX,dword ptr [ESP + 0x20]
MOV EDI,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x2c],ECX
MOVZX ECX,byte ptr [EDX + 0x158]
CMP byte ptr [EDX + 0xa8],CL
JZ 0x00019bc0
LEA ECX,[EBX + 0x68c]
MOV EDX,dword ptr [ESP + 0xa0]
MOV ESI,dword ptr [ESP + 0x2c]
CMP byte ptr [ECX],0x0
MOV dword ptr [EDX + 0x90],EDI
MOV dword ptr [EDX + 0x140],ESI
MOV dword ptr [ESP + 0x5c],ECX
JZ 0x00019aed
LEA EDX,[EBX + 0x660]
MOV EBP,dword ptr [EDX + 0x10]
TEST EBP,EBP
JZ 0x0001a898
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,0x1
MOV dword ptr [ESP + 0x28],0xffffffff
MOV dword ptr [ESP + 0x14],0x0
SHR EAX,0x5
CMOVZ EAX,EDX
ADD EAX,0x5
MOV dword ptr [ESP + 0x18],EAX
SUB ESP,0xc
SHL EAX,0x2
PUSH EAX
CALL 0x00023c60
ADD ESP,0x10
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0x5c]
CMP byte ptr [EAX],0x0
MOV EAX,dword ptr [ESP + 0xa0]
MOV EAX,dword ptr [EAX + 0x88]
MOV dword ptr [ESP + 0x1c],EAX
JZ 0x00019b46
CMP EDI,EAX
JZ 0x0001a838
MOV EAX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [ESP + 0x1c]
XOR ECX,ECX
MOV EDI,EAX
CMP EAX,EDX
JZ 0x0001a9f2
MOV EAX,ESI
MOV EBP,dword ptr [ESP + 0x18]
MOV ESI,ECX
JMP 0x00019b82
MOV dword ptr [EAX + EDX*0x4],EDI
ADD EDI,0x1
CMP byte ptr [EDI + -0x1],0xa
JNZ 0x00019b6b
CMP EDI,dword ptr [ESP + 0x1c]
JZ 0x00019c88
MOV ESI,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESP + 0x28]
LEA ECX,[ESI + 0x1]
MOV dword ptr [ESP + 0x10],ECX
AND EDX,ESI
CMP EDX,EBP
JNZ 0x00019b68
CMP EBP,0xffffffe
JA 0x0001a9c0
ADD EBP,EBP
MOV dword ptr [ESP + 0x18],EDX
SUB ESP,0x8
LEA ECX,[EBP*0x4 + 0x0]
PUSH ECX
PUSH EAX
CALL 0x00023ce0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x18]
JMP 0x00019b68
MOV ECX,dword ptr [ESP + 0x14]
MOV EDI,dword ptr [ESP + 0x18]
MOV EDX,ECX
SUB EDX,ESI
ADD EDX,EAX
CMP ECX,ESI
MOV ESI,EDX
CMOVC ESI,EAX
MOV dword ptr [ESP + 0x10],ESI
CMP ESI,EDI
JZ 0x0001a9c8
MOV ESI,dword ptr [ESP + 0x20]
LEA ECX,[EDI + -0x1]
LEA EDX,[ESI + -0x1]
MOV dword ptr [ESP + 0x28],EDX
MOVZX EDX,byte ptr [EDI + -0x1]
CMP byte ptr [ESI + -0x1],DL
JNZ 0x0001a9c8
MOV ESI,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x2c],EAX
SUB ESI,EDI
MOV EDI,dword ptr [ESP + 0x20]
ADD EDI,ESI
MOV dword ptr [ESP + 0x1c],EDI
MOV dword ptr [ESP + 0x10],EDI
JMP 0x00019c37
LEA ESI,[ECX + -0x1]
LEA EDI,[EDX + -0x1]
MOVZX EAX,byte ptr [EDX + -0x1]
CMP byte ptr [ECX + -0x1],AL
JNZ 0x0001a980
MOV EDX,EDI
MOV ECX,ESI
CMP EDX,dword ptr [ESP + 0x10]
JNZ 0x00019c20
MOV EAX,dword ptr [ESP + 0x2c]
CMP ECX,dword ptr [ESP + 0xc]
JZ 0x0001a960
CMP byte ptr [ECX + -0x1],0xa
JZ 0x0001a960
ADD EBP,0x1
MOV EDI,ECX
MOV EDX,dword ptr [ESP + 0x18]
JMP 0x00019c70
TEST EBP,EBP
JZ 0x00019c74
ADD EDI,0x1
CMP byte ptr [EDI + -0x1],0xa
JNZ 0x00019c64
SUB EBP,0x1
CMP EDI,EDX
JNZ 0x00019c60
MOV EDX,EDI
SUB EDX,ECX
ADD EDX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x2c],EDX
JMP 0x00019ab6
MOV EDX,dword ptr [ESP + 0xa0]
MOV ECX,ESI
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0x2c]
MOV EDI,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x18],EBP
SUB EAX,dword ptr [EDX + 0x138]
MOV dword ptr [ESP + 0x30],EAX
LEA EAX,[EBX + 0x69c]
MOV dword ptr [ESP + 0x6c],EAX
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x34],EAX
TEST EDI,EDI
JZ 0x0001a810
MOV EDI,dword ptr [ESP + 0x10]
CMP EDI,EAX
CMOVLE EAX,EDI
MOV dword ptr [ESP + 0x14],EAX
CMP dword ptr [ESP + 0x10],0x9
MOV EBP,0x20
JLE 0x00019ce8
MOV EAX,dword ptr [ESP + 0x1c]
XOR EDX,EDX
SUB EAX,dword ptr [ESP + 0xc]
DIV ECX
MOV EBP,EAX
XOR EDX,EDX
MOV EAX,dword ptr [ESP + 0x20]
SUB EAX,dword ptr [ESP + 0x2c]
MOV EDI,0x1
DIV EBP
MOV EDX,dword ptr [ESP + 0x34]
MOV ECX,0xe38e389
TEST EAX,EAX
CMOVZ EAX,EDI
CMP EAX,0xe38e389
CMOVA EAX,ECX
ADD EAX,0x5
CMP EAX,EDX
CMOVG EAX,EDX
XOR EDX,EDX
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x30]
DIV EBP
TEST EAX,EAX
CMOVNZ EDI,EAX
MOV EAX,dword ptr [ESP + 0x14]
CMP EDI,0xe38e389
CMOVA EDI,ECX
LEA EBP,[EAX + EDI*0x1 + 0x5]
ADD EBP,dword ptr [ESP + 0x1c]
MOV EDI,EAX
CMP EBP,EAX
SETL DL
CMP EBP,0x1ffffffe
SETA AL
OR DL,AL
MOV byte ptr [ESP + 0x66],DL
JNZ 0x0001a9c0
SUB ESP,0xc
LEA EAX,[EBP*0x4 + 0x0]
PUSH EAX
CALL 0x00023c60
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x10]
CMP EDI,EDX
JZ 0x0001a910
TEST EDI,EDI
JLE 0x00019e15
MOV ECX,dword ptr [ESP + 0x6c]
MOV EDX,dword ptr [ESP + 0x10]
MOV EDI,EAX
MOV dword ptr [ESP + 0x20],EBP
MOV dword ptr [ESP + 0x2c],EAX
MOV EBP,dword ptr [ESP + 0x28]
SUB EDX,dword ptr [ECX]
MOV ECX,dword ptr [ESP + 0x14]
ADD ECX,EDX
MOV dword ptr [ESP + 0x1c],ECX
LEA ECX,[EDX*0x4 + 0x0]
MOV EAX,dword ptr [ESP + 0x1c]
SUB EDI,ECX
NOP
MOV ECX,EDX
AND ECX,EBP
MOV ECX,dword ptr [ESI + ECX*0x4]
MOV dword ptr [EDI + EDX*0x4],ECX
ADD EDX,0x1
CMP EAX,EDX
JNZ 0x00019db0
MOV EAX,dword ptr [ESP + 0x2c]
MOV EDI,dword ptr [ESP + 0x14]
MOV ECX,ESI
MOV EBP,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x1c],EAX
MOV EDX,EAX
LEA EDI,[EAX + EDI*0x4]
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [EDX]
ADD EDX,0x4
ADD ECX,0x4
MOV dword ptr [ECX + -0x4],EAX
CMP EDI,EDX
JNZ 0x00019de0
MOV EAX,dword ptr [ESP + 0x1c]
MOV EDI,dword ptr [ESP + 0x24]
XOR ECX,ECX
LEA ESI,[ESI]
MOV EDX,dword ptr [ESI + ECX*0x4]
SUB EDX,dword ptr [ESP + 0xc]
ADD EDX,EDI
MOV dword ptr [EAX + ECX*0x4],EDX
ADD ECX,0x1
CMP dword ptr [ESP + 0x14],ECX
JG 0x00019e00
MOV ECX,dword ptr [ESP + 0x14]
MOV EDI,dword ptr [ESP + 0xa0]
LEA EDX,[ECX*0x4 + 0x0]
SUB EBP,ECX
ADD EAX,EDX
ADD ESI,EDX
MOV dword ptr [EDI + 0x124],EAX
MOV EAX,ECX
NEG EAX
MOV dword ptr [EDI + 0x74],ESI
MOV ESI,EDI
MOV dword ptr [EDI + 0x128],EAX
MOV dword ptr [EDI + 0x78],EAX
MOV EAX,dword ptr [ESP + 0x18]
SUB EAX,ECX
MOV dword ptr [EDI + 0x84],EAX
LEA EAX,[EAX + EBP*0x1 + 0x1]
MOV dword ptr [ESI + 0x134],EBP
MOV ESI,dword ptr [ESP + 0x10]
MOV dword ptr [EBX + 0x388],EAX
MOV dword ptr [EDI + 0x13c],ESI
MOV dword ptr [EDI + 0x8c],ESI
CMP EAX,0x7fffffe
JA 0x0001a9c0
SUB ESP,0xc
SHL EAX,0x4
PUSH EAX
CALL 0x00023c60
MOV ECX,dword ptr [EBX + 0x388]
MOV EDX,0x55555556
ADD ESP,0x10
MOV dword ptr [EBX + 0x390],EAX
MOV dword ptr [EBX + 0x38c],0x1
MOV EAX,ECX
SAR ECX,0x1f
IMUL EDX
SUB EDX,ECX
CMP EDX,0x200
JA 0x0001a928
MOV dword ptr [EBX + 0x394],0x1fd
MOV EAX,0x7f8
SUB ESP,0xc
PUSH EAX
CALL 0x0001d920
ADD EAX,0x4
MOV dword ptr [EBX + 0x398],EAX
MOV EAX,dword ptr [ESP + 0xb0]
ADD EAX,0x68
MOV dword ptr [ESP + 0x50],EAX
MOV EAX,dword ptr [ESP + 0xb0]
ADD EAX,0x1c8
MOV dword ptr [ESP + 0x8c],EAX
LEA EAX,[EBX + 0x68d]
ADD ESP,0x10
MOV dword ptr [ESP + 0x74],EAX
LEA EAX,[EBX + 0x638]
MOV dword ptr [ESP + 0x78],EAX
LEA EAX,[EBX + 0x650]
MOV dword ptr [ESP + 0x70],EAX
MOV EDI,dword ptr [ESP + 0x40]
SUB ESP,0xc
MOV EAX,dword ptr [EDI + 0xc]
MOV EBP,dword ptr [EDI + 0x10]
MOV ESI,dword ptr [EDI + 0x20]
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,dword ptr [EDI + 0x1c]
MOV dword ptr [ESP + 0x18],ESI
MOV dword ptr [ESP + 0x3c],EAX
SHL EAX,0x2
MOV dword ptr [ESP + 0x34],EBP
PUSH EAX
CALL 0x00023c60
MOV EDX,dword ptr [EDI + 0x28]
MOV dword ptr [ESP + 0x44],EAX
MOV EAX,dword ptr [EBX + 0x390]
MOV dword ptr [ESP + 0x70],EDX
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [EBX + 0x38c]
MOV dword ptr [ESP + 0x48],EAX
MOV EAX,dword ptr [EBX + 0x388]
MOV dword ptr [ESP + 0x4c],EAX
MOV EAX,dword ptr [EDI + 0x8]
ADD EAX,dword ptr [EDI]
MOV dword ptr [ESP + 0x58],EAX
MOV EAX,dword ptr [ESP + 0x84]
MOVZX ECX,byte ptr [EAX]
MOV EAX,dword ptr [ESP + 0x88]
MOV EAX,dword ptr [EAX]
MOV byte ptr [ESP + 0x3c],CL
MOV dword ptr [ESP + 0x24],EAX
ADD ESP,0x10
TEST EAX,EAX
SETNZ AL
OR EAX,ECX
MOV byte ptr [ESP + 0x67],AL
LEA EAX,[EBP*0x4 + 0x0]
MOV dword ptr [ESP + 0x4c],EAX
NEG EAX
MOV dword ptr [ESP + 0x50],EAX
CMP ESI,EDX
JNC 0x0001a510
MOV dword ptr [ESP + 0x10],0x0
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0xc]
MOVZX EDX,byte ptr [EAX]
LEA EBP,[EAX + 0x1]
MOV EAX,dword ptr [ESP + 0x14]
MOV ESI,EDX
CMP EAX,0x4
JZ 0x0001a458
JA 0x0001a3d0
TEST EAX,EAX
JZ 0x0001a398
MOV EAX,dword ptr [ESP + 0x70]
XOR ESI,ESI
XOR EDI,EDI
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x14]
ADD dword ptr [ESP + 0x18],0x1
AND EAX,0x2
MOV dword ptr [ESP + 0x44],EAX
CMP DL,0xa
JZ 0x0001a09b
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x44]
TEST EAX,EAX
JZ 0x0001a04d
MOV byte ptr [ESP + 0x54],DL
CALL 0x00012700
MOV ECX,dword ptr [EAX]
MOVZX EAX,byte ptr [ESP + 0x54]
MOV EDX,EAX
TEST byte ptr [ECX + EAX*0x2 + 0x1],0x20
JNZ 0x0001a4d8
MOV EBP,dword ptr [ESP + 0x14]
AND EBP,0x1
JNZ 0x0001a188
MOV EBP,0x1
CMP byte ptr [ESP + 0x2c],0x0
JZ 0x0001a080
MOV dword ptr [ESP + 0x54],EDX
CALL 0x000126e0
MOV EDX,dword ptr [ESP + 0x54]
MOV EAX,dword ptr [EAX]
MOVZX EDX,byte ptr [EAX + EDX*0x4]
LEA ESI,[ESI]
ROL EDI,0x7
ADD EDI,EDX
SUB EBP,0x1
JNZ 0x0001a080
MOV EAX,dword ptr [ESP + 0x18]
ADD dword ptr [ESP + 0x18],0x1
MOVZX EDX,byte ptr [EAX]
CMP DL,0xa
JNZ 0x0001a028
MOV EBP,dword ptr [ESP + 0x18]
NOP
MOV ESI,EBP
SUB ESI,dword ptr [ESP + 0xc]
SUB ESI,0x1
MOV EAX,EDI
XOR EDX,EDX
MOV ECX,dword ptr [EBX + 0x398]
DIV dword ptr [EBX + 0x394]
LEA EAX,[ECX + EDX*0x4]
MOV dword ptr [ESP + 0x18],EAX
CMP dword ptr [ESP + 0x48],EBP
JZ 0x0001a2c8
MOV EAX,dword ptr [ESP + 0x18]
MOV EDX,dword ptr [EAX]
MOV dword ptr [ESP + 0x24],EDX
TEST EDX,EDX
JZ 0x0001a1fc
MOV dword ptr [ESP + 0x44],EDI
MOV EDI,EBP
MOV EBP,ESI
MOV dword ptr [ESP + 0x54],EDX
JMP 0x0001a0fe
MOV EAX,dword ptr [ESI]
MOV dword ptr [ESP + 0x24],EAX
TEST EAX,EAX
JZ 0x0001a1f0
MOV ESI,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [ESP + 0x44]
SHL ESI,0x4
ADD ESI,dword ptr [ESP + 0x20]
CMP EAX,dword ptr [ESI + 0x4]
JNZ 0x0001a0f0
MOV EDX,dword ptr [ESI + 0x8]
CMP dword ptr [ESI + 0xc],EBP
JZ 0x0001a1b0
MOV EAX,dword ptr [ESP + 0x14]
TEST EAX,EAX
JZ 0x0001a0f0
SUB ESP,0x8
PUSH dword ptr [ESP + 0x14]
PUSH EDX
CALL 0x0001c840
ADD ESP,0x10
TEST AL,AL
JNZ 0x0001a0f0
MOV EBP,EDI
MOV ECX,dword ptr [ESP + 0x30]
CMP dword ptr [ESP + 0x10],ECX
JZ 0x0001a24d
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x10]
MOV ECX,dword ptr [ESP + 0x1c]
MOV ESI,dword ptr [ESP + 0xc]
MOV dword ptr [ECX + EAX*0x4],ESI
MOV ECX,dword ptr [ESP + 0x34]
MOV ESI,dword ptr [ESP + 0x24]
MOV dword ptr [ECX + EAX*0x4],ESI
ADD EAX,0x1
MOV dword ptr [ESP + 0x10],EAX
CMP dword ptr [ESP + 0x60],EBP
JBE 0x0001a520
MOV dword ptr [ESP + 0xc],EBP
JMP 0x00019fd0
CMP DL,0x9
JZ 0x0001a370
CMP DL,0xd
JZ 0x0001a360
CMP DL,0x8
JZ 0x0001a310
ADD ESI,0x1
JMP 0x0001a05f
SUB ESP,0x4
PUSH EBP
PUSH dword ptr [ESP + 0x14]
PUSH EDX
MOV dword ptr [ESP + 0x68],EDX
CALL 0x000121c0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0001a13a
CMP byte ptr [ESP + 0x67],0x0
MOV EDX,dword ptr [ESP + 0x58]
JNZ 0x0001a126
MOV EAX,dword ptr [ESI]
MOV dword ptr [ESP + 0x24],EAX
TEST EAX,EAX
JNZ 0x0001a0fe
LEA ESI,[ESI]
MOV ESI,EBP
MOV EDX,dword ptr [ESP + 0x54]
MOV EBP,EDI
MOV EDI,dword ptr [ESP + 0x44]
MOV EAX,dword ptr [ESP + 0x38]
LEA ECX,[EAX + 0x1]
MOV dword ptr [ESP + 0x44],ECX
CMP dword ptr [ESP + 0x3c],EAX
JZ 0x0001a328
MOV ECX,dword ptr [ESP + 0x38]
MOV EAX,ECX
MOV dword ptr [ESP + 0x24],ECX
SHL EAX,0x4
ADD EAX,dword ptr [ESP + 0x20]
MOV dword ptr [EAX],EDX
MOV EDX,dword ptr [ESP + 0xc]
MOV dword ptr [EAX + 0x4],EDI
MOV dword ptr [EAX + 0x8],EDX
MOV dword ptr [EAX + 0xc],ESI
MOV EAX,dword ptr [ESP + 0x18]
MOV dword ptr [EAX],ECX
MOV EAX,dword ptr [ESP + 0x44]
MOV ECX,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x38],EAX
CMP dword ptr [ESP + 0x10],ECX
JNZ 0x0001a150
MOV EAX,dword ptr [ESP + 0x10]
CMP EAX,0x2aaaaaa9
JG 0x0001a9c0
MOV EDI,dword ptr [ESP + 0x28]
LEA ESI,[EAX + EAX*0x1]
SUB ESI,EDI
CMP ESI,0x1ffffffe
JA 0x0001a9c0
SUB EAX,EDI
CMP EAX,0x1ffffffe
JA 0x0001a9c0
SUB ESP,0x8
LEA EAX,[ESI*0x4 + 0x0]
PUSH EAX
PUSH dword ptr [ESP + 0x40]
CALL 0x00023ce0
MOV dword ptr [ESP + 0x44],EAX
MOV EAX,dword ptr [ESP + 0x2c]
ADD EAX,dword ptr [ESP + 0x5c]
POP EDX
MOV EDX,ESI
SUB EDX,EDI
POP ECX
SHL EDX,0x2
PUSH EDX
PUSH EAX
CALL 0x00023ce0
ADD EAX,dword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x2c],EAX
ADD ESP,0x10
MOV dword ptr [ESP + 0x30],ESI
JMP 0x0001a150
MOV EAX,dword ptr [ESP + 0x40]
CMP byte ptr [EAX + 0x40],0x0
JZ 0x0001a0ca
MOV EAX,dword ptr [ESP + 0x68]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x24],EAX
SUB EAX,0x4
CMP EAX,0x1
JBE 0x0001a0ca
CMP dword ptr [ESP + 0x14],0x1
SETBE AL
SUB ECX,0x4
TEST AL,AL
CMOVZ ECX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x18],ECX
JMP 0x0001a0ca
XOR EAX,EAX
TEST ESI,ESI
MOV EDX,0x8
SETNZ AL
SUB ESI,EAX
JMP 0x0001a05f
MOV EAX,dword ptr [ESP + 0x3c]
CMP EAX,0x3fffffe
JA 0x0001a9c0
ADD EAX,EAX
SUB ESP,0x8
MOV dword ptr [ESP + 0x44],EAX
SHL EAX,0x4
PUSH EAX
PUSH dword ptr [ESP + 0x2c]
CALL 0x00023ce0
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,dword ptr [ESP + 0x28]
ADD ESP,0x10
MOV EDX,dword ptr [EAX]
JMP 0x0001a211
MOV EDX,0xd
XOR ESI,ESI
JMP 0x0001a05f
MOV ECX,dword ptr [ESP + 0x24]
MOV EAX,ESI
XOR EDX,EDX
DIV ECX
MOV EAX,0x0
SUB ECX,EDX
MOV EDX,0x20
ADD ESI,ECX
MOV EBP,ECX
CMOVC ESI,EAX
JMP 0x0001a05f
CMP byte ptr [ESP + 0x2c],0x0
JNZ 0x0001a420
MOV EAX,ESI
XOR EDI,EDI
XOR ESI,ESI
CMP DL,0xa
JZ 0x0001a0a9
LEA ESI,[ESI]
MOVZX EAX,AL
ROL EDI,0x7
ADD EBP,0x1
ADD EDI,EAX
MOVZX EAX,byte ptr [EBP + -0x1]
CMP AL,0xa
JNZ 0x0001a3b8
JMP 0x0001a0a0
CMP dword ptr [ESP + 0x14],0x5
JNZ 0x0001a398
MOV EBP,dword ptr [ESP + 0xc]
XOR EDI,EDI
JMP 0x0001a40d
CALL 0x00012700
MOV ECX,ESI
MOV EAX,dword ptr [EAX]
MOVZX ESI,CL
TEST byte ptr [EAX + ESI*0x2 + 0x1],0x20
JNZ 0x0001a409
CMP byte ptr [ESP + 0x2c],0x0
JZ 0x0001a404
CALL 0x000126e0
MOV EAX,dword ptr [EAX]
MOV ESI,dword ptr [EAX + ESI*0x4]
ROL EDI,0x7
ADD EDI,ESI
MOVZX ESI,byte ptr [EBP]
MOV EAX,ESI
ADD EBP,0x1
CMP AL,0xa
JNZ 0x0001a3e0
JMP 0x0001a0a0
CMP DL,0xa
JZ 0x0001a500
CALL 0x000126e0
XOR EDI,EDI
MOV EDX,ESI
MOV EAX,dword ptr [EAX]
LEA ESI,[ESI]
MOVZX EDX,DL
ADD EBP,0x1
ROL EDI,0x7
ADD EDI,dword ptr [EAX + EDX*0x4]
MOVZX EDX,byte ptr [EBP + -0x1]
CMP DL,0xa
JNZ 0x0001a438
JMP 0x0001a0a0
CMP DL,0xa
JZ 0x0001a500
CALL 0x00012700
XOR EDI,EDI
MOV ECX,dword ptr [EAX]
MOV EAX,ESI
JMP 0x0001a4a4
CMP byte ptr [ESP + 0x2c],0x0
JZ 0x0001a491
MOV dword ptr [ESP + 0x24],ECX
MOV dword ptr [ESP + 0x18],EDX
CALL 0x000126e0
MOV ECX,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [EAX]
MOV ESI,dword ptr [EAX + ESI*0x4]
MOVZX EAX,byte ptr [EDX]
ROL EDI,0x7
ADD EBP,0x1
ADD EDI,ESI
CMP AL,0xa
JZ 0x0001a0a0
MOVZX ESI,AL
MOV EDX,EBP
TEST byte ptr [ECX + ESI*0x2 + 0x1],0x20
JZ 0x0001a470
ADD EBP,0x1
MOVZX EAX,byte ptr [EBP + -0x1]
CMP AL,0xa
JZ 0x0001a0a0
MOVZX ESI,AL
TEST byte ptr [ECX + ESI*0x2 + 0x1],0x20
JNZ 0x0001a4b0
ROL EDI,0x7
MOV EDX,EBP
ADD EDI,0x20
JMP 0x0001a470
MOV EBP,dword ptr [ESP + 0x18]
JMP 0x0001a4eb
TEST byte ptr [ECX + EAX*0x2 + 0x1],0x20
JZ 0x0001a04d
ADD EBP,0x1
MOVZX EAX,byte ptr [EBP + -0x1]
CMP AL,0xa
JNZ 0x0001a4e0
JMP 0x0001a0a0
XOR ESI,ESI
XOR EDI,EDI
JMP 0x0001a0a9
MOV dword ptr [ESP + 0x10],0x0
MOV EBP,dword ptr [ESP + 0xc]
LEA ESI,[ESI]
MOV ECX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ESP + 0x40]
MOV EDX,dword ptr [ESP + 0x30]
MOV dword ptr [EAX + 0x14],ECX
XOR ECX,ECX
MOV EDI,ECX
MOV ECX,dword ptr [ESP + 0x1c]
JMP 0x0001a579
MOV EAX,dword ptr [ESP + 0x10]
LEA EAX,[ECX + EAX*0x4]
MOV dword ptr [EAX],EBP
CMP dword ptr [ESP + 0x48],EBP
JZ 0x0001a5e6
MOV EAX,dword ptr [ESP + 0x6c]
CMP dword ptr [EAX],EDI
JG 0x0001a568
MOV EAX,dword ptr [ESP + 0x5c]
CMP byte ptr [EAX],0x0
JNZ 0x0001a800
ADD dword ptr [ESP + 0x10],0x1
ADD EBP,0x1
CMP byte ptr [EBP + -0x1],0xa
JNZ 0x0001a56d
ADD EDI,0x1
CMP EDX,dword ptr [ESP + 0x10]
JNZ 0x0001a540
CMP EDX,0x2aaaaaa9
JG 0x0001a9c0
MOV EAX,dword ptr [ESP + 0x28]
LEA ESI,[EDX + EDX*0x1]
SUB ESI,EAX
CMP ESI,0x1ffffffe
JA 0x0001a9c0
SUB EDX,EAX
CMP EDX,0x1ffffffe
JA 0x0001a9c0
MOV EDX,dword ptr [ESP + 0x4c]
SUB ESP,0x8
LEA EAX,[ECX + EDX*0x1]
MOV EDX,ESI
SUB EDX,dword ptr [ESP + 0x30]
SHL EDX,0x2
PUSH EDX
PUSH EAX
CALL 0x00023ce0
MOV ECX,dword ptr [ESP + 0x60]
ADD ESP,0x10
MOV EDX,ESI
ADD ECX,EAX
MOV EAX,dword ptr [ESP + 0x10]
LEA EAX,[ECX + EAX*0x4]
MOV dword ptr [EAX],EBP
CMP dword ptr [ESP + 0x48],EBP
JNZ 0x0001a553
MOV dword ptr [ESP + 0x1c],ECX
MOV ECX,dword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0x30],EDX
CMP byte ptr [ECX + 0x40],0x0
JZ 0x0001a618
MOV ECX,dword ptr [ESP + 0x68]
MOV ECX,dword ptr [ECX]
LEA EDX,[ECX + -0x4]
MOV dword ptr [ESP + 0xc],ECX
CMP EDX,0x1
JBE 0x0001a618
MOV EDX,dword ptr [ESP + 0x48]
SUB EDX,0x1
MOV dword ptr [EAX],EDX
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [ESP + 0x40]
MOV ECX,dword ptr [ESP + 0x1c]
MOV ESI,dword ptr [ESP + 0x20]
MOV dword ptr [EAX + 0xc],ECX
MOV ECX,dword ptr [ESP + 0x10]
ADD EAX,0xb0
MOV dword ptr [EBX + 0x390],ESI
MOV dword ptr [EAX + 0xffffff68],ECX
MOV ECX,dword ptr [ESP + 0x30]
MOV dword ptr [EAX + 0xffffff6c],ECX
MOV ECX,dword ptr [ESP + 0x34]
MOV dword ptr [EAX + 0xffffff7c],ECX
MOV ECX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x40],EAX
MOV dword ptr [EBX + 0x388],ECX
MOV ECX,dword ptr [ESP + 0x38]
MOV dword ptr [EBX + 0x38c],ECX
CMP dword ptr [ESP + 0x7c],EAX
JNZ 0x00019f1e
MOV EAX,dword ptr [ESP + 0xa0]
SUB ESP,0xc
MOV dword ptr [EAX + 0x15c],ECX
MOV dword ptr [EAX + 0xac],ECX
PUSH ESI
CALL 0x00012120
MOV EAX,dword ptr [EBX + 0x398]
SUB EAX,0x4
MOV dword ptr [ESP],EAX
CALL 0x00012120
ADD ESP,0x10
MOVZX EAX,byte ptr [ESP + 0x66]
ADD ESP,0x8c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA ESI,[EAX + 0xb0]
MOV EAX,ESI
CALL 0x00019690
MOV EAX,ESI
CALL 0x00019560
MOV ESI,dword ptr [ESP + 0xa0]
MOV EAX,dword ptr [ESP + 0xa0]
MOV ECX,dword ptr [ESP + 0xa0]
MOV ESI,dword ptr [ESI + 0x70]
MOV EAX,dword ptr [EAX + 0x68]
MOV ECX,dword ptr [ECX + 0x118]
MOV dword ptr [ESP + 0x14],ESI
MOV ESI,dword ptr [ESP + 0xa0]
MOV dword ptr [ESP + 0xc],EAX
MOV dword ptr [ESP + 0x24],ECX
MOV ESI,dword ptr [ESI + 0x120]
CMP EAX,ECX
JZ 0x000199ff
MOV ECX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP + 0x14]
MOV EDI,dword ptr [ESP + 0x24]
ADD ECX,EAX
LEA EDX,[EDI + ESI*0x1]
MOV dword ptr [ESP + 0x18],ECX
MOV dword ptr [ESP + 0x20],EDX
CMP EAX,ESI
JC 0x0001a820
MOV EAX,dword ptr [ESP + 0xc]
MOV ECX,dword ptr [ESP + 0x20]
MOVZX EAX,byte ptr [EAX + ESI*0x1]
MOV byte ptr [ESP + 0x10],AL
NOT EAX
MOV byte ptr [ECX],AL
MOV EAX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [ESP + 0x24]
MOV ECX,dword ptr [EAX]
CMP dword ptr [EDX],ECX
JNZ 0x0001a9a8
LEA ESI,[ESI]
ADD EDX,0x4
ADD EAX,0x4
MOV ECX,dword ptr [EDX]
CMP dword ptr [EAX],ECX
JZ 0x0001a758
MOV dword ptr [ESP + 0x10],EDX
MOV EDX,dword ptr [ESP + 0x10]
MOVZX ECX,byte ptr [EAX]
CMP byte ptr [EDX],CL
JNZ 0x0001a789
LEA ESI,[ESI]
NOP
ADD EDX,0x1
ADD EAX,0x1
MOVZX ECX,byte ptr [EDX]
CMP byte ptr [EAX],CL
JZ 0x0001a778
MOV dword ptr [ESP + 0x10],EDX
LEA ECX,[EBX + 0x688]
MOV dword ptr [ESP + 0x68],ECX
MOV ECX,dword ptr [ECX]
LEA EDX,[ECX + -0x4]
MOV dword ptr [ESP + 0x1c],EDX
CMP EDX,0x1
JBE 0x00019a2f
MOV ECX,dword ptr [ESP + 0xa0]
MOV EDX,dword ptr [ESP + 0x14]
MOV EBP,dword ptr [ESP + 0x10]
MOVZX ECX,byte ptr [ECX + 0xa8]
SUB EDX,ECX
MOV ECX,dword ptr [ESP + 0xc]
ADD ECX,EDX
MOV EDX,ESI
CMP EAX,ECX
SETA CL
MOV EDI,ECX
MOV ECX,dword ptr [ESP + 0xa0]
MOVZX ECX,byte ptr [ECX + 0x158]
SUB EDX,ECX
MOV ECX,dword ptr [ESP + 0x24]
ADD ECX,EDX
MOV EDX,EDI
CMP EBP,ECX
SETA CL
CMP DL,CL
JZ 0x00019a2f
SUB EBP,0x1
SUB EAX,0x1
MOV dword ptr [ESP + 0x10],EBP
JMP 0x00019a2f
MOV dword ptr [ESP + 0x1c],ECX
MOV dword ptr [ESP + 0x30],EDX
JMP 0x0001a618
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x14],EAX
JMP 0x00019cce
MOVZX EAX,byte ptr [EDI + EAX*0x1]
MOV byte ptr [ESP + 0x10],AL
NOT EAX
MOV byte ptr [ECX],AL
JMP 0x0001a743
MOV EAX,dword ptr [ESP + 0xa0]
MOV EAX,dword ptr [EAX + 0x138]
CMP dword ptr [ESP + 0x2c],EAX
JNZ 0x00019b46
MOV ECX,dword ptr [ESP + 0x2c]
SUB ECX,EAX
LEA EAX,[EBX + 0x69c]
MOV dword ptr [ESP + 0x30],ECX
MOV dword ptr [ESP + 0x6c],EAX
MOV ECX,dword ptr [EAX]
MOV EAX,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x34],ECX
TEST EAX,EAX
JZ 0x0001a9e0
TEST ECX,ECX
MOV EAX,0x0
MOV EBP,0x20
MOV dword ptr [ESP + 0x10],0x0
CMOVLE EAX,ECX
MOV dword ptr [ESP + 0x14],EAX
JMP 0x00019ce8
LEA EDX,[EBX + 0x69c]
MOV ECX,dword ptr [EDX]
CMP ECX,0x1ffffffe
JG 0x00019aed
CMP dword ptr [ESP + 0x14],ECX
JBE 0x00019aed
MOV ESI,EDI
MOV EDX,0x1
MOV dword ptr [ESP + 0x28],0x0
SUB ESI,EAX
MOV dword ptr [ESP + 0x14],0x1
MOV EAX,ESI
SHR EAX,0x5
CMOVZ EAX,EDX
LEA ESI,[EAX + 0x5]
MOV EAX,dword ptr [ESP + 0x18]
SUB EAX,EDI
SHR EAX,0x5
CMOVZ EAX,EDX
ADD EAX,0x5
TEST ECX,ECX
JG 0x0001a98d
MOV EDX,dword ptr [ESP + 0x14]
ADD EDX,ESI
CMP ECX,EAX
CMOVLE EAX,ECX
ADD EAX,EDX
MOV dword ptr [ESP + 0x18],EAX
JMP 0x00019b13
MOV EDX,dword ptr [ESP + 0x14]
TEST EDX,EDX
JNZ 0x00019df3
JMP 0x00019e15
MOV ECX,0x9
MOV ESI,0x1
ADD ECX,0x1
MOV EAX,ESI
SHL EAX,CL
CMP EAX,EDX
JC 0x0001a932
MOVZX EDX,byte ptr [EBX + ECX*0x1 + 0xffff1180]
SUB EAX,EDX
MOV dword ptr [EBX + 0x394],EAX
CMP EAX,0x1ffffffe
JA 0x0001a9c0
LEA EAX,[EAX*0x4 + 0x4]
JMP 0x00019eca
MOV ESI,dword ptr [ESP + 0x1c]
CMP dword ptr [ESP + 0x24],ESI
JZ 0x00019c58
XOR EDX,EDX
CMP byte ptr [ESI + -0x1],0xa
SETNZ DL
ADD EBP,EDX
JMP 0x00019c58
MOV EAX,dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x1c],EDX
JMP 0x00019c41
ADD EDX,EDX
CMP ECX,EDX
JGE 0x0001a98d
MOV dword ptr [ESP + 0x14],EDX
SUB EDX,0x1
MOV dword ptr [ESP + 0x28],EDX
JMP 0x0001a8f1
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [ESP + 0xc]
JMP 0x0001a768
CALL 0x00023f50
MOV ESI,dword ptr [ESP + 0x20]
MOV ECX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x1c],ESI
JMP 0x00019c41
MOV dword ptr [ESP + 0x10],0x0
MOV EBP,0x20
JMP 0x00019ce8
MOV EAX,dword ptr [ESP + 0xa0]
MOV EAX,dword ptr [EAX + 0x138]
JMP 0x0001a84f
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbyte FUN_000198d0(int *param_1,byte param_2)\n\n{\n  byte *pbVar1;\n  undefined4 uVar2;\n  void *__s1;\n  ushort *puVar3;\n  char cVar4;\n  byte bVar5;\n  byte bVar6;\n  char cVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  ushort **ppuVar12;\n  __int32_t **pp_Var13;\n  int iVar14;\n  int *piVar15;\n  uint *puVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  undefined4 *puVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  uint uVar25;\n  byte *pbVar26;\n  uint *puVar27;\n  byte *pbVar28;\n  uint uVar29;\n  int iVar30;\n  bool bVar31;\n  bool bVar32;\n  bool bVar33;\n  byte *local_90;\n  byte *local_8c;\n  uint local_88;\n  uint *local_84;\n  byte *local_80;\n  byte *local_7c;\n  byte *local_78;\n  uint local_74;\n  byte *local_70;\n  uint local_6c;\n  int local_68;\n  uint local_64;\n  uint local_60;\n  int *local_5c;\n  \n  bVar5 = FUN_000197e0();\n  bVar5 = bVar5 | param_2;\n  if (*param_1 == param_1[0x2c]) {\n    param_1[0x46] = param_1[0x1a];\n    param_1[0x47] = param_1[0x1b];\n    param_1[0x48] = param_1[0x1c];\n  }\n  else {\n    bVar6 = FUN_000197e0();\n    bVar5 = bVar5 | bVar6;\n  }\n  if (bVar5 != 0) {\n    return bVar5;\n  }\n  FUN_00019690();\n  FUN_00019560();\n  if (*param_1 == param_1[0x2c]) {\n    local_78 = (byte *)param_1[0x1a];\n    param_1[0x46] = (int)local_78;\n    param_1[0x47] = param_1[0x1b];\n    uVar20 = param_1[0x1c];\n    param_1[0x48] = uVar20;\n    *(char *)(param_1 + 0x56) = (char)param_1[0x2a];\n    local_88 = uVar20;\nLAB_000199ff:\n    pbVar24 = local_78 + uVar20;\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    local_90 = local_78;\n    local_84 = (uint *)(local_78 + local_88);\n    local_8c = pbVar24;\n    iVar18 = DAT_0004d698;\n    local_7c = pbVar24;\n  }\n  else {\n    FUN_00019690();\n    FUN_00019560();\n    local_88 = param_1[0x1c];\n    local_90 = (byte *)param_1[0x1a];\n    local_78 = (byte *)param_1[0x46];\n    uVar20 = param_1[0x48];\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (uint *)(local_90 + local_88);\n    local_7c = local_78 + uVar20;\n    if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }\n    pbVar24 = local_90;\n    local_8c = local_78;\n    if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }\n    if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    iVar18 = DAT_0004d698;\n    if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }\n  }\n  for (; uVar8 = local_88, iVar30 = DAT_0004d698, pbVar24 != local_90; pbVar24 = pbVar24 + -1) {\n    while (pbVar24[-1] == 10) {\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }\n    local_8c = local_8c + -1;\n  }\nLAB_00019a73:\n  param_1[0x22] = (int)pbVar24;\n  param_1[0x4e] = (int)local_8c;\n  if ((local_80 < 2) ||\n     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])) {\n    pbVar28 = pbVar24 + (local_88 - uVar20);\n    if (local_88 < uVar20) {\n      pbVar28 = pbVar24;\n    }\n    if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }\n    else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }\n    puVar27 = puVar16;\n    if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }\n    else {\n      iVar30 = iVar30 + 1;\n    }\n    for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }\n    local_70 = local_80 + ((int)puVar27 - (int)puVar16);\n  }\n  bVar32 = DAT_0004d68c == '\0';\n  param_1[0x24] = (int)puVar27;\n  param_1[0x50] = (int)local_70;\n  if ((((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||\n     (local_88 <= DAT_0004d69c)) {\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar8 = uVar8 >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    local_84 = (uint *)(uVar8 + 5);\n  }\n  else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;\n    if (uVar20 == 0) {\n      uVar20 = 1;\n    }\n    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    uVar21 = 1;\n    if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }\n    uVar21 = uVar8 + 5;\n    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }\n    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);\n  }\n  puVar9 = (undefined4 *)FUN_00023c60((int)local_84 << 2);\n  pbVar24 = (byte *)param_1[0x22];\n  if (((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||\n     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)) {\n    if (local_90 == pbVar24) {\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }\n    uVar20 = (uint)local_84;\n    local_8c = (byte *)0;\n    pbVar28 = local_90;\n    do {\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    } while (pbVar28 != pbVar24);\n    local_6c = (int)local_70 - param_1[0x4e];\n    bVar32 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar20 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }\n  }\n  else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;\n    if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }\n  }\n  uVar8 = (uint)((int)local_7c - (int)local_70) / uVar20;\n  if (uVar8 == 0) {\n    uVar8 = 1;\n  }\n  if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }\n  uVar21 = uVar8 + 5;\n  if ((int)DAT_0004d69c < (int)(uVar8 + 5)) {\n    uVar21 = DAT_0004d69c;\n  }\n  uVar8 = 1;\n  if (local_6c / uVar20 != 0) {\n    uVar8 = local_6c / uVar20;\n  }\n  if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }\n  uVar21 = local_88 + 5 + uVar8 + uVar21;\n  bVar32 = (int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21;\n  if (bVar32) goto LAB_0001a9c0;\n  puVar10 = (undefined4 *)FUN_00023c60(uVar21 * 4);\n  if ((byte *)local_88 == local_8c) {\n    if (local_88 != 0) goto LAB_00019df3;\n  }\n  else if (0 < (int)local_88) {\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }\n  param_1[0x49] = (int)(puVar10 + local_88);\n  param_1[0x1d] = (int)(puVar9 + local_88);\n  param_1[0x4a] = -local_88;\n  param_1[0x1e] = -local_88;\n  param_1[0x21] = (int)local_84 - local_88;\n  uVar20 = ((int)local_84 - local_88) + 1 + (uVar21 - local_88);\n  param_1[0x4d] = uVar21 - local_88;\n  DAT_0004d388 = uVar20;\n  param_1[0x4f] = (int)local_8c;\n  param_1[0x23] = (int)local_8c;\n  if (uVar20 < 0x7ffffff) {\n    DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);\n    DAT_0004d38c = 1;\n    if ((uint)((int)DAT_0004d388 / 3) < 0x201) {\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }\n    else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }\n    iVar18 = FUN_0001d920(iVar18);\n    DAT_0004d398 = iVar18 + 4;\n    local_5c = param_1 + 0x1a;\n    do {\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    } while( true );\n  }\nLAB_0001a9c0:\n                    /* WARNING: Subroutine does not return */\n  FUN_00023f50();\ncode_r0x0001a1dc:\n  local_78 = (byte *)*puVar27;\n  goto joined_r0x0001a0d6;\n}\n\n" comment (function_definition "byte FUN_000198d0(int *param_1,byte param_2)\n\n{\n  byte *pbVar1;\n  undefined4 uVar2;\n  void *__s1;\n  ushort *puVar3;\n  char cVar4;\n  byte bVar5;\n  byte bVar6;\n  char cVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  ushort **ppuVar12;\n  __int32_t **pp_Var13;\n  int iVar14;\n  int *piVar15;\n  uint *puVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  undefined4 *puVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  uint uVar25;\n  byte *pbVar26;\n  uint *puVar27;\n  byte *pbVar28;\n  uint uVar29;\n  int iVar30;\n  bool bVar31;\n  bool bVar32;\n  bool bVar33;\n  byte *local_90;\n  byte *local_8c;\n  uint local_88;\n  uint *local_84;\n  byte *local_80;\n  byte *local_7c;\n  byte *local_78;\n  uint local_74;\n  byte *local_70;\n  uint local_6c;\n  int local_68;\n  uint local_64;\n  uint local_60;\n  int *local_5c;\n  \n  bVar5 = FUN_000197e0();\n  bVar5 = bVar5 | param_2;\n  if (*param_1 == param_1[0x2c]) {\n    param_1[0x46] = param_1[0x1a];\n    param_1[0x47] = param_1[0x1b];\n    param_1[0x48] = param_1[0x1c];\n  }\n  else {\n    bVar6 = FUN_000197e0();\n    bVar5 = bVar5 | bVar6;\n  }\n  if (bVar5 != 0) {\n    return bVar5;\n  }\n  FUN_00019690();\n  FUN_00019560();\n  if (*param_1 == param_1[0x2c]) {\n    local_78 = (byte *)param_1[0x1a];\n    param_1[0x46] = (int)local_78;\n    param_1[0x47] = param_1[0x1b];\n    uVar20 = param_1[0x1c];\n    param_1[0x48] = uVar20;\n    *(char *)(param_1 + 0x56) = (char)param_1[0x2a];\n    local_88 = uVar20;\nLAB_000199ff:\n    pbVar24 = local_78 + uVar20;\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    local_90 = local_78;\n    local_84 = (uint *)(local_78 + local_88);\n    local_8c = pbVar24;\n    iVar18 = DAT_0004d698;\n    local_7c = pbVar24;\n  }\n  else {\n    FUN_00019690();\n    FUN_00019560();\n    local_88 = param_1[0x1c];\n    local_90 = (byte *)param_1[0x1a];\n    local_78 = (byte *)param_1[0x46];\n    uVar20 = param_1[0x48];\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (uint *)(local_90 + local_88);\n    local_7c = local_78 + uVar20;\n    if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }\n    pbVar24 = local_90;\n    local_8c = local_78;\n    if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }\n    if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    iVar18 = DAT_0004d698;\n    if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }\n  }\n  for (; uVar8 = local_88, iVar30 = DAT_0004d698, pbVar24 != local_90; pbVar24 = pbVar24 + -1) {\n    while (pbVar24[-1] == 10) {\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }\n    local_8c = local_8c + -1;\n  }\nLAB_00019a73:\n  param_1[0x22] = (int)pbVar24;\n  param_1[0x4e] = (int)local_8c;\n  if ((local_80 < 2) ||\n     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])) {\n    pbVar28 = pbVar24 + (local_88 - uVar20);\n    if (local_88 < uVar20) {\n      pbVar28 = pbVar24;\n    }\n    if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }\n    else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }\n    puVar27 = puVar16;\n    if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }\n    else {\n      iVar30 = iVar30 + 1;\n    }\n    for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }\n    local_70 = local_80 + ((int)puVar27 - (int)puVar16);\n  }\n  bVar32 = DAT_0004d68c == '\0';\n  param_1[0x24] = (int)puVar27;\n  param_1[0x50] = (int)local_70;\n  if ((((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||\n     (local_88 <= DAT_0004d69c)) {\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar8 = uVar8 >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    local_84 = (uint *)(uVar8 + 5);\n  }\n  else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;\n    if (uVar20 == 0) {\n      uVar20 = 1;\n    }\n    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    uVar21 = 1;\n    if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }\n    uVar21 = uVar8 + 5;\n    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }\n    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);\n  }\n  puVar9 = (undefined4 *)FUN_00023c60((int)local_84 << 2);\n  pbVar24 = (byte *)param_1[0x22];\n  if (((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||\n     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)) {\n    if (local_90 == pbVar24) {\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }\n    uVar20 = (uint)local_84;\n    local_8c = (byte *)0;\n    pbVar28 = local_90;\n    do {\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    } while (pbVar28 != pbVar24);\n    local_6c = (int)local_70 - param_1[0x4e];\n    bVar32 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar20 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }\n  }\n  else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;\n    if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }\n  }\n  uVar8 = (uint)((int)local_7c - (int)local_70) / uVar20;\n  if (uVar8 == 0) {\n    uVar8 = 1;\n  }\n  if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }\n  uVar21 = uVar8 + 5;\n  if ((int)DAT_0004d69c < (int)(uVar8 + 5)) {\n    uVar21 = DAT_0004d69c;\n  }\n  uVar8 = 1;\n  if (local_6c / uVar20 != 0) {\n    uVar8 = local_6c / uVar20;\n  }\n  if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }\n  uVar21 = local_88 + 5 + uVar8 + uVar21;\n  bVar32 = (int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21;\n  if (bVar32) goto LAB_0001a9c0;\n  puVar10 = (undefined4 *)FUN_00023c60(uVar21 * 4);\n  if ((byte *)local_88 == local_8c) {\n    if (local_88 != 0) goto LAB_00019df3;\n  }\n  else if (0 < (int)local_88) {\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }\n  param_1[0x49] = (int)(puVar10 + local_88);\n  param_1[0x1d] = (int)(puVar9 + local_88);\n  param_1[0x4a] = -local_88;\n  param_1[0x1e] = -local_88;\n  param_1[0x21] = (int)local_84 - local_88;\n  uVar20 = ((int)local_84 - local_88) + 1 + (uVar21 - local_88);\n  param_1[0x4d] = uVar21 - local_88;\n  DAT_0004d388 = uVar20;\n  param_1[0x4f] = (int)local_8c;\n  param_1[0x23] = (int)local_8c;\n  if (uVar20 < 0x7ffffff) {\n    DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);\n    DAT_0004d38c = 1;\n    if ((uint)((int)DAT_0004d388 / 3) < 0x201) {\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }\n    else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }\n    iVar18 = FUN_0001d920(iVar18);\n    DAT_0004d398 = iVar18 + 4;\n    local_5c = param_1 + 0x1a;\n    do {\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    } while( true );\n  }\nLAB_0001a9c0:\n                    /* WARNING: Subroutine does not return */\n  FUN_00023f50();\ncode_r0x0001a1dc:\n  local_78 = (byte *)*puVar27;\n  goto joined_r0x0001a0d6;\n}" type_identifier (function_declarator "FUN_000198d0(int *param_1,byte param_2)" identifier (parameter_list "(int *param_1,byte param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte param_2" type_identifier identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  undefined4 uVar2;\n  void *__s1;\n  ushort *puVar3;\n  char cVar4;\n  byte bVar5;\n  byte bVar6;\n  char cVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  ushort **ppuVar12;\n  __int32_t **pp_Var13;\n  int iVar14;\n  int *piVar15;\n  uint *puVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  undefined4 *puVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  uint uVar25;\n  byte *pbVar26;\n  uint *puVar27;\n  byte *pbVar28;\n  uint uVar29;\n  int iVar30;\n  bool bVar31;\n  bool bVar32;\n  bool bVar33;\n  byte *local_90;\n  byte *local_8c;\n  uint local_88;\n  uint *local_84;\n  byte *local_80;\n  byte *local_7c;\n  byte *local_78;\n  uint local_74;\n  byte *local_70;\n  uint local_6c;\n  int local_68;\n  uint local_64;\n  uint local_60;\n  int *local_5c;\n  \n  bVar5 = FUN_000197e0();\n  bVar5 = bVar5 | param_2;\n  if (*param_1 == param_1[0x2c]) {\n    param_1[0x46] = param_1[0x1a];\n    param_1[0x47] = param_1[0x1b];\n    param_1[0x48] = param_1[0x1c];\n  }\n  else {\n    bVar6 = FUN_000197e0();\n    bVar5 = bVar5 | bVar6;\n  }\n  if (bVar5 != 0) {\n    return bVar5;\n  }\n  FUN_00019690();\n  FUN_00019560();\n  if (*param_1 == param_1[0x2c]) {\n    local_78 = (byte *)param_1[0x1a];\n    param_1[0x46] = (int)local_78;\n    param_1[0x47] = param_1[0x1b];\n    uVar20 = param_1[0x1c];\n    param_1[0x48] = uVar20;\n    *(char *)(param_1 + 0x56) = (char)param_1[0x2a];\n    local_88 = uVar20;\nLAB_000199ff:\n    pbVar24 = local_78 + uVar20;\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    local_90 = local_78;\n    local_84 = (uint *)(local_78 + local_88);\n    local_8c = pbVar24;\n    iVar18 = DAT_0004d698;\n    local_7c = pbVar24;\n  }\n  else {\n    FUN_00019690();\n    FUN_00019560();\n    local_88 = param_1[0x1c];\n    local_90 = (byte *)param_1[0x1a];\n    local_78 = (byte *)param_1[0x46];\n    uVar20 = param_1[0x48];\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (uint *)(local_90 + local_88);\n    local_7c = local_78 + uVar20;\n    if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }\n    pbVar24 = local_90;\n    local_8c = local_78;\n    if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }\n    if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    iVar18 = DAT_0004d698;\n    if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }\n  }\n  for (; uVar8 = local_88, iVar30 = DAT_0004d698, pbVar24 != local_90; pbVar24 = pbVar24 + -1) {\n    while (pbVar24[-1] == 10) {\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }\n    local_8c = local_8c + -1;\n  }\nLAB_00019a73:\n  param_1[0x22] = (int)pbVar24;\n  param_1[0x4e] = (int)local_8c;\n  if ((local_80 < 2) ||\n     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])) {\n    pbVar28 = pbVar24 + (local_88 - uVar20);\n    if (local_88 < uVar20) {\n      pbVar28 = pbVar24;\n    }\n    if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }\n    else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }\n    puVar27 = puVar16;\n    if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }\n    else {\n      iVar30 = iVar30 + 1;\n    }\n    for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }\n    local_70 = local_80 + ((int)puVar27 - (int)puVar16);\n  }\n  bVar32 = DAT_0004d68c == '\0';\n  param_1[0x24] = (int)puVar27;\n  param_1[0x50] = (int)local_70;\n  if ((((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||\n     (local_88 <= DAT_0004d69c)) {\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar8 = uVar8 >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    local_84 = (uint *)(uVar8 + 5);\n  }\n  else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;\n    if (uVar20 == 0) {\n      uVar20 = 1;\n    }\n    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    uVar21 = 1;\n    if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }\n    uVar21 = uVar8 + 5;\n    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }\n    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);\n  }\n  puVar9 = (undefined4 *)FUN_00023c60((int)local_84 << 2);\n  pbVar24 = (byte *)param_1[0x22];\n  if (((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||\n     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)) {\n    if (local_90 == pbVar24) {\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }\n    uVar20 = (uint)local_84;\n    local_8c = (byte *)0;\n    pbVar28 = local_90;\n    do {\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    } while (pbVar28 != pbVar24);\n    local_6c = (int)local_70 - param_1[0x4e];\n    bVar32 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar20 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }\n  }\n  else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;\n    if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }\n  }\n  uVar8 = (uint)((int)local_7c - (int)local_70) / uVar20;\n  if (uVar8 == 0) {\n    uVar8 = 1;\n  }\n  if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }\n  uVar21 = uVar8 + 5;\n  if ((int)DAT_0004d69c < (int)(uVar8 + 5)) {\n    uVar21 = DAT_0004d69c;\n  }\n  uVar8 = 1;\n  if (local_6c / uVar20 != 0) {\n    uVar8 = local_6c / uVar20;\n  }\n  if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }\n  uVar21 = local_88 + 5 + uVar8 + uVar21;\n  bVar32 = (int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21;\n  if (bVar32) goto LAB_0001a9c0;\n  puVar10 = (undefined4 *)FUN_00023c60(uVar21 * 4);\n  if ((byte *)local_88 == local_8c) {\n    if (local_88 != 0) goto LAB_00019df3;\n  }\n  else if (0 < (int)local_88) {\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }\n  param_1[0x49] = (int)(puVar10 + local_88);\n  param_1[0x1d] = (int)(puVar9 + local_88);\n  param_1[0x4a] = -local_88;\n  param_1[0x1e] = -local_88;\n  param_1[0x21] = (int)local_84 - local_88;\n  uVar20 = ((int)local_84 - local_88) + 1 + (uVar21 - local_88);\n  param_1[0x4d] = uVar21 - local_88;\n  DAT_0004d388 = uVar20;\n  param_1[0x4f] = (int)local_8c;\n  param_1[0x23] = (int)local_8c;\n  if (uVar20 < 0x7ffffff) {\n    DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);\n    DAT_0004d38c = 1;\n    if ((uint)((int)DAT_0004d388 / 3) < 0x201) {\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }\n    else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }\n    iVar18 = FUN_0001d920(iVar18);\n    DAT_0004d398 = iVar18 + 4;\n    local_5c = param_1 + 0x1a;\n    do {\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    } while( true );\n  }\nLAB_0001a9c0:\n                    /* WARNING: Subroutine does not return */\n  FUN_00023f50();\ncode_r0x0001a1dc:\n  local_78 = (byte *)*puVar27;\n  goto joined_r0x0001a0d6;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "void *__s1;" primitive_type (pointer_declarator "*__s1" * identifier) ;) (declaration "ushort *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "ushort **ppuVar12;" type_identifier (pointer_declarator "**ppuVar12" * (pointer_declarator "*ppuVar12" * identifier)) ;) (declaration "__int32_t **pp_Var13;" type_identifier (pointer_declarator "**pp_Var13" * (pointer_declarator "*pp_Var13" * identifier)) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "uint *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "bool bVar31;" primitive_type identifier ;) (declaration "bool bVar32;" primitive_type identifier ;) (declaration "bool bVar33;" primitive_type identifier ;) (declaration "byte *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "byte *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "uint local_88;" type_identifier identifier ;) (declaration "uint *local_84;" type_identifier (pointer_declarator "*local_84" * identifier) ;) (declaration "byte *local_80;" type_identifier (pointer_declarator "*local_80" * identifier) ;) (declaration "byte *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "byte *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "byte *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "uint local_60;" type_identifier identifier ;) (declaration "int *local_5c;" primitive_type (pointer_declarator "*local_5c" * identifier) ;) (expression_statement "bVar5 = FUN_000197e0();" (assignment_expression "bVar5 = FUN_000197e0()" identifier = (call_expression "FUN_000197e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar5 = bVar5 | param_2;" (assignment_expression "bVar5 = bVar5 | param_2" identifier = (binary_expression "bVar5 | param_2" identifier | identifier)) ;) (if_statement "if (*param_1 == param_1[0x2c]) {\n    param_1[0x46] = param_1[0x1a];\n    param_1[0x47] = param_1[0x1b];\n    param_1[0x48] = param_1[0x1c];\n  }\n  else {\n    bVar6 = FUN_000197e0();\n    bVar5 = bVar5 | bVar6;\n  }" if (parenthesized_expression "(*param_1 == param_1[0x2c])" ( (binary_expression "*param_1 == param_1[0x2c]" (pointer_expression "*param_1" * identifier) == (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) )) (compound_statement "{\n    param_1[0x46] = param_1[0x1a];\n    param_1[0x47] = param_1[0x1b];\n    param_1[0x48] = param_1[0x1c];\n  }" { (expression_statement "param_1[0x46] = param_1[0x1a];" (assignment_expression "param_1[0x46] = param_1[0x1a]" (subscript_expression "param_1[0x46]" identifier [ number_literal ]) = (subscript_expression "param_1[0x1a]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x47] = param_1[0x1b];" (assignment_expression "param_1[0x47] = param_1[0x1b]" (subscript_expression "param_1[0x47]" identifier [ number_literal ]) = (subscript_expression "param_1[0x1b]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x48] = param_1[0x1c];" (assignment_expression "param_1[0x48] = param_1[0x1c]" (subscript_expression "param_1[0x48]" identifier [ number_literal ]) = (subscript_expression "param_1[0x1c]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    bVar6 = FUN_000197e0();\n    bVar5 = bVar5 | bVar6;\n  }" else (compound_statement "{\n    bVar6 = FUN_000197e0();\n    bVar5 = bVar5 | bVar6;\n  }" { (expression_statement "bVar6 = FUN_000197e0();" (assignment_expression "bVar6 = FUN_000197e0()" identifier = (call_expression "FUN_000197e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar5 = bVar5 | bVar6;" (assignment_expression "bVar5 = bVar5 | bVar6" identifier = (binary_expression "bVar5 | bVar6" identifier | identifier)) ;) }))) (if_statement "if (bVar5 != 0) {\n    return bVar5;\n  }" if (parenthesized_expression "(bVar5 != 0)" ( (binary_expression "bVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    return bVar5;\n  }" { (return_statement "return bVar5;" return identifier ;) })) (expression_statement "FUN_00019690();" (call_expression "FUN_00019690()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019560();" (call_expression "FUN_00019560()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*param_1 == param_1[0x2c]) {\n    local_78 = (byte *)param_1[0x1a];\n    param_1[0x46] = (int)local_78;\n    param_1[0x47] = param_1[0x1b];\n    uVar20 = param_1[0x1c];\n    param_1[0x48] = uVar20;\n    *(char *)(param_1 + 0x56) = (char)param_1[0x2a];\n    local_88 = uVar20;\nLAB_000199ff:\n    pbVar24 = local_78 + uVar20;\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    local_90 = local_78;\n    local_84 = (uint *)(local_78 + local_88);\n    local_8c = pbVar24;\n    iVar18 = DAT_0004d698;\n    local_7c = pbVar24;\n  }\n  else {\n    FUN_00019690();\n    FUN_00019560();\n    local_88 = param_1[0x1c];\n    local_90 = (byte *)param_1[0x1a];\n    local_78 = (byte *)param_1[0x46];\n    uVar20 = param_1[0x48];\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (uint *)(local_90 + local_88);\n    local_7c = local_78 + uVar20;\n    if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }\n    pbVar24 = local_90;\n    local_8c = local_78;\n    if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }\n    if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    iVar18 = DAT_0004d698;\n    if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }\n  }" if (parenthesized_expression "(*param_1 == param_1[0x2c])" ( (binary_expression "*param_1 == param_1[0x2c]" (pointer_expression "*param_1" * identifier) == (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) )) (compound_statement "{\n    local_78 = (byte *)param_1[0x1a];\n    param_1[0x46] = (int)local_78;\n    param_1[0x47] = param_1[0x1b];\n    uVar20 = param_1[0x1c];\n    param_1[0x48] = uVar20;\n    *(char *)(param_1 + 0x56) = (char)param_1[0x2a];\n    local_88 = uVar20;\nLAB_000199ff:\n    pbVar24 = local_78 + uVar20;\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    local_90 = local_78;\n    local_84 = (uint *)(local_78 + local_88);\n    local_8c = pbVar24;\n    iVar18 = DAT_0004d698;\n    local_7c = pbVar24;\n  }" { (expression_statement "local_78 = (byte *)param_1[0x1a];" (assignment_expression "local_78 = (byte *)param_1[0x1a]" identifier = (cast_expression "(byte *)param_1[0x1a]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1a]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0x46] = (int)local_78;" (assignment_expression "param_1[0x46] = (int)local_78" (subscript_expression "param_1[0x46]" identifier [ number_literal ]) = (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0x47] = param_1[0x1b];" (assignment_expression "param_1[0x47] = param_1[0x1b]" (subscript_expression "param_1[0x47]" identifier [ number_literal ]) = (subscript_expression "param_1[0x1b]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = param_1[0x1c];" (assignment_expression "uVar20 = param_1[0x1c]" identifier = (subscript_expression "param_1[0x1c]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x48] = uVar20;" (assignment_expression "param_1[0x48] = uVar20" (subscript_expression "param_1[0x48]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x56) = (char)param_1[0x2a];" (assignment_expression "*(char *)(param_1 + 0x56) = (char)param_1[0x2a]" (pointer_expression "*(char *)(param_1 + 0x56)" * (cast_expression "(char *)(param_1 + 0x56)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x56)" ( (binary_expression "param_1 + 0x56" identifier + number_literal) )))) = (cast_expression "(char)param_1[0x2a]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[0x2a]" identifier [ number_literal ]))) ;) (expression_statement "local_88 = uVar20;" (assignment_expression "local_88 = uVar20" identifier = identifier) ;) (labeled_statement "LAB_000199ff:\n    pbVar24 = local_78 + uVar20;" statement_identifier : (expression_statement "pbVar24 = local_78 + uVar20;" (assignment_expression "pbVar24 = local_78 + uVar20" identifier = (binary_expression "local_78 + uVar20" identifier + identifier)) ;)) (expression_statement "local_80 = (byte *)(DAT_0004d688 - 4);" (assignment_expression "local_80 = (byte *)(DAT_0004d688 - 4)" identifier = (cast_expression "(byte *)(DAT_0004d688 - 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0004d688 - 4)" ( (binary_expression "DAT_0004d688 - 4" identifier - number_literal) )))) ;) (expression_statement "local_90 = local_78;" (assignment_expression "local_90 = local_78" identifier = identifier) ;) (expression_statement "local_84 = (uint *)(local_78 + local_88);" (assignment_expression "local_84 = (uint *)(local_78 + local_88)" identifier = (cast_expression "(uint *)(local_78 + local_88)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_78 + local_88)" ( (binary_expression "local_78 + local_88" identifier + identifier) )))) ;) (expression_statement "local_8c = pbVar24;" (assignment_expression "local_8c = pbVar24" identifier = identifier) ;) (expression_statement "iVar18 = DAT_0004d698;" (assignment_expression "iVar18 = DAT_0004d698" identifier = identifier) ;) (expression_statement "local_7c = pbVar24;" (assignment_expression "local_7c = pbVar24" identifier = identifier) ;) }) (else_clause "else {\n    FUN_00019690();\n    FUN_00019560();\n    local_88 = param_1[0x1c];\n    local_90 = (byte *)param_1[0x1a];\n    local_78 = (byte *)param_1[0x46];\n    uVar20 = param_1[0x48];\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (uint *)(local_90 + local_88);\n    local_7c = local_78 + uVar20;\n    if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }\n    pbVar24 = local_90;\n    local_8c = local_78;\n    if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }\n    if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    iVar18 = DAT_0004d698;\n    if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }\n  }" else (compound_statement "{\n    FUN_00019690();\n    FUN_00019560();\n    local_88 = param_1[0x1c];\n    local_90 = (byte *)param_1[0x1a];\n    local_78 = (byte *)param_1[0x46];\n    uVar20 = param_1[0x48];\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (uint *)(local_90 + local_88);\n    local_7c = local_78 + uVar20;\n    if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }\n    pbVar24 = local_90;\n    local_8c = local_78;\n    if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }\n    if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    iVar18 = DAT_0004d698;\n    if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }\n  }" { (expression_statement "FUN_00019690();" (call_expression "FUN_00019690()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019560();" (call_expression "FUN_00019560()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_88 = param_1[0x1c];" (assignment_expression "local_88 = param_1[0x1c]" identifier = (subscript_expression "param_1[0x1c]" identifier [ number_literal ])) ;) (expression_statement "local_90 = (byte *)param_1[0x1a];" (assignment_expression "local_90 = (byte *)param_1[0x1a]" identifier = (cast_expression "(byte *)param_1[0x1a]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1a]" identifier [ number_literal ]))) ;) (expression_statement "local_78 = (byte *)param_1[0x46];" (assignment_expression "local_78 = (byte *)param_1[0x46]" identifier = (cast_expression "(byte *)param_1[0x46]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x46]" identifier [ number_literal ]))) ;) (expression_statement "uVar20 = param_1[0x48];" (assignment_expression "uVar20 = param_1[0x48]" identifier = (subscript_expression "param_1[0x48]" identifier [ number_literal ])) ;) (if_statement "if (local_90 == local_78) goto LAB_000199ff;" if (parenthesized_expression "(local_90 == local_78)" ( (binary_expression "local_90 == local_78" identifier == identifier) )) (goto_statement "goto LAB_000199ff;" goto statement_identifier ;)) (expression_statement "local_84 = (uint *)(local_90 + local_88);" (assignment_expression "local_84 = (uint *)(local_90 + local_88)" identifier = (cast_expression "(uint *)(local_90 + local_88)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + local_88)" ( (binary_expression "local_90 + local_88" identifier + identifier) )))) ;) (expression_statement "local_7c = local_78 + uVar20;" (assignment_expression "local_7c = local_78 + uVar20" identifier = (binary_expression "local_78 + uVar20" identifier + identifier)) ;) (if_statement "if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }" if (parenthesized_expression "(local_88 < uVar20)" ( (binary_expression "local_88 < uVar20" identifier < identifier) )) (compound_statement "{\n      *(byte *)local_84 = ~local_78[local_88];\n    }" { (expression_statement "*(byte *)local_84 = ~local_78[local_88];" (assignment_expression "*(byte *)local_84 = ~local_78[local_88]" (pointer_expression "*(byte *)local_84" * (cast_expression "(byte *)local_84" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (unary_expression "~local_78[local_88]" ~ (subscript_expression "local_78[local_88]" identifier [ identifier ]))) ;) }) (else_clause "else {\n      *local_7c = ~local_90[uVar20];\n    }" else (compound_statement "{\n      *local_7c = ~local_90[uVar20];\n    }" { (expression_statement "*local_7c = ~local_90[uVar20];" (assignment_expression "*local_7c = ~local_90[uVar20]" (pointer_expression "*local_7c" * identifier) = (unary_expression "~local_90[uVar20]" ~ (subscript_expression "local_90[uVar20]" identifier [ identifier ]))) ;) }))) (expression_statement "pbVar24 = local_90;" (assignment_expression "pbVar24 = local_90" identifier = identifier) ;) (expression_statement "local_8c = local_78;" (assignment_expression "local_8c = local_78" identifier = identifier) ;) (if_statement "if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }" if (parenthesized_expression "(*(int *)local_78 == *(int *)local_90)" ( (binary_expression "*(int *)local_78 == *(int *)local_90" (pointer_expression "*(int *)local_78" * (cast_expression "(int *)local_78" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*(int *)local_90" * (cast_expression "(int *)local_90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }" { (do_statement "do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);" do (compound_statement "{\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      }" { (expression_statement "local_8c = local_8c + 4;" (assignment_expression "local_8c = local_8c + 4" identifier = (binary_expression "local_8c + 4" identifier + number_literal)) ;) (expression_statement "pbVar24 = pbVar24 + 4;" (assignment_expression "pbVar24 = pbVar24 + 4" identifier = (binary_expression "pbVar24 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int *)pbVar24 == *(int *)local_8c)" ( (binary_expression "*(int *)pbVar24 == *(int *)local_8c" (pointer_expression "*(int *)pbVar24" * (cast_expression "(int *)pbVar24" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*(int *)local_8c" * (cast_expression "(int *)local_8c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) })) (if_statement "if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }" if (parenthesized_expression "(*local_8c == *pbVar24)" ( (binary_expression "*local_8c == *pbVar24" (pointer_expression "*local_8c" * identifier) == (pointer_expression "*pbVar24" * identifier)) )) (compound_statement "{\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }" { (do_statement "do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);" do (compound_statement "{\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      }" { (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" identifier = (binary_expression "local_8c + 1" identifier + number_literal)) ;) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pbVar24 == *local_8c)" ( (binary_expression "*pbVar24 == *local_8c" (pointer_expression "*pbVar24" * identifier) == (pointer_expression "*local_8c" * identifier)) )) ;) })) (expression_statement "local_80 = (byte *)(DAT_0004d688 - 4);" (assignment_expression "local_80 = (byte *)(DAT_0004d688 - 4)" identifier = (cast_expression "(byte *)(DAT_0004d688 - 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0004d688 - 4)" ( (binary_expression "DAT_0004d688 - 4" identifier - number_literal) )))) ;) (expression_statement "iVar18 = DAT_0004d698;" (assignment_expression "iVar18 = DAT_0004d698" identifier = identifier) ;) (if_statement "if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }" if (parenthesized_expression "((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c))" ( (binary_expression "(1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)" (parenthesized_expression "(1 < local_80)" ( (binary_expression "1 < local_80" number_literal < identifier) )) && (parenthesized_expression "(local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)" ( (binary_expression "local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c" (binary_expression "local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24" (binary_expression "local_90 + (local_88 - *(byte *)(param_1 + 0x2a))" identifier + (parenthesized_expression "(local_88 - *(byte *)(param_1 + 0x2a))" ( (binary_expression "local_88 - *(byte *)(param_1 + 0x2a)" identifier - (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) ))))) ))) < identifier) != (binary_expression "local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c" (binary_expression "local_78 + (uVar20 - *(byte *)(param_1 + 0x56))" identifier + (parenthesized_expression "(uVar20 - *(byte *)(param_1 + 0x56))" ( (binary_expression "uVar20 - *(byte *)(param_1 + 0x56)" identifier - (pointer_expression "*(byte *)(param_1 + 0x56)" * (cast_expression "(byte *)(param_1 + 0x56)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x56)" ( (binary_expression "param_1 + 0x56" identifier + number_literal) ))))) ))) < identifier)) ))) )) (compound_statement "{\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }" { (expression_statement "local_8c = local_8c + -1;" (assignment_expression "local_8c = local_8c + -1" identifier = (binary_expression "local_8c + -1" identifier + number_literal)) ;) (expression_statement "pbVar24 = pbVar24 + -1;" (assignment_expression "pbVar24 = pbVar24 + -1" identifier = (binary_expression "pbVar24 + -1" identifier + number_literal)) ;) })) }))) (for_statement "for (; uVar8 = local_88, iVar30 = DAT_0004d698, pbVar24 != local_90; pbVar24 = pbVar24 + -1) {\n    while (pbVar24[-1] == 10) {\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }\n    local_8c = local_8c + -1;\n  }" for ( ; (comma_expression "uVar8 = local_88, iVar30 = DAT_0004d698, pbVar24 != local_90" (assignment_expression "uVar8 = local_88" identifier = identifier) , (comma_expression "iVar30 = DAT_0004d698, pbVar24 != local_90" (assignment_expression "iVar30 = DAT_0004d698" identifier = identifier) , (binary_expression "pbVar24 != local_90" identifier != identifier))) ; (assignment_expression "pbVar24 = pbVar24 + -1" identifier = (binary_expression "pbVar24 + -1" identifier + number_literal)) ) (compound_statement "{\n    while (pbVar24[-1] == 10) {\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }\n    local_8c = local_8c + -1;\n  }" { (while_statement "while (pbVar24[-1] == 10) {\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }" while (parenthesized_expression "(pbVar24[-1] == 10)" ( (binary_expression "pbVar24[-1] == 10" (subscript_expression "pbVar24[-1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }" { (if_statement "if (iVar18 == 0) goto LAB_00019a73;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019a73;" goto statement_identifier ;)) (expression_statement "pbVar24 = pbVar24 + -1;" (assignment_expression "pbVar24 = pbVar24 + -1" identifier = (binary_expression "pbVar24 + -1" identifier + number_literal)) ;) (expression_statement "local_8c = local_8c + -1;" (assignment_expression "local_8c = local_8c + -1" identifier = (binary_expression "local_8c + -1" identifier + number_literal)) ;) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) (if_statement "if (pbVar24 == local_90) goto LAB_00019a73;" if (parenthesized_expression "(pbVar24 == local_90)" ( (binary_expression "pbVar24 == local_90" identifier == identifier) )) (goto_statement "goto LAB_00019a73;" goto statement_identifier ;)) })) (expression_statement "local_8c = local_8c + -1;" (assignment_expression "local_8c = local_8c + -1" identifier = (binary_expression "local_8c + -1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00019a73:\n  param_1[0x22] = (int)pbVar24;" statement_identifier : (expression_statement "param_1[0x22] = (int)pbVar24;" (assignment_expression "param_1[0x22] = (int)pbVar24" (subscript_expression "param_1[0x22]" identifier [ number_literal ]) = (cast_expression "(int)pbVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "param_1[0x4e] = (int)local_8c;" (assignment_expression "param_1[0x4e] = (int)local_8c" (subscript_expression "param_1[0x4e]" identifier [ number_literal ]) = (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((local_80 < 2) ||\n     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])) {\n    pbVar28 = pbVar24 + (local_88 - uVar20);\n    if (local_88 < uVar20) {\n      pbVar28 = pbVar24;\n    }\n    if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }\n    else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }\n    puVar27 = puVar16;\n    if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }\n    else {\n      iVar30 = iVar30 + 1;\n    }\n    for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }\n    local_70 = local_80 + ((int)puVar27 - (int)puVar16);\n  }" if (parenthesized_expression "((local_80 < 2) ||\n     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56]))" ( (binary_expression "(local_80 < 2) ||\n     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])" (parenthesized_expression "(local_80 < 2)" ( (binary_expression "local_80 < 2" identifier < number_literal) )) || (parenthesized_expression "(local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])" ( (comma_expression "local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56]" (assignment_expression "local_70 = local_7c" identifier = identifier) , (comma_expression "puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56]" (assignment_expression "puVar27 = local_84" identifier = identifier) , (binary_expression "(char)param_1[0x2a] == (char)param_1[0x56]" (cast_expression "(char)param_1[0x2a]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[0x2a]" identifier [ number_literal ])) == (cast_expression "(char)param_1[0x56]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[0x56]" identifier [ number_literal ]))))) ))) )) (compound_statement "{\n    pbVar28 = pbVar24 + (local_88 - uVar20);\n    if (local_88 < uVar20) {\n      pbVar28 = pbVar24;\n    }\n    if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }\n    else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }\n    puVar27 = puVar16;\n    if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }\n    else {\n      iVar30 = iVar30 + 1;\n    }\n    for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }\n    local_70 = local_80 + ((int)puVar27 - (int)puVar16);\n  }" { (expression_statement "pbVar28 = pbVar24 + (local_88 - uVar20);" (assignment_expression "pbVar28 = pbVar24 + (local_88 - uVar20)" identifier = (binary_expression "pbVar24 + (local_88 - uVar20)" identifier + (parenthesized_expression "(local_88 - uVar20)" ( (binary_expression "local_88 - uVar20" identifier - identifier) )))) ;) (if_statement "if (local_88 < uVar20) {\n      pbVar28 = pbVar24;\n    }" if (parenthesized_expression "(local_88 < uVar20)" ( (binary_expression "local_88 < uVar20" identifier < identifier) )) (compound_statement "{\n      pbVar28 = pbVar24;\n    }" { (expression_statement "pbVar28 = pbVar24;" (assignment_expression "pbVar28 = pbVar24" identifier = identifier) ;) })) (if_statement "if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }\n    else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }" if (parenthesized_expression "(((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1)))" ( (binary_expression "((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))" (parenthesized_expression "((uint *)pbVar28 == local_84)" ( (binary_expression "(uint *)pbVar28 == local_84" (cast_expression "(uint *)pbVar28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) || (parenthesized_expression "(local_7c[-1] != *(byte *)((int)local_84 + -1))" ( (binary_expression "local_7c[-1] != *(byte *)((int)local_84 + -1)" (subscript_expression "local_7c[-1]" identifier [ number_literal ]) != (pointer_expression "*(byte *)((int)local_84 + -1)" * (cast_expression "(byte *)((int)local_84 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_84 + -1)" ( (binary_expression "(int)local_84 + -1" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) )) (compound_statement "{\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }" { (expression_statement "local_80 = local_7c;" (assignment_expression "local_80 = local_7c" identifier = identifier) ;) (expression_statement "puVar16 = local_84;" (assignment_expression "puVar16 = local_84" identifier = identifier) ;) }) (else_clause "else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }" else (compound_statement "{\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }" { (expression_statement "puVar27 = local_84;" (assignment_expression "puVar27 = local_84" identifier = identifier) ;) (expression_statement "pbVar11 = local_7c;" (assignment_expression "pbVar11 = local_7c" identifier = identifier) ;) (do_statement "do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);" do (compound_statement "{\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      }" { (expression_statement "pbVar26 = pbVar11 + -1;" (assignment_expression "pbVar26 = pbVar11 + -1" identifier = (binary_expression "pbVar11 + -1" identifier + number_literal)) ;) (expression_statement "puVar16 = (uint *)((int)puVar27 + -1);" (assignment_expression "puVar16 = (uint *)((int)puVar27 + -1)" identifier = (cast_expression "(uint *)((int)puVar27 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar27 + -1)" ( (binary_expression "(int)puVar27 + -1" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_80 = local_7c + ((int)pbVar28 - (int)local_84);" (assignment_expression "local_80 = local_7c + ((int)pbVar28 - (int)local_84)" identifier = (binary_expression "local_7c + ((int)pbVar28 - (int)local_84)" identifier + (parenthesized_expression "((int)pbVar28 - (int)local_84)" ( (binary_expression "(int)pbVar28 - (int)local_84" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;" if (parenthesized_expression "(pbVar26 == local_7c + ((int)pbVar28 - (int)local_84))" ( (binary_expression "pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)" identifier == (binary_expression "local_7c + ((int)pbVar28 - (int)local_84)" identifier + (parenthesized_expression "((int)pbVar28 - (int)local_84)" ( (binary_expression "(int)pbVar28 - (int)local_84" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (break_statement "break;" break ;)) (expression_statement "pbVar23 = pbVar11 + -2;" (assignment_expression "pbVar23 = pbVar11 + -2" identifier = (binary_expression "pbVar11 + -2" identifier + number_literal)) ;) (expression_statement "pbVar1 = (byte *)((int)puVar27 + -2);" (assignment_expression "pbVar1 = (byte *)((int)puVar27 + -2)" identifier = (cast_expression "(byte *)((int)puVar27 + -2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar27 + -2)" ( (binary_expression "(int)puVar27 + -2" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar27 = puVar16;" (assignment_expression "puVar27 = puVar16" identifier = identifier) ;) (expression_statement "local_80 = pbVar26;" (assignment_expression "local_80 = pbVar26" identifier = identifier) ;) (expression_statement "pbVar11 = pbVar26;" (assignment_expression "pbVar11 = pbVar26" identifier = identifier) ;) }) while (parenthesized_expression "(*pbVar1 == *pbVar23)" ( (binary_expression "*pbVar1 == *pbVar23" (pointer_expression "*pbVar1" * identifier) == (pointer_expression "*pbVar23" * identifier)) )) ;) }))) (expression_statement "puVar27 = puVar16;" (assignment_expression "puVar27 = puVar16" identifier = identifier) ;) (if_statement "if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }\n    else {\n      iVar30 = iVar30 + 1;\n    }" if (parenthesized_expression "((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10))" ( (binary_expression "(puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)" (parenthesized_expression "(puVar16 == (uint *)local_90)" ( (binary_expression "puVar16 == (uint *)local_90" identifier == (cast_expression "(uint *)local_90" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) || (parenthesized_expression "(*(byte *)((int)puVar16 + -1) == 10)" ( (binary_expression "*(byte *)((int)puVar16 + -1) == 10" (pointer_expression "*(byte *)((int)puVar16 + -1)" * (cast_expression "(byte *)((int)puVar16 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 + -1)" ( (binary_expression "(int)puVar16 + -1" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }" { (if_statement "if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }" if (parenthesized_expression "(local_78 != local_80)" ( (binary_expression "local_78 != local_80" identifier != identifier) )) (compound_statement "{\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }" { (expression_statement "iVar30 = iVar30 + (uint)(local_80[-1] != 10);" (assignment_expression "iVar30 = iVar30 + (uint)(local_80[-1] != 10)" identifier = (binary_expression "iVar30 + (uint)(local_80[-1] != 10)" identifier + (call_expression "(uint)(local_80[-1] != 10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_80[-1] != 10)" ( (binary_expression "local_80[-1] != 10" (subscript_expression "local_80[-1]" identifier [ number_literal ]) != number_literal) ))))) ;) })) }) (else_clause "else {\n      iVar30 = iVar30 + 1;\n    }" else (compound_statement "{\n      iVar30 = iVar30 + 1;\n    }" { (expression_statement "iVar30 = iVar30 + 1;" (assignment_expression "iVar30 = iVar30 + 1" identifier = (binary_expression "iVar30 + 1" identifier + number_literal)) ;) }))) (for_statement "for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }" for ( ; (parenthesized_expression "(puVar27 != local_84 && (iVar30 != 0))" ( (binary_expression "puVar27 != local_84 && (iVar30 != 0)" (binary_expression "puVar27 != local_84" identifier != identifier) && (parenthesized_expression "(iVar30 != 0)" ( (binary_expression "iVar30 != 0" identifier != number_literal) ))) )) ; (assignment_expression "iVar30 = iVar30 + -1" identifier = (binary_expression "iVar30 + -1" identifier + number_literal)) ) (compound_statement "{\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }" { (do_statement "do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);" do (compound_statement "{\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      }" { (expression_statement "pbVar28 = (byte *)((int)puVar27 + 1);" (assignment_expression "pbVar28 = (byte *)((int)puVar27 + 1)" identifier = (cast_expression "(byte *)((int)puVar27 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar27 + 1)" ( (binary_expression "(int)puVar27 + 1" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar5 = *(byte *)puVar27;" (assignment_expression "bVar5 = *(byte *)puVar27" identifier = (pointer_expression "*(byte *)puVar27" * (cast_expression "(byte *)puVar27" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar27 = (uint *)pbVar28;" (assignment_expression "puVar27 = (uint *)pbVar28" identifier = (cast_expression "(uint *)pbVar28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(bVar5 != 10)" ( (binary_expression "bVar5 != 10" identifier != number_literal) )) ;) })) (expression_statement "local_70 = local_80 + ((int)puVar27 - (int)puVar16);" (assignment_expression "local_70 = local_80 + ((int)puVar27 - (int)puVar16)" identifier = (binary_expression "local_80 + ((int)puVar27 - (int)puVar16)" identifier + (parenthesized_expression "((int)puVar27 - (int)puVar16)" ( (binary_expression "(int)puVar27 - (int)puVar16" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "bVar32 = DAT_0004d68c == '\0';" (assignment_expression "bVar32 = DAT_0004d68c == '\0'" identifier = (binary_expression "DAT_0004d68c == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "param_1[0x24] = (int)puVar27;" (assignment_expression "param_1[0x24] = (int)puVar27" (subscript_expression "param_1[0x24]" identifier [ number_literal ]) = (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0x50] = (int)local_70;" (assignment_expression "param_1[0x50] = (int)local_70" (subscript_expression "param_1[0x50]" identifier [ number_literal ]) = (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||\n     (local_88 <= DAT_0004d69c)) {\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar8 = uVar8 >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    local_84 = (uint *)(uVar8 + 5);\n  }\n  else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;\n    if (uVar20 == 0) {\n      uVar20 = 1;\n    }\n    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    uVar21 = 1;\n    if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }\n    uVar21 = uVar8 + 5;\n    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }\n    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);\n  }" if (parenthesized_expression "((((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||\n     (local_88 <= DAT_0004d69c))" ( (binary_expression "(((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||\n     (local_88 <= DAT_0004d69c)" (parenthesized_expression "(((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c))" ( (binary_expression "((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)" (parenthesized_expression "((bVar32) || (DAT_0004d670 != 0))" ( (binary_expression "(bVar32) || (DAT_0004d670 != 0)" (parenthesized_expression "(bVar32)" ( identifier )) || (parenthesized_expression "(DAT_0004d670 != 0)" ( (binary_expression "DAT_0004d670 != 0" identifier != number_literal) ))) )) || (parenthesized_expression "(0x1ffffffe < (int)DAT_0004d69c)" ( (binary_expression "0x1ffffffe < (int)DAT_0004d69c" number_literal < (cast_expression "(int)DAT_0004d69c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) || (parenthesized_expression "(local_88 <= DAT_0004d69c)" ( (binary_expression "local_88 <= DAT_0004d69c" identifier <= identifier) ))) )) (compound_statement "{\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar8 = uVar8 >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    local_84 = (uint *)(uVar8 + 5);\n  }" { (expression_statement "local_74 = 0xffffffff;" (assignment_expression "local_74 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = uVar8 >> 5;" (assignment_expression "uVar8 = uVar8 >> 5" identifier = (binary_expression "uVar8 >> 5" identifier >> number_literal)) ;) (if_statement "if (uVar8 == 0) {\n      uVar8 = 1;\n    }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar8 = 1;\n    }" { (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) })) (expression_statement "local_84 = (uint *)(uVar8 + 5);" (assignment_expression "local_84 = (uint *)(uVar8 + 5)" identifier = (cast_expression "(uint *)(uVar8 + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 5)" ( (binary_expression "uVar8 + 5" identifier + number_literal) )))) ;) }) (else_clause "else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;\n    if (uVar20 == 0) {\n      uVar20 = 1;\n    }\n    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    uVar21 = 1;\n    if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }\n    uVar21 = uVar8 + 5;\n    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }\n    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);\n  }" else (compound_statement "{\n    local_74 = 0;\n    local_88 = 1;\n    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;\n    if (uVar20 == 0) {\n      uVar20 = 1;\n    }\n    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    uVar21 = 1;\n    if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }\n    uVar21 = uVar8 + 5;\n    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }\n    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);\n  }" { (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) (expression_statement "local_88 = 1;" (assignment_expression "local_88 = 1" identifier = number_literal) ;) (expression_statement "uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;" (assignment_expression "uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5" identifier = (binary_expression "(uint)((int)puVar27 - (int)pbVar24) >> 5" (call_expression "(uint)((int)puVar27 - (int)pbVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar27 - (int)pbVar24)" ( (binary_expression "(int)puVar27 - (int)pbVar24" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))) >> number_literal)) ;) (if_statement "if (uVar20 == 0) {\n      uVar20 = 1;\n    }" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar20 = 1;\n    }" { (expression_statement "uVar20 = 1;" (assignment_expression "uVar20 = 1" identifier = number_literal) ;) })) (expression_statement "uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;" (assignment_expression "uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5" identifier = (binary_expression "(uint)((int)local_84 - (int)puVar27) >> 5" (call_expression "(uint)((int)local_84 - (int)puVar27)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_84 - (int)puVar27)" ( (binary_expression "(int)local_84 - (int)puVar27" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier)) ))) >> number_literal)) ;) (if_statement "if (uVar8 == 0) {\n      uVar8 = 1;\n    }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar8 = 1;\n    }" { (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) })) (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" identifier = number_literal) ;) (if_statement "if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }" if (parenthesized_expression "(0 < (int)DAT_0004d69c)" ( (binary_expression "0 < (int)DAT_0004d69c" number_literal < (cast_expression "(int)DAT_0004d69c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }" { (do_statement "do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);" do (compound_statement "{\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      }" { (expression_statement "local_88 = uVar21 * 2;" (assignment_expression "local_88 = uVar21 * 2" identifier = (binary_expression "uVar21 * 2" identifier * number_literal)) ;) (expression_statement "iVar18 = uVar21 * -2;" (assignment_expression "iVar18 = uVar21 * -2" identifier = (binary_expression "uVar21 * -2" identifier * number_literal)) ;) (expression_statement "uVar21 = local_88;" (assignment_expression "uVar21 = local_88" identifier = identifier) ;) }) while (parenthesized_expression "(SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0)" ( (binary_expression "SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0" (call_expression "SBORROW4(DAT_0004d69c,local_88)" identifier (argument_list "(DAT_0004d69c,local_88)" ( identifier , identifier ))) == (binary_expression "(int)(DAT_0004d69c + iVar18) < 0" (cast_expression "(int)(DAT_0004d69c + iVar18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(DAT_0004d69c + iVar18)" ( (binary_expression "DAT_0004d69c + iVar18" identifier + identifier) ))) < number_literal)) )) ;) (expression_statement "local_74 = local_88 - 1;" (assignment_expression "local_74 = local_88 - 1" identifier = (binary_expression "local_88 - 1" identifier - number_literal)) ;) })) (expression_statement "uVar21 = uVar8 + 5;" (assignment_expression "uVar21 = uVar8 + 5" identifier = (binary_expression "uVar8 + 5" identifier + number_literal)) ;) (if_statement "if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }" if (parenthesized_expression "((int)DAT_0004d69c <= (int)(uVar8 + 5))" ( (binary_expression "(int)DAT_0004d69c <= (int)(uVar8 + 5)" (cast_expression "(int)DAT_0004d69c" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uVar8 + 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar8 + 5)" ( (binary_expression "uVar8 + 5" identifier + number_literal) )))) )) (compound_statement "{\n      uVar21 = DAT_0004d69c;\n    }" { (expression_statement "uVar21 = DAT_0004d69c;" (assignment_expression "uVar21 = DAT_0004d69c" identifier = identifier) ;) })) (expression_statement "local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);" (assignment_expression "local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5)" identifier = (cast_expression "(uint *)(uVar21 + local_88 + uVar20 + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar21 + local_88 + uVar20 + 5)" ( (binary_expression "uVar21 + local_88 + uVar20 + 5" (binary_expression "uVar21 + local_88 + uVar20" (binary_expression "uVar21 + local_88" identifier + identifier) + identifier) + number_literal) )))) ;) }))) (expression_statement "puVar9 = (undefined4 *)FUN_00023c60((int)local_84 << 2);" (assignment_expression "puVar9 = (undefined4 *)FUN_00023c60((int)local_84 << 2)" identifier = (cast_expression "(undefined4 *)FUN_00023c60((int)local_84 << 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00023c60((int)local_84 << 2)" identifier (argument_list "((int)local_84 << 2)" ( (binary_expression "(int)local_84 << 2" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))))) ;) (expression_statement "pbVar24 = (byte *)param_1[0x22];" (assignment_expression "pbVar24 = (byte *)param_1[0x22]" identifier = (cast_expression "(byte *)param_1[0x22]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x22]" identifier [ number_literal ]))) ;) (if_statement "if (((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||\n     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)) {\n    if (local_90 == pbVar24) {\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }\n    uVar20 = (uint)local_84;\n    local_8c = (byte *)0;\n    pbVar28 = local_90;\n    do {\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    } while (pbVar28 != pbVar24);\n    local_6c = (int)local_70 - param_1[0x4e];\n    bVar32 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar20 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }\n  }\n  else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;\n    if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }\n  }" if (parenthesized_expression "(((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||\n     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28))" ( (binary_expression "((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||\n     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)" (parenthesized_expression "((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24))" ( (binary_expression "(DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)" (parenthesized_expression "(DAT_0004d68c == '\0')" ( (binary_expression "DAT_0004d68c == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(puVar27 != (uint *)pbVar24)" ( (binary_expression "puVar27 != (uint *)pbVar24" identifier != (cast_expression "(uint *)pbVar24" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) )) || (parenthesized_expression "(pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)" ( (comma_expression "pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28" (assignment_expression "pbVar28 = (byte *)param_1[0x4e]" identifier = (cast_expression "(byte *)param_1[0x4e]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x4e]" identifier [ number_literal ]))) , (binary_expression "local_70 != pbVar28" identifier != identifier)) ))) )) (compound_statement "{\n    if (local_90 == pbVar24) {\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }\n    uVar20 = (uint)local_84;\n    local_8c = (byte *)0;\n    pbVar28 = local_90;\n    do {\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    } while (pbVar28 != pbVar24);\n    local_6c = (int)local_70 - param_1[0x4e];\n    bVar32 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar20 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }\n  }" { (if_statement "if (local_90 == pbVar24) {\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }" if (parenthesized_expression "(local_90 == pbVar24)" ( (binary_expression "local_90 == pbVar24" identifier == identifier) )) (compound_statement "{\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }" { (expression_statement "pbVar28 = (byte *)param_1[0x4e];" (assignment_expression "pbVar28 = (byte *)param_1[0x4e]" identifier = (cast_expression "(byte *)param_1[0x4e]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x4e]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0001a84f;" goto statement_identifier ;) })) (expression_statement "uVar20 = (uint)local_84;" (assignment_expression "uVar20 = (uint)local_84" identifier = (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_8c = (byte *)0;" (assignment_expression "local_8c = (byte *)0" identifier = (cast_expression "(byte *)0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar28 = local_90;" (assignment_expression "pbVar28 = local_90" identifier = identifier) ;) (do_statement "do {\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    } while (pbVar28 != pbVar24);" do (compound_statement "{\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    }" { (expression_statement "uVar8 = (uint)local_8c;" (assignment_expression "uVar8 = (uint)local_8c" identifier = (cast_expression "(uint)local_8c" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_8c = (byte *)(uVar8 + 1);" (assignment_expression "local_8c = (byte *)(uVar8 + 1)" identifier = (cast_expression "(byte *)(uVar8 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 1)" ( (binary_expression "uVar8 + 1" identifier + number_literal) )))) ;) (expression_statement "local_84 = (uint *)uVar20;" (assignment_expression "local_84 = (uint *)uVar20" identifier = (cast_expression "(uint *)uVar20" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }" if (parenthesized_expression "((local_74 & uVar8) == uVar20)" ( (binary_expression "(local_74 & uVar8) == uVar20" (parenthesized_expression "(local_74 & uVar8)" ( (binary_expression "local_74 & uVar8" identifier & identifier) )) == identifier) )) (compound_statement "{\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }" { (if_statement "if (0xffffffe < uVar20) goto LAB_0001a9c0;" if (parenthesized_expression "(0xffffffe < uVar20)" ( (binary_expression "0xffffffe < uVar20" number_literal < identifier) )) (goto_statement "goto LAB_0001a9c0;" goto statement_identifier ;)) (expression_statement "local_84 = (uint *)(uVar20 * 2);" (assignment_expression "local_84 = (uint *)(uVar20 * 2)" identifier = (cast_expression "(uint *)(uVar20 * 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar20 * 2)" ( (binary_expression "uVar20 * 2" identifier * number_literal) )))) ;) (expression_statement "puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);" (assignment_expression "puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8)" identifier = (cast_expression "(undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00023ce0(puVar9,uVar20 * 8)" identifier (argument_list "(puVar9,uVar20 * 8)" ( identifier , (binary_expression "uVar20 * 8" identifier * number_literal) ))))) ;) })) (expression_statement "puVar9[local_74 & uVar8] = pbVar28;" (assignment_expression "puVar9[local_74 & uVar8] = pbVar28" (subscript_expression "puVar9[local_74 & uVar8]" identifier [ (binary_expression "local_74 & uVar8" identifier & identifier) ]) = identifier) ;) (expression_statement "pbVar11 = pbVar28;" (assignment_expression "pbVar11 = pbVar28" identifier = identifier) ;) (do_statement "do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);" do (compound_statement "{\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      }" { (expression_statement "pbVar28 = pbVar11 + 1;" (assignment_expression "pbVar28 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "bVar5 = *pbVar11;" (assignment_expression "bVar5 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (expression_statement "pbVar11 = pbVar28;" (assignment_expression "pbVar11 = pbVar28" identifier = identifier) ;) }) while (parenthesized_expression "(bVar5 != 10)" ( (binary_expression "bVar5 != 10" identifier != number_literal) )) ;) (expression_statement "uVar20 = (uint)local_84;" (assignment_expression "uVar20 = (uint)local_84" identifier = (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(pbVar28 != pbVar24)" ( (binary_expression "pbVar28 != pbVar24" identifier != identifier) )) ;) (expression_statement "local_6c = (int)local_70 - param_1[0x4e];" (assignment_expression "local_6c = (int)local_70 - param_1[0x4e]" identifier = (binary_expression "(int)local_70 - param_1[0x4e]" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "param_1[0x4e]" identifier [ number_literal ]))) ;) (expression_statement "bVar32 = local_88 != 0;" (assignment_expression "bVar32 = local_88 != 0" identifier = (binary_expression "local_88 != 0" identifier != number_literal)) ;) (expression_statement "local_88 = (uint)local_8c;" (assignment_expression "local_88 = (uint)local_8c" identifier = (cast_expression "(uint)local_8c" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {\n      local_88 = (uint)local_8c;\n    }" if (parenthesized_expression "((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c))" ( (binary_expression "(bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)" (parenthesized_expression "(bVar32)" ( identifier )) && (parenthesized_expression "(local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)" ( (comma_expression "local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c" (assignment_expression "local_88 = DAT_0004d69c" identifier = identifier) , (binary_expression "(int)local_8c <= (int)DAT_0004d69c" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)DAT_0004d69c" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n      local_88 = (uint)local_8c;\n    }" { (expression_statement "local_88 = (uint)local_8c;" (assignment_expression "local_88 = (uint)local_8c" identifier = (cast_expression "(uint)local_8c" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) })) (expression_statement "uVar20 = 0x20;" (assignment_expression "uVar20 = 0x20" identifier = number_literal) ;) (if_statement "if (9 < (int)local_8c) {\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }" if (parenthesized_expression "(9 < (int)local_8c)" ( (binary_expression "9 < (int)local_8c" number_literal < (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }" { (expression_statement "uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;" (assignment_expression "uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8" identifier = (binary_expression "(uint)((int)pbVar24 - (int)local_90) / uVar8" (call_expression "(uint)((int)pbVar24 - (int)local_90)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar24 - (int)local_90)" ( (binary_expression "(int)pbVar24 - (int)local_90" (cast_expression "(int)pbVar24" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / identifier)) ;) })) }) (else_clause "else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;\n    if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }\n  }" else (compound_statement "{\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;\n    if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }\n  }" { (labeled_statement "LAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;" statement_identifier : (expression_statement "local_6c = (int)local_70 - (int)pbVar28;" (assignment_expression "local_6c = (int)local_70 - (int)pbVar28" identifier = (binary_expression "(int)local_70 - (int)pbVar28" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (if_statement "if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }" if (parenthesized_expression "(local_88 == 0)" ( (binary_expression "local_88 == 0" identifier == number_literal) )) (compound_statement "{\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }" { (expression_statement "local_8c = (byte *)0x0;" (assignment_expression "local_8c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar20 = 0x20;" (assignment_expression "uVar20 = 0x20" identifier = number_literal) ;) }) (else_clause "else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }" else (compound_statement "{\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }" { (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "uVar20 = 0x20;" (assignment_expression "uVar20 = 0x20" identifier = number_literal) ;) (expression_statement "local_8c = (byte *)0x0;" (assignment_expression "local_8c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }" if (parenthesized_expression "((int)DAT_0004d69c < 1)" ( (binary_expression "(int)DAT_0004d69c < 1" (cast_expression "(int)DAT_0004d69c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        local_88 = DAT_0004d69c;\n      }" { (expression_statement "local_88 = DAT_0004d69c;" (assignment_expression "local_88 = DAT_0004d69c" identifier = identifier) ;) })) }))) }))) (expression_statement "uVar8 = (uint)((int)local_7c - (int)local_70) / uVar20;" (assignment_expression "uVar8 = (uint)((int)local_7c - (int)local_70) / uVar20" identifier = (binary_expression "(uint)((int)local_7c - (int)local_70) / uVar20" (call_expression "(uint)((int)local_7c - (int)local_70)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_7c - (int)local_70)" ( (binary_expression "(int)local_7c - (int)local_70" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / identifier)) ;) (if_statement "if (uVar8 == 0) {\n    uVar8 = 1;\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar8 = 1;\n  }" { (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) })) (if_statement "if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }" if (parenthesized_expression "(0xe38e389 < uVar8)" ( (binary_expression "0xe38e389 < uVar8" number_literal < identifier) )) (compound_statement "{\n    uVar8 = 0xe38e389;\n  }" { (expression_statement "uVar8 = 0xe38e389;" (assignment_expression "uVar8 = 0xe38e389" identifier = number_literal) ;) })) (expression_statement "uVar21 = uVar8 + 5;" (assignment_expression "uVar21 = uVar8 + 5" identifier = (binary_expression "uVar8 + 5" identifier + number_literal)) ;) (if_statement "if ((int)DAT_0004d69c < (int)(uVar8 + 5)) {\n    uVar21 = DAT_0004d69c;\n  }" if (parenthesized_expression "((int)DAT_0004d69c < (int)(uVar8 + 5))" ( (binary_expression "(int)DAT_0004d69c < (int)(uVar8 + 5)" (cast_expression "(int)DAT_0004d69c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(uVar8 + 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar8 + 5)" ( (binary_expression "uVar8 + 5" identifier + number_literal) )))) )) (compound_statement "{\n    uVar21 = DAT_0004d69c;\n  }" { (expression_statement "uVar21 = DAT_0004d69c;" (assignment_expression "uVar21 = DAT_0004d69c" identifier = identifier) ;) })) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (if_statement "if (local_6c / uVar20 != 0) {\n    uVar8 = local_6c / uVar20;\n  }" if (parenthesized_expression "(local_6c / uVar20 != 0)" ( (binary_expression "local_6c / uVar20 != 0" (binary_expression "local_6c / uVar20" identifier / identifier) != number_literal) )) (compound_statement "{\n    uVar8 = local_6c / uVar20;\n  }" { (expression_statement "uVar8 = local_6c / uVar20;" (assignment_expression "uVar8 = local_6c / uVar20" identifier = (binary_expression "local_6c / uVar20" identifier / identifier)) ;) })) (if_statement "if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }" if (parenthesized_expression "(0xe38e389 < uVar8)" ( (binary_expression "0xe38e389 < uVar8" number_literal < identifier) )) (compound_statement "{\n    uVar8 = 0xe38e389;\n  }" { (expression_statement "uVar8 = 0xe38e389;" (assignment_expression "uVar8 = 0xe38e389" identifier = number_literal) ;) })) (expression_statement "uVar21 = local_88 + 5 + uVar8 + uVar21;" (assignment_expression "uVar21 = local_88 + 5 + uVar8 + uVar21" identifier = (binary_expression "local_88 + 5 + uVar8 + uVar21" (binary_expression "local_88 + 5 + uVar8" (binary_expression "local_88 + 5" identifier + number_literal) + identifier) + identifier)) ;) (expression_statement "bVar32 = (int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21;" (assignment_expression "bVar32 = (int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21" identifier = (binary_expression "(int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21" (binary_expression "(int)uVar21 < (int)local_88" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_88" ( (type_descriptor "int" primitive_type) ) identifier)) || (binary_expression "0x1ffffffe < uVar21" number_literal < identifier))) ;) (if_statement "if (bVar32) goto LAB_0001a9c0;" if (parenthesized_expression "(bVar32)" ( identifier )) (goto_statement "goto LAB_0001a9c0;" goto statement_identifier ;)) (expression_statement "puVar10 = (undefined4 *)FUN_00023c60(uVar21 * 4);" (assignment_expression "puVar10 = (undefined4 *)FUN_00023c60(uVar21 * 4)" identifier = (cast_expression "(undefined4 *)FUN_00023c60(uVar21 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00023c60(uVar21 * 4)" identifier (argument_list "(uVar21 * 4)" ( (binary_expression "uVar21 * 4" identifier * number_literal) ))))) ;) (if_statement "if ((byte *)local_88 == local_8c) {\n    if (local_88 != 0) goto LAB_00019df3;\n  }\n  else if (0 < (int)local_88) {\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }" if (parenthesized_expression "((byte *)local_88 == local_8c)" ( (binary_expression "(byte *)local_88 == local_8c" (cast_expression "(byte *)local_88" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) (compound_statement "{\n    if (local_88 != 0) goto LAB_00019df3;\n  }" { (if_statement "if (local_88 != 0) goto LAB_00019df3;" if (parenthesized_expression "(local_88 != 0)" ( (binary_expression "local_88 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00019df3;" goto statement_identifier ;)) }) (else_clause "else if (0 < (int)local_88) {\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }" else (if_statement "if (0 < (int)local_88) {\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }" if (parenthesized_expression "(0 < (int)local_88)" ( (binary_expression "0 < (int)local_88" number_literal < (cast_expression "(int)local_88" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }" { (expression_statement "uVar8 = (int)local_8c - DAT_0004d69c;" (assignment_expression "uVar8 = (int)local_8c - DAT_0004d69c" identifier = (binary_expression "(int)local_8c - DAT_0004d69c" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "uVar20 = uVar8;" (assignment_expression "uVar20 = uVar8" identifier = identifier) ;) (do_statement "do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);" do (compound_statement "{\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    }" { (expression_statement "puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];" (assignment_expression "puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74]" (subscript_expression "puVar10[uVar20 - uVar8]" identifier [ (binary_expression "uVar20 - uVar8" identifier - identifier) ]) = (subscript_expression "puVar9[uVar20 & local_74]" identifier [ (binary_expression "uVar20 & local_74" identifier & identifier) ])) ;) (expression_statement "uVar20 = uVar20 + 1;" (assignment_expression "uVar20 = uVar20 + 1" identifier = (binary_expression "uVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_88 + uVar8 != uVar20)" ( (binary_expression "local_88 + uVar8 != uVar20" (binary_expression "local_88 + uVar8" identifier + identifier) != identifier) )) ;) (expression_statement "puVar17 = puVar9;" (assignment_expression "puVar17 = puVar9" identifier = identifier) ;) (expression_statement "puVar19 = puVar10;" (assignment_expression "puVar19 = puVar10" identifier = identifier) ;) (do_statement "do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);" do (compound_statement "{\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    }" { (expression_statement "uVar2 = *puVar19;" (assignment_expression "uVar2 = *puVar19" identifier = (pointer_expression "*puVar19" * identifier)) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) (expression_statement "*puVar17 = uVar2;" (assignment_expression "*puVar17 = uVar2" (pointer_expression "*puVar17" * identifier) = identifier) ;) (expression_statement "puVar17 = puVar17 + 1;" (assignment_expression "puVar17 = puVar17 + 1" identifier = (binary_expression "puVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar10 + local_88 != puVar19)" ( (binary_expression "puVar10 + local_88 != puVar19" (binary_expression "puVar10 + local_88" identifier + identifier) != identifier) )) ;) (labeled_statement "LAB_00019df3:\n    iVar18 = 0;" statement_identifier : (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;)) (do_statement "do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);" do (compound_statement "{\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    }" { (expression_statement "puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);" (assignment_expression "puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90)" (subscript_expression "puVar10[iVar18]" identifier [ identifier ]) = (binary_expression "local_78 + (puVar9[iVar18] - (int)local_90)" identifier + (parenthesized_expression "(puVar9[iVar18] - (int)local_90)" ( (binary_expression "puVar9[iVar18] - (int)local_90" (subscript_expression "puVar9[iVar18]" identifier [ identifier ]) - (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 < (int)local_88)" ( (binary_expression "iVar18 < (int)local_88" identifier < (cast_expression "(int)local_88" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })))) (expression_statement "param_1[0x49] = (int)(puVar10 + local_88);" (assignment_expression "param_1[0x49] = (int)(puVar10 + local_88)" (subscript_expression "param_1[0x49]" identifier [ number_literal ]) = (cast_expression "(int)(puVar10 + local_88)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar10 + local_88)" ( (binary_expression "puVar10 + local_88" identifier + identifier) )))) ;) (expression_statement "param_1[0x1d] = (int)(puVar9 + local_88);" (assignment_expression "param_1[0x1d] = (int)(puVar9 + local_88)" (subscript_expression "param_1[0x1d]" identifier [ number_literal ]) = (cast_expression "(int)(puVar9 + local_88)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar9 + local_88)" ( (binary_expression "puVar9 + local_88" identifier + identifier) )))) ;) (expression_statement "param_1[0x4a] = -local_88;" (assignment_expression "param_1[0x4a] = -local_88" (subscript_expression "param_1[0x4a]" identifier [ number_literal ]) = (unary_expression "-local_88" - identifier)) ;) (expression_statement "param_1[0x1e] = -local_88;" (assignment_expression "param_1[0x1e] = -local_88" (subscript_expression "param_1[0x1e]" identifier [ number_literal ]) = (unary_expression "-local_88" - identifier)) ;) (expression_statement "param_1[0x21] = (int)local_84 - local_88;" (assignment_expression "param_1[0x21] = (int)local_84 - local_88" (subscript_expression "param_1[0x21]" identifier [ number_literal ]) = (binary_expression "(int)local_84 - local_88" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "uVar20 = ((int)local_84 - local_88) + 1 + (uVar21 - local_88);" (assignment_expression "uVar20 = ((int)local_84 - local_88) + 1 + (uVar21 - local_88)" identifier = (binary_expression "((int)local_84 - local_88) + 1 + (uVar21 - local_88)" (binary_expression "((int)local_84 - local_88) + 1" (parenthesized_expression "((int)local_84 - local_88)" ( (binary_expression "(int)local_84 - local_88" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )) + number_literal) + (parenthesized_expression "(uVar21 - local_88)" ( (binary_expression "uVar21 - local_88" identifier - identifier) )))) ;) (expression_statement "param_1[0x4d] = uVar21 - local_88;" (assignment_expression "param_1[0x4d] = uVar21 - local_88" (subscript_expression "param_1[0x4d]" identifier [ number_literal ]) = (binary_expression "uVar21 - local_88" identifier - identifier)) ;) (expression_statement "DAT_0004d388 = uVar20;" (assignment_expression "DAT_0004d388 = uVar20" identifier = identifier) ;) (expression_statement "param_1[0x4f] = (int)local_8c;" (assignment_expression "param_1[0x4f] = (int)local_8c" (subscript_expression "param_1[0x4f]" identifier [ number_literal ]) = (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0x23] = (int)local_8c;" (assignment_expression "param_1[0x23] = (int)local_8c" (subscript_expression "param_1[0x23]" identifier [ number_literal ]) = (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (uVar20 < 0x7ffffff) {\n    DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);\n    DAT_0004d38c = 1;\n    if ((uint)((int)DAT_0004d388 / 3) < 0x201) {\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }\n    else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }\n    iVar18 = FUN_0001d920(iVar18);\n    DAT_0004d398 = iVar18 + 4;\n    local_5c = param_1 + 0x1a;\n    do {\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    } while( true );\n  }" if (parenthesized_expression "(uVar20 < 0x7ffffff)" ( (binary_expression "uVar20 < 0x7ffffff" identifier < number_literal) )) (compound_statement "{\n    DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);\n    DAT_0004d38c = 1;\n    if ((uint)((int)DAT_0004d388 / 3) < 0x201) {\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }\n    else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }\n    iVar18 = FUN_0001d920(iVar18);\n    DAT_0004d398 = iVar18 + 4;\n    local_5c = param_1 + 0x1a;\n    do {\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    } while( true );\n  }" { (expression_statement "DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);" (assignment_expression "DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10)" identifier = (cast_expression "(void *)FUN_00023c60(uVar20 * 0x10)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00023c60(uVar20 * 0x10)" identifier (argument_list "(uVar20 * 0x10)" ( (binary_expression "uVar20 * 0x10" identifier * number_literal) ))))) ;) (expression_statement "DAT_0004d38c = 1;" (assignment_expression "DAT_0004d38c = 1" identifier = number_literal) ;) (if_statement "if ((uint)((int)DAT_0004d388 / 3) < 0x201) {\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }\n    else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }" if (parenthesized_expression "((uint)((int)DAT_0004d388 / 3) < 0x201)" ( (binary_expression "(uint)((int)DAT_0004d388 / 3) < 0x201" (call_expression "(uint)((int)DAT_0004d388 / 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)DAT_0004d388 / 3)" ( (binary_expression "(int)DAT_0004d388 / 3" (cast_expression "(int)DAT_0004d388" ( (type_descriptor "int" primitive_type) ) identifier) / number_literal) ))) < number_literal) )) (compound_statement "{\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }" { (expression_statement "DAT_0004d394 = 0x1fd;" (assignment_expression "DAT_0004d394 = 0x1fd" identifier = number_literal) ;) (expression_statement "iVar18 = 0x7f8;" (assignment_expression "iVar18 = 0x7f8" identifier = number_literal) ;) }) (else_clause "else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }" else (compound_statement "{\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }" { (expression_statement "iVar18 = 9;" (assignment_expression "iVar18 = 9" identifier = number_literal) ;) (do_statement "do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));" do (compound_statement "{\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      }" { (expression_statement "iVar30 = iVar18;" (assignment_expression "iVar30 = iVar18" identifier = identifier) ;) (expression_statement "iVar18 = iVar30 + 1;" (assignment_expression "iVar18 = iVar30 + 1" identifier = (binary_expression "iVar30 + 1" identifier + number_literal)) ;) (expression_statement "uVar20 = 1 << ((byte)iVar18 & 0x1f);" (assignment_expression "uVar20 = 1 << ((byte)iVar18 & 0x1f)" identifier = (binary_expression "1 << ((byte)iVar18 & 0x1f)" number_literal << (parenthesized_expression "((byte)iVar18 & 0x1f)" ( (binary_expression "(byte)iVar18 & 0x1f" (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) }) while (parenthesized_expression "(uVar20 < (uint)((int)DAT_0004d388 / 3))" ( (binary_expression "uVar20 < (uint)((int)DAT_0004d388 / 3)" identifier < (call_expression "(uint)((int)DAT_0004d388 / 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)DAT_0004d388 / 3)" ( (binary_expression "(int)DAT_0004d388 / 3" (cast_expression "(int)DAT_0004d388" ( (type_descriptor "int" primitive_type) ) identifier) / number_literal) )))) )) ;) (expression_statement "DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];" (assignment_expression "DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30]" identifier = (binary_expression "uVar20 - (byte)(&UNK_0003e181)[iVar30]" identifier - (subscript_expression "(byte)(&UNK_0003e181)[iVar30]" (call_expression "(byte)(&UNK_0003e181)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(&UNK_0003e181)" ( (pointer_expression "&UNK_0003e181" & identifier) ))) [ identifier ]))) ;) (if_statement "if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;" if (parenthesized_expression "(0x1ffffffe < DAT_0004d394)" ( (binary_expression "0x1ffffffe < DAT_0004d394" number_literal < identifier) )) (goto_statement "goto LAB_0001a9c0;" goto statement_identifier ;)) (expression_statement "iVar18 = DAT_0004d394 * 4 + 4;" (assignment_expression "iVar18 = DAT_0004d394 * 4 + 4" identifier = (binary_expression "DAT_0004d394 * 4 + 4" (binary_expression "DAT_0004d394 * 4" identifier * number_literal) + number_literal)) ;) }))) (expression_statement "iVar18 = FUN_0001d920(iVar18);" (assignment_expression "iVar18 = FUN_0001d920(iVar18)" identifier = (call_expression "FUN_0001d920(iVar18)" identifier (argument_list "(iVar18)" ( identifier )))) ;) (expression_statement "DAT_0004d398 = iVar18 + 4;" (assignment_expression "DAT_0004d398 = iVar18 + 4" identifier = (binary_expression "iVar18 + 4" identifier + number_literal)) ;) (expression_statement "local_5c = param_1 + 0x1a;" (assignment_expression "local_5c = param_1 + 0x1a" identifier = (binary_expression "param_1 + 0x1a" identifier + number_literal)) ;) (do_statement "do {\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    } while( true );" do (compound_statement "{\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    }" { (expression_statement "local_80 = (byte *)local_5c[3];" (assignment_expression "local_80 = (byte *)local_5c[3]" identifier = (cast_expression "(byte *)local_5c[3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar18 = local_5c[4];" (assignment_expression "iVar18 = local_5c[4]" identifier = (subscript_expression "local_5c[4]" identifier [ number_literal ])) ;) (expression_statement "pbVar24 = (byte *)local_5c[8];" (assignment_expression "pbVar24 = (byte *)local_5c[8]" identifier = (cast_expression "(byte *)local_5c[8]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[8]" identifier [ number_literal ]))) ;) (expression_statement "local_6c = local_5c[7];" (assignment_expression "local_6c = local_5c[7]" identifier = (subscript_expression "local_5c[7]" identifier [ number_literal ])) ;) (expression_statement "local_68 = FUN_00023c60(local_6c << 2);" (assignment_expression "local_68 = FUN_00023c60(local_6c << 2)" identifier = (call_expression "FUN_00023c60(local_6c << 2)" identifier (argument_list "(local_6c << 2)" ( (binary_expression "local_6c << 2" identifier << number_literal) )))) ;) (expression_statement "cVar4 = DAT_0004d68d;" (assignment_expression "cVar4 = DAT_0004d68d" identifier = identifier) ;) (expression_statement "uVar20 = DAT_0004d638;" (assignment_expression "uVar20 = DAT_0004d638" identifier = identifier) ;) (expression_statement "pbVar28 = (byte *)local_5c[10];" (assignment_expression "pbVar28 = (byte *)local_5c[10]" identifier = (cast_expression "(byte *)local_5c[10]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[10]" identifier [ number_literal ]))) ;) (expression_statement "local_7c = (byte *)DAT_0004d390;" (assignment_expression "local_7c = (byte *)DAT_0004d390" identifier = (cast_expression "(byte *)DAT_0004d390" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_64 = DAT_0004d38c;" (assignment_expression "local_64 = DAT_0004d38c" identifier = identifier) ;) (expression_statement "local_60 = DAT_0004d388;" (assignment_expression "local_60 = DAT_0004d388" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)(local_5c[2] + *local_5c);" (assignment_expression "pbVar11 = (byte *)(local_5c[2] + *local_5c)" identifier = (cast_expression "(byte *)(local_5c[2] + *local_5c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5c[2] + *local_5c)" ( (binary_expression "local_5c[2] + *local_5c" (subscript_expression "local_5c[2]" identifier [ number_literal ]) + (pointer_expression "*local_5c" * identifier)) )))) ;) (expression_statement "bVar33 = DAT_0004d638 == 0;" (assignment_expression "bVar33 = DAT_0004d638 == 0" identifier = (binary_expression "DAT_0004d638 == 0" identifier == number_literal)) ;) (if_statement "if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }" if (parenthesized_expression "(pbVar24 < pbVar28)" ( (binary_expression "pbVar24 < pbVar28" identifier < identifier) )) (compound_statement "{\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }" { (expression_statement "local_8c = (byte *)0x0;" (assignment_expression "local_8c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_90 = pbVar24;" (assignment_expression "local_90 = pbVar24" identifier = identifier) ;) (do_statement "do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );" do (compound_statement "{\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        }" { (expression_statement "uVar21 = DAT_0004d650;" (assignment_expression "uVar21 = DAT_0004d650" identifier = identifier) ;) (expression_statement "bVar5 = *local_90;" (assignment_expression "bVar5 = *local_90" identifier = (pointer_expression "*local_90" * identifier)) ;) (expression_statement "uVar8 = (uint)bVar5;" (assignment_expression "uVar8 = (uint)bVar5" identifier = (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar24 = local_90 + 1;" (assignment_expression "pbVar24 = local_90 + 1" identifier = (binary_expression "local_90 + 1" identifier + number_literal)) ;) (if_statement "if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }" if (parenthesized_expression "(uVar20 == 4)" ( (binary_expression "uVar20 == 4" identifier == number_literal) )) (compound_statement "{\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }" { (if_statement "if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }" if (parenthesized_expression "(bVar5 != 10)" ( (binary_expression "bVar5 != 10" identifier != number_literal) )) (compound_statement "{\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }" { (expression_statement "ppuVar12 = __ctype_b_loc();" (assignment_expression "ppuVar12 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = *ppuVar12;" (assignment_expression "puVar3 = *ppuVar12" identifier = (pointer_expression "*ppuVar12" * identifier)) ;) (do_statement "do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);" do (compound_statement "{\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              }" { (expression_statement "pbVar26 = pbVar24;" (assignment_expression "pbVar26 = pbVar24" identifier = identifier) ;) (if_statement "if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }" if (parenthesized_expression "((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)puVar3 + uVar8 * 2 + 1)" * (cast_expression "(byte *)((int)puVar3 + uVar8 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar3 + uVar8 * 2 + 1)" ( (binary_expression "(int)puVar3 + uVar8 * 2 + 1" (binary_expression "(int)puVar3 + uVar8 * 2" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar8 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }" { (do_statement "do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);" do (compound_statement "{\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  }" { (expression_statement "pbVar24 = pbVar26 + 1;" (assignment_expression "pbVar24 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (if_statement "if (*pbVar26 == 10) goto LAB_0001a0a0;" if (parenthesized_expression "(*pbVar26 == 10)" ( (binary_expression "*pbVar26 == 10" (pointer_expression "*pbVar26" * identifier) == number_literal) )) (goto_statement "goto LAB_0001a0a0;" goto statement_identifier ;)) (expression_statement "uVar8 = (uint)*pbVar26;" (assignment_expression "uVar8 = (uint)*pbVar26" identifier = (binary_expression "(uint)*pbVar26" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar26 = pbVar24;" (assignment_expression "pbVar26 = pbVar24" identifier = identifier) ;) }) while (parenthesized_expression "((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)puVar3 + uVar8 * 2 + 1)" * (cast_expression "(byte *)((int)puVar3 + uVar8 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar3 + uVar8 * 2 + 1)" ( (binary_expression "(int)puVar3 + uVar8 * 2 + 1" (binary_expression "(int)puVar3 + uVar8 * 2" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar8 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) ;) (expression_statement "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;" (assignment_expression "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20" identifier = (binary_expression "(uVar29 << 7 | uVar29 >> 0x19) + 0x20" (parenthesized_expression "(uVar29 << 7 | uVar29 >> 0x19)" ( (binary_expression "uVar29 << 7 | uVar29 >> 0x19" (binary_expression "uVar29 << 7" identifier << number_literal) | (binary_expression "uVar29 >> 0x19" identifier >> number_literal)) )) + number_literal)) ;) })) (expression_statement "uVar21 = uVar8;" (assignment_expression "uVar21 = uVar8" identifier = identifier) ;) (if_statement "if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }" { (expression_statement "pp_Var13 = __ctype_tolower_loc();" (assignment_expression "pp_Var13 = __ctype_tolower_loc()" identifier = (call_expression "__ctype_tolower_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar21 = (*pp_Var13)[uVar8];" (assignment_expression "uVar21 = (*pp_Var13)[uVar8]" identifier = (subscript_expression "(*pp_Var13)[uVar8]" (parenthesized_expression "(*pp_Var13)" ( (pointer_expression "*pp_Var13" * identifier) )) [ identifier ])) ;) })) (expression_statement "bVar5 = *pbVar24;" (assignment_expression "bVar5 = *pbVar24" identifier = (pointer_expression "*pbVar24" * identifier)) ;) (expression_statement "uVar8 = (uint)bVar5;" (assignment_expression "uVar8 = (uint)bVar5" identifier = (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) (expression_statement "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;" (assignment_expression "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21" identifier = (binary_expression "(uVar29 << 7 | uVar29 >> 0x19) + uVar21" (parenthesized_expression "(uVar29 << 7 | uVar29 >> 0x19)" ( (binary_expression "uVar29 << 7 | uVar29 >> 0x19" (binary_expression "uVar29 << 7" identifier << number_literal) | (binary_expression "uVar29 >> 0x19" identifier >> number_literal)) )) + identifier)) ;) }) while (parenthesized_expression "(bVar5 != 10)" ( (binary_expression "bVar5 != 10" identifier != number_literal) )) ;) (goto_statement "goto LAB_0001a0a0;" goto statement_identifier ;) })) (labeled_statement "LAB_0001a500:\n            pbVar26 = (byte *)0x0;" statement_identifier : (expression_statement "pbVar26 = (byte *)0x0;" (assignment_expression "pbVar26 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }" else (compound_statement "{\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }" { (if_statement "if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }" if (parenthesized_expression "(uVar20 < 5)" ( (binary_expression "uVar20 < 5" identifier < number_literal) )) (compound_statement "{\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }" { (if_statement "if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }" { (labeled_statement "LAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }" statement_identifier : (if_statement "if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }" { (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "pbVar26 = (byte *)0x0;" (assignment_expression "pbVar26 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar23 = pbVar24;" (assignment_expression "pbVar23 = pbVar24" identifier = identifier) ;) (if_statement "if (bVar5 == 10) goto LAB_0001a0a9;" if (parenthesized_expression "(bVar5 == 10)" ( (binary_expression "bVar5 == 10" identifier == number_literal) )) (goto_statement "goto LAB_0001a0a9;" goto statement_identifier ;)) (do_statement "do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);" do (compound_statement "{\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  }" { (expression_statement "pbVar24 = pbVar23 + 1;" (assignment_expression "pbVar24 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) ;) (expression_statement "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;" (assignment_expression "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8" identifier = (binary_expression "(uVar29 << 7 | uVar29 >> 0x19) + uVar8" (parenthesized_expression "(uVar29 << 7 | uVar29 >> 0x19)" ( (binary_expression "uVar29 << 7 | uVar29 >> 0x19" (binary_expression "uVar29 << 7" identifier << number_literal) | (binary_expression "uVar29 >> 0x19" identifier >> number_literal)) )) + identifier)) ;) (expression_statement "bVar5 = *pbVar23;" (assignment_expression "bVar5 = *pbVar23" identifier = (pointer_expression "*pbVar23" * identifier)) ;) (expression_statement "uVar8 = (uint)bVar5;" (assignment_expression "uVar8 = (uint)bVar5" identifier = (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar23 = pbVar24;" (assignment_expression "pbVar23 = pbVar24" identifier = identifier) ;) }) while (parenthesized_expression "(bVar5 != 10)" ( (binary_expression "bVar5 != 10" identifier != number_literal) )) ;) }) (else_clause "else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }" else (compound_statement "{\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }" { (if_statement "if (bVar5 == 10) goto LAB_0001a500;" if (parenthesized_expression "(bVar5 == 10)" ( (binary_expression "bVar5 == 10" identifier == number_literal) )) (goto_statement "goto LAB_0001a500;" goto statement_identifier ;)) (expression_statement "pp_Var13 = __ctype_tolower_loc();" (assignment_expression "pp_Var13 = __ctype_tolower_loc()" identifier = (call_expression "__ctype_tolower_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "pbVar26 = pbVar24;" (assignment_expression "pbVar26 = pbVar24" identifier = identifier) ;) (do_statement "do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);" do (compound_statement "{\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  }" { (expression_statement "pbVar24 = pbVar26 + 1;" (assignment_expression "pbVar24 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (expression_statement "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];" (assignment_expression "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8]" identifier = (binary_expression "(uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8]" (parenthesized_expression "(uVar29 << 7 | uVar29 >> 0x19)" ( (binary_expression "uVar29 << 7 | uVar29 >> 0x19" (binary_expression "uVar29 << 7" identifier << number_literal) | (binary_expression "uVar29 >> 0x19" identifier >> number_literal)) )) + (subscript_expression "(*pp_Var13)[uVar8]" (parenthesized_expression "(*pp_Var13)" ( (pointer_expression "*pp_Var13" * identifier) )) [ identifier ]))) ;) (expression_statement "bVar5 = *pbVar26;" (assignment_expression "bVar5 = *pbVar26" identifier = (pointer_expression "*pbVar26" * identifier)) ;) (expression_statement "uVar8 = (uint)bVar5;" (assignment_expression "uVar8 = (uint)bVar5" identifier = (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar26 = pbVar24;" (assignment_expression "pbVar26 = pbVar24" identifier = identifier) ;) }) while (parenthesized_expression "(bVar5 != 10)" ( (binary_expression "bVar5 != 10" identifier != number_literal) )) ;) })))) }) (else_clause "else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }" else (compound_statement "{\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }" { (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "pbVar24 = local_90 + 1;" (assignment_expression "pbVar24 = local_90 + 1" identifier = (binary_expression "local_90 + 1" identifier + number_literal)) ;) (if_statement "if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }" if (parenthesized_expression "(bVar5 != 10)" ( (binary_expression "bVar5 != 10" identifier != number_literal) )) (compound_statement "{\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) (expression_statement "local_84 = (uint *)pbVar24;" (assignment_expression "local_84 = (uint *)pbVar24" identifier = (cast_expression "(uint *)pbVar24" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);" do (compound_statement "{\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  }" { (expression_statement "cVar7 = (char)uVar8;" (assignment_expression "cVar7 = (char)uVar8" identifier = (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }" if (parenthesized_expression "((uVar20 & 2) != 0)" ( (binary_expression "(uVar20 & 2) != 0" (parenthesized_expression "(uVar20 & 2)" ( (binary_expression "uVar20 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }" { (expression_statement "ppuVar12 = __ctype_b_loc();" (assignment_expression "ppuVar12 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);" (assignment_expression "bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1)" identifier = (pointer_expression "*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar12 + uVar8 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar12 + uVar8 * 2 + 1)" ( (binary_expression "(int)*ppuVar12 + uVar8 * 2 + 1" (binary_expression "(int)*ppuVar12 + uVar8 * 2" (cast_expression "(int)*ppuVar12" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar12" * identifier)) + (binary_expression "uVar8 * 2" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "puVar27 = local_84;" (assignment_expression "puVar27 = local_84" identifier = identifier) ;) (while_statement "while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }" while (parenthesized_expression "((bVar5 & 0x20) != 0)" ( (binary_expression "(bVar5 & 0x20) != 0" (parenthesized_expression "(bVar5 & 0x20)" ( (binary_expression "bVar5 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }" { (expression_statement "pbVar24 = (byte *)((int)puVar27 + 1);" (assignment_expression "pbVar24 = (byte *)((int)puVar27 + 1)" identifier = (cast_expression "(byte *)((int)puVar27 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar27 + 1)" ( (binary_expression "(int)puVar27 + 1" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;" if (parenthesized_expression "(*(byte *)puVar27 == 10)" ( (binary_expression "*(byte *)puVar27 == 10" (pointer_expression "*(byte *)puVar27" * (cast_expression "(byte *)puVar27" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (goto_statement "goto LAB_0001a0a0;" goto statement_identifier ;)) (expression_statement "bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);" (assignment_expression "bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1)" identifier = (pointer_expression "*(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1)" ( (binary_expression "(int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1" (binary_expression "(int)*ppuVar12 + (uint)*(byte *)puVar27 * 2" (cast_expression "(int)*ppuVar12" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar12" * identifier)) + (binary_expression "(uint)*(byte *)puVar27 * 2" (binary_expression "(uint)*(byte *)puVar27" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)puVar27" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) * number_literal)) + number_literal) ))))) ;) (expression_statement "puVar27 = (uint *)pbVar24;" (assignment_expression "puVar27 = (uint *)pbVar24" identifier = (cast_expression "(uint *)pbVar24" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) })) (expression_statement "uVar22 = uVar20 & 1;" (assignment_expression "uVar22 = uVar20 & 1" identifier = (binary_expression "uVar20 & 1" identifier & number_literal)) ;) (if_statement "if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n                      uVar22 = 1;\n                    }" { (expression_statement "uVar22 = 1;" (assignment_expression "uVar22 = 1" identifier = number_literal) ;) }) (else_clause "else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" else (if_statement "if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" if (parenthesized_expression "(cVar7 == '\t')" ( (binary_expression "cVar7 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) )) (compound_statement "{\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }" { (expression_statement "uVar22 = uVar21 - uVar25 % uVar21;" (assignment_expression "uVar22 = uVar21 - uVar25 % uVar21" identifier = (binary_expression "uVar21 - uVar25 % uVar21" identifier - (binary_expression "uVar25 % uVar21" identifier % identifier))) ;) (expression_statement "uVar8 = 0x20;" (assignment_expression "uVar8 = 0x20" identifier = number_literal) ;) (expression_statement "bVar31 = CARRY4(uVar25,uVar22);" (assignment_expression "bVar31 = CARRY4(uVar25,uVar22)" identifier = (call_expression "CARRY4(uVar25,uVar22)" identifier (argument_list "(uVar25,uVar22)" ( identifier , identifier )))) ;) (expression_statement "uVar25 = uVar25 + uVar22;" (assignment_expression "uVar25 = uVar25 + uVar22" identifier = (binary_expression "uVar25 + uVar22" identifier + identifier)) ;) (if_statement "if (bVar31) {\n                        uVar25 = 0;\n                      }" if (parenthesized_expression "(bVar31)" ( identifier )) (compound_statement "{\n                        uVar25 = 0;\n                      }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) })) }) (else_clause "else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" else (if_statement "if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" if (parenthesized_expression "(cVar7 == '\r')" ( (binary_expression "cVar7 == '\r'" identifier == (char_literal "'\r'" ' escape_sequence ')) )) (compound_statement "{\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }" { (expression_statement "uVar8 = 0xd;" (assignment_expression "uVar8 = 0xd" identifier = number_literal) ;) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) }) (else_clause "else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" else (if_statement "if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" if (parenthesized_expression "(cVar7 == '\b')" ( (binary_expression "cVar7 == '\b'" identifier == (char_literal "'\b'" ' escape_sequence ')) )) (compound_statement "{\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }" { (expression_statement "uVar8 = 8;" (assignment_expression "uVar8 = 8" identifier = number_literal) ;) (expression_statement "uVar25 = uVar25 - (uVar25 != 0);" (assignment_expression "uVar25 = uVar25 - (uVar25 != 0)" identifier = (binary_expression "uVar25 - (uVar25 != 0)" identifier - (parenthesized_expression "(uVar25 != 0)" ( (binary_expression "uVar25 != 0" identifier != number_literal) )))) ;) }) (else_clause "else {\n                      uVar25 = uVar25 + 1;\n                    }" else (compound_statement "{\n                      uVar25 = uVar25 + 1;\n                    }" { (expression_statement "uVar25 = uVar25 + 1;" (assignment_expression "uVar25 = uVar25 + 1" identifier = (binary_expression "uVar25 + 1" identifier + number_literal)) ;) }))))))))) (if_statement "if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }" { (expression_statement "pp_Var13 = __ctype_tolower_loc();" (assignment_expression "pp_Var13 = __ctype_tolower_loc()" identifier = (call_expression "__ctype_tolower_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);" (assignment_expression "uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8)" identifier = (binary_expression "(uint)*(byte *)(*pp_Var13 + uVar8)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*pp_Var13 + uVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*pp_Var13 + uVar8)" ( (binary_expression "*pp_Var13 + uVar8" (pointer_expression "*pp_Var13" * identifier) + identifier) ))))) ;) })) (do_statement "do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);" do (compound_statement "{\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    }" { (expression_statement "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;" (assignment_expression "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8" identifier = (binary_expression "(uVar29 << 7 | uVar29 >> 0x19) + uVar8" (parenthesized_expression "(uVar29 << 7 | uVar29 >> 0x19)" ( (binary_expression "uVar29 << 7 | uVar29 >> 0x19" (binary_expression "uVar29 << 7" identifier << number_literal) | (binary_expression "uVar29 >> 0x19" identifier >> number_literal)) )) + identifier)) ;) (expression_statement "uVar22 = uVar22 - 1;" (assignment_expression "uVar22 = uVar22 - 1" identifier = (binary_expression "uVar22 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) )) ;) (expression_statement "pbVar24 = (byte *)((int)local_84 + 1);" (assignment_expression "pbVar24 = (byte *)((int)local_84 + 1)" identifier = (cast_expression "(byte *)((int)local_84 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_84 + 1)" ( (binary_expression "(int)local_84 + 1" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar22 = *local_84;" (assignment_expression "uVar22 = *local_84" identifier = (pointer_expression "*local_84" * identifier)) ;) (expression_statement "uVar8 = (uint)(byte)uVar22;" (assignment_expression "uVar8 = (uint)(byte)uVar22" identifier = (cast_expression "(uint)(byte)uVar22" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)uVar22" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (expression_statement "local_84 = (uint *)pbVar24;" (assignment_expression "local_84 = (uint *)pbVar24" identifier = (cast_expression "(uint *)pbVar24" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "((byte)uVar22 != 10)" ( (binary_expression "(byte)uVar22 != 10" (cast_expression "(byte)uVar22" ( (type_descriptor "byte" type_identifier) ) identifier) != number_literal) )) ;) })) }))) }) (else_clause "else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }" else (compound_statement "{\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }" { (if_statement "if (uVar20 != 5) goto LAB_0001a398;" if (parenthesized_expression "(uVar20 != 5)" ( (binary_expression "uVar20 != 5" identifier != number_literal) )) (goto_statement "goto LAB_0001a398;" goto statement_identifier ;)) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "pbVar24 = local_90;" (assignment_expression "pbVar24 = local_90" identifier = identifier) ;) (while_statement "while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }" while (parenthesized_expression "(pbVar24 = pbVar24 + 1, (char)uVar8 != '\n')" ( (comma_expression "pbVar24 = pbVar24 + 1, (char)uVar8 != '\n'" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) , (binary_expression "(char)uVar8 != '\n'" (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\n'" ' escape_sequence '))) )) (compound_statement "{\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }" { (expression_statement "ppuVar12 = __ctype_b_loc();" (assignment_expression "ppuVar12 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }" if (parenthesized_expression "((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar12 + uVar8 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar12 + uVar8 * 2 + 1)" ( (binary_expression "(int)*ppuVar12 + uVar8 * 2 + 1" (binary_expression "(int)*ppuVar12 + uVar8 * 2" (cast_expression "(int)*ppuVar12" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar12" * identifier)) + (binary_expression "uVar8 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }" { (if_statement "if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }" { (expression_statement "pp_Var13 = __ctype_tolower_loc();" (assignment_expression "pp_Var13 = __ctype_tolower_loc()" identifier = (call_expression "__ctype_tolower_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar8 = (*pp_Var13)[uVar8];" (assignment_expression "uVar8 = (*pp_Var13)[uVar8]" identifier = (subscript_expression "(*pp_Var13)[uVar8]" (parenthesized_expression "(*pp_Var13)" ( (pointer_expression "*pp_Var13" * identifier) )) [ identifier ])) ;) })) (expression_statement "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;" (assignment_expression "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8" identifier = (binary_expression "(uVar29 << 7 | uVar29 >> 0x19) + uVar8" (parenthesized_expression "(uVar29 << 7 | uVar29 >> 0x19)" ( (binary_expression "uVar29 << 7 | uVar29 >> 0x19" (binary_expression "uVar29 << 7" identifier << number_literal) | (binary_expression "uVar29 >> 0x19" identifier >> number_literal)) )) + identifier)) ;) })) (expression_statement "uVar8 = (uint)*pbVar24;" (assignment_expression "uVar8 = (uint)*pbVar24" identifier = (binary_expression "(uint)*pbVar24" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) })) }))) (labeled_statement "LAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);" statement_identifier : (expression_statement "pbVar26 = pbVar24 + (-1 - (int)local_90);" (assignment_expression "pbVar26 = pbVar24 + (-1 - (int)local_90)" identifier = (binary_expression "pbVar24 + (-1 - (int)local_90)" identifier + (parenthesized_expression "(-1 - (int)local_90)" ( (binary_expression "-1 - (int)local_90" number_literal - (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) }))) (labeled_statement "LAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);" statement_identifier : (expression_statement "puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);" (assignment_expression "puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4)" identifier = (cast_expression "(uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4)" ( (binary_expression "DAT_0004d398 + (uVar29 % DAT_0004d394) * 4" identifier + (binary_expression "(uVar29 % DAT_0004d394) * 4" (parenthesized_expression "(uVar29 % DAT_0004d394)" ( (binary_expression "uVar29 % DAT_0004d394" identifier % identifier) )) * number_literal)) )))) ;)) (expression_statement "local_84 = puVar27;" (assignment_expression "local_84 = puVar27" identifier = identifier) ;) (if_statement "if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }" if (parenthesized_expression "((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20))" ( (binary_expression "(((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)" (parenthesized_expression "(((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))" ( (binary_expression "((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U)" (parenthesized_expression "((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0'))" ( (binary_expression "(pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')" (parenthesized_expression "(pbVar11 == pbVar24)" ( (binary_expression "pbVar11 == pbVar24" identifier == identifier) )) && (parenthesized_expression "((char)local_5c[0x10] != '\0')" ( (binary_expression "(char)local_5c[0x10] != '\0'" (cast_expression "(char)local_5c[0x10]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_5c[0x10]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(1 < DAT_0004d688 - 4U)" ( (binary_expression "1 < DAT_0004d688 - 4U" number_literal < (binary_expression "DAT_0004d688 - 4U" identifier - number_literal)) ))) )) && (parenthesized_expression "(local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)" ( (comma_expression "local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20" (assignment_expression "local_84 = (uint *)(DAT_0004d398 + -4)" identifier = (cast_expression "(uint *)(DAT_0004d398 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0004d398 + -4)" ( (binary_expression "DAT_0004d398 + -4" identifier + number_literal) )))) , (binary_expression "1 < uVar20" number_literal < identifier)) ))) )) (compound_statement "{\n            local_84 = puVar27;\n          }" { (expression_statement "local_84 = puVar27;" (assignment_expression "local_84 = puVar27" identifier = identifier) ;) })) (expression_statement "uVar8 = *local_84;" (assignment_expression "uVar8 = *local_84" identifier = (pointer_expression "*local_84" * identifier)) ;) (expression_statement "local_78 = (byte *)uVar8;" (assignment_expression "local_78 = (byte *)uVar8" identifier = (cast_expression "(byte *)uVar8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "joined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }" statement_identifier : (if_statement "if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }" if (parenthesized_expression "(local_78 != (byte *)0x0)" ( (binary_expression "local_78 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }" { (do_statement "do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );" do (compound_statement "{\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            }" { (expression_statement "puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);" (assignment_expression "puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c)" identifier = (cast_expression "(uint *)((int)local_78 * 0x10 + (int)local_7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_78 * 0x10 + (int)local_7c)" ( (binary_expression "(int)local_78 * 0x10 + (int)local_7c" (binary_expression "(int)local_78 * 0x10" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }" if (parenthesized_expression "(uVar29 == puVar27[1])" ( (binary_expression "uVar29 == puVar27[1]" identifier == (subscript_expression "puVar27[1]" identifier [ number_literal ])) )) (compound_statement "{\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }" { (expression_statement "__s1 = (void *)puVar27[2];" (assignment_expression "__s1 = (void *)puVar27[2]" identifier = (cast_expression "(void *)puVar27[2]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[2]" identifier [ number_literal ]))) ;) (if_statement "if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;" if (parenthesized_expression "((byte *)puVar27[3] == pbVar26)" ( (binary_expression "(byte *)puVar27[3] == pbVar26" (cast_expression "(byte *)puVar27[3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[3]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }" { (expression_statement "iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);" (assignment_expression "iVar30 = memcmp(__s1,local_90,(size_t)pbVar26)" identifier = (call_expression "memcmp(__s1,local_90,(size_t)pbVar26)" identifier (argument_list "(__s1,local_90,(size_t)pbVar26)" ( identifier , identifier , (cast_expression "(size_t)pbVar26" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (if_statement "if (iVar30 == 0) goto joined_r0x0001a144;" if (parenthesized_expression "(iVar30 == 0)" ( (binary_expression "iVar30 == 0" identifier == number_literal) )) (goto_statement "goto joined_r0x0001a144;" goto statement_identifier ;)) (if_statement "if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;" if (parenthesized_expression "(bVar33 && cVar4 == '\0')" ( (binary_expression "bVar33 && cVar4 == '\0'" identifier && (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) )) (goto_statement "goto code_r0x0001a1dc;" goto statement_identifier ;)) }) (else_clause "else if (uVar20 == 0) goto LAB_0001a0f0;" else (if_statement "if (uVar20 == 0) goto LAB_0001a0f0;" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a0f0;" goto statement_identifier ;)))) (expression_statement "cVar7 = FUN_0001c840(__s1,local_90);" (assignment_expression "cVar7 = FUN_0001c840(__s1,local_90)" identifier = (call_expression "FUN_0001c840(__s1,local_90)" identifier (argument_list "(__s1,local_90)" ( identifier , identifier )))) ;) (if_statement "if (cVar7 == '\0') goto joined_r0x0001a144;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto joined_r0x0001a144;" goto statement_identifier ;)) })) (labeled_statement "LAB_0001a0f0:\n              local_78 = (byte *)*puVar27;" statement_identifier : (expression_statement "local_78 = (byte *)*puVar27;" (assignment_expression "local_78 = (byte *)*puVar27" identifier = (cast_expression "(byte *)*puVar27" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar27" * identifier))) ;)) (if_statement "if (local_78 == (byte *)0x0) break;" if (parenthesized_expression "(local_78 == (byte *)0x0)" ( (binary_expression "local_78 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (if_statement "if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }" if (parenthesized_expression "(local_60 == local_64)" ( (binary_expression "local_60 == local_64" identifier == identifier) )) (compound_statement "{\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }" { (if_statement "if (0x3fffffe < local_60) goto LAB_0001a9c0;" if (parenthesized_expression "(0x3fffffe < local_60)" ( (binary_expression "0x3fffffe < local_60" number_literal < identifier) )) (goto_statement "goto LAB_0001a9c0;" goto statement_identifier ;)) (expression_statement "local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);" (assignment_expression "local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5)" identifier = (cast_expression "(byte *)FUN_00023ce0(local_7c,local_60 << 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00023ce0(local_7c,local_60 << 5)" identifier (argument_list "(local_7c,local_60 << 5)" ( identifier , (binary_expression "local_60 << 5" identifier << number_literal) ))))) ;) (expression_statement "uVar8 = *local_84;" (assignment_expression "uVar8 = *local_84" identifier = (pointer_expression "*local_84" * identifier)) ;) (expression_statement "local_60 = local_60 * 2;" (assignment_expression "local_60 = local_60 * 2" identifier = (binary_expression "local_60 * 2" identifier * number_literal)) ;) })) (expression_statement "puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);" (assignment_expression "puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c)" identifier = (cast_expression "(uint *)(local_64 * 0x10 + (int)local_7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64 * 0x10 + (int)local_7c)" ( (binary_expression "local_64 * 0x10 + (int)local_7c" (binary_expression "local_64 * 0x10" identifier * number_literal) + (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*puVar27 = uVar8;" (assignment_expression "*puVar27 = uVar8" (pointer_expression "*puVar27" * identifier) = identifier) ;) (expression_statement "puVar27[1] = uVar29;" (assignment_expression "puVar27[1] = uVar29" (subscript_expression "puVar27[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[2] = (uint)local_90;" (assignment_expression "puVar27[2] = (uint)local_90" (subscript_expression "puVar27[2]" identifier [ number_literal ]) = (cast_expression "(uint)local_90" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar27[3] = (uint)pbVar26;" (assignment_expression "puVar27[3] = (uint)pbVar26" (subscript_expression "puVar27[3]" identifier [ number_literal ]) = (cast_expression "(uint)pbVar26" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*local_84 = local_64;" (assignment_expression "*local_84 = local_64" (pointer_expression "*local_84" * identifier) = identifier) ;) (expression_statement "local_78 = (byte *)local_64;" (assignment_expression "local_78 = (byte *)local_64" identifier = (cast_expression "(byte *)local_64" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (labeled_statement "joined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }" statement_identifier : (if_statement "if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }" if (parenthesized_expression "(local_8c == (byte *)local_6c)" ( (binary_expression "local_8c == (byte *)local_6c" identifier == (cast_expression "(byte *)local_6c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }" { (if_statement "if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;" if (parenthesized_expression "(((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18)))" ( (binary_expression "((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))" (parenthesized_expression "((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c))" ( (binary_expression "(0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)" (parenthesized_expression "(0x2aaaaaa9 < (int)local_8c)" ( (binary_expression "0x2aaaaaa9 < (int)local_8c" number_literal < (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)" ( (comma_expression "local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c" (assignment_expression "local_6c = (int)local_8c * 2 - iVar18" identifier = (binary_expression "(int)local_8c * 2 - iVar18" (binary_expression "(int)local_8c * 2" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - identifier)) , (binary_expression "0x1ffffffe < local_6c" number_literal < identifier)) ))) )) || (parenthesized_expression "(0x1ffffffe < (uint)((int)local_8c - iVar18))" ( (binary_expression "0x1ffffffe < (uint)((int)local_8c - iVar18)" number_literal < (call_expression "(uint)((int)local_8c - iVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_8c - iVar18)" ( (binary_expression "(int)local_8c - iVar18" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ))) )) (goto_statement "goto LAB_0001a9c0;" goto statement_identifier ;)) (expression_statement "local_68 = FUN_00023ce0(local_68,local_6c * 4);" (assignment_expression "local_68 = FUN_00023ce0(local_68,local_6c * 4)" identifier = (call_expression "FUN_00023ce0(local_68,local_6c * 4)" identifier (argument_list "(local_68,local_6c * 4)" ( identifier , (binary_expression "local_6c * 4" identifier * number_literal) )))) ;) (expression_statement "iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);" (assignment_expression "iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4)" identifier = (call_expression "FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4)" identifier (argument_list "((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4)" ( (binary_expression "(int)local_80 + iVar18 * 4" (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar18 * 4" identifier * number_literal)) , (binary_expression "(local_6c - iVar18) * 4" (parenthesized_expression "(local_6c - iVar18)" ( (binary_expression "local_6c - iVar18" identifier - identifier) )) * number_literal) )))) ;) (expression_statement "local_80 = (byte *)(iVar30 + iVar18 * -4);" (assignment_expression "local_80 = (byte *)(iVar30 + iVar18 * -4)" identifier = (cast_expression "(byte *)(iVar30 + iVar18 * -4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + iVar18 * -4)" ( (binary_expression "iVar30 + iVar18 * -4" identifier + (binary_expression "iVar18 * -4" identifier * number_literal)) )))) ;) }))) (expression_statement "*(byte **)((int)local_80 + (int)local_8c * 4) = local_90;" (assignment_expression "*(byte **)((int)local_80 + (int)local_8c * 4) = local_90" (pointer_expression "*(byte **)((int)local_80 + (int)local_8c * 4)" * (cast_expression "(byte **)((int)local_80 + (int)local_8c * 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_80 + (int)local_8c * 4)" ( (binary_expression "(int)local_80 + (int)local_8c * 4" (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_8c * 4" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) = identifier) ;) (expression_statement "*(byte **)(local_68 + (int)local_8c * 4) = local_78;" (assignment_expression "*(byte **)(local_68 + (int)local_8c * 4) = local_78" (pointer_expression "*(byte **)(local_68 + (int)local_8c * 4)" * (cast_expression "(byte **)(local_68 + (int)local_8c * 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_68 + (int)local_8c * 4)" ( (binary_expression "local_68 + (int)local_8c * 4" identifier + (binary_expression "(int)local_8c * 4" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) = identifier) ;) (expression_statement "local_8c = (byte *)((int)local_8c + 1);" (assignment_expression "local_8c = (byte *)((int)local_8c + 1)" identifier = (cast_expression "(byte *)((int)local_8c + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + 1)" ( (binary_expression "(int)local_8c + 1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_90 = pbVar24;" (assignment_expression "local_90 = pbVar24" identifier = identifier) ;) (if_statement "if (pbVar28 <= pbVar24) goto LAB_0001a520;" if (parenthesized_expression "(pbVar28 <= pbVar24)" ( (binary_expression "pbVar28 <= pbVar24" identifier <= identifier) )) (goto_statement "goto LAB_0001a520;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "local_8c = (byte *)0x0;" (assignment_expression "local_8c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0001a520:\n      local_5c[5] = (int)local_8c;" statement_identifier : (expression_statement "local_5c[5] = (int)local_8c;" (assignment_expression "local_5c[5] = (int)local_8c" (subscript_expression "local_5c[5]" identifier [ number_literal ]) = (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "iVar30 = 0;" (assignment_expression "iVar30 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }" { (if_statement "if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }" if (parenthesized_expression "((byte *)local_6c == local_8c)" ( (binary_expression "(byte *)local_6c == local_8c" (cast_expression "(byte *)local_6c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) (compound_statement "{\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }" { (if_statement "if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;" if (parenthesized_expression "(((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18))" ( (binary_expression "((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)" (parenthesized_expression "((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              )" ( (binary_expression "(0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)" (parenthesized_expression "(0x2aaaaaa9 < (int)local_6c)" ( (binary_expression "0x2aaaaaa9 < (int)local_6c" number_literal < (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)" ( (comma_expression "uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20" (assignment_expression "uVar20 = local_6c * 2 - iVar18" identifier = (binary_expression "local_6c * 2 - iVar18" (binary_expression "local_6c * 2" identifier * number_literal) - identifier)) , (binary_expression "0x1ffffffe < uVar20" number_literal < identifier)) ))) )) || (parenthesized_expression "(0x1ffffffe < local_6c - iVar18)" ( (binary_expression "0x1ffffffe < local_6c - iVar18" number_literal < (binary_expression "local_6c - iVar18" identifier - identifier)) ))) )) (goto_statement "goto LAB_0001a9c0;" goto statement_identifier ;)) (expression_statement "iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);" (assignment_expression "iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4)" identifier = (call_expression "FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4)" identifier (argument_list "((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4)" ( (binary_expression "(int)local_80 + iVar18 * 4" (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar18 * 4" identifier * number_literal)) , (binary_expression "(uVar20 - iVar18) * 4" (parenthesized_expression "(uVar20 - iVar18)" ( (binary_expression "uVar20 - iVar18" identifier - identifier) )) * number_literal) )))) ;) (expression_statement "local_80 = (byte *)(iVar18 * -4 + iVar14);" (assignment_expression "local_80 = (byte *)(iVar18 * -4 + iVar14)" identifier = (cast_expression "(byte *)(iVar18 * -4 + iVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 * -4 + iVar14)" ( (binary_expression "iVar18 * -4 + iVar14" (binary_expression "iVar18 * -4" identifier * number_literal) + identifier) )))) ;) (expression_statement "puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);" (assignment_expression "puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4)" identifier = (cast_expression "(undefined4 *)((int)local_80 + (int)local_8c * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_80 + (int)local_8c * 4)" ( (binary_expression "(int)local_80 + (int)local_8c * 4" (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_8c * 4" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "*puVar9 = pbVar24;" (assignment_expression "*puVar9 = pbVar24" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "local_6c = uVar20;" (assignment_expression "local_6c = uVar20" identifier = identifier) ;) }) (else_clause "else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }" else (compound_statement "{\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }" { (expression_statement "puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);" (assignment_expression "puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4)" identifier = (cast_expression "(undefined4 *)((int)local_80 + (int)local_8c * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_80 + (int)local_8c * 4)" ( (binary_expression "(int)local_80 + (int)local_8c * 4" (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_8c * 4" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "*puVar9 = pbVar24;" (assignment_expression "*puVar9 = pbVar24" (pointer_expression "*puVar9" * identifier) = identifier) ;) }))) (if_statement "if (pbVar11 == pbVar24) break;" if (parenthesized_expression "(pbVar11 == pbVar24)" ( (binary_expression "pbVar11 == pbVar24" identifier == identifier) )) (break_statement "break;" break ;)) (if_statement "if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;" if (parenthesized_expression "(((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0'))" ( (binary_expression "((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')" (parenthesized_expression "((int)DAT_0004d69c <= iVar30)" ( (binary_expression "(int)DAT_0004d69c <= iVar30" (cast_expression "(int)DAT_0004d69c" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) && (parenthesized_expression "(DAT_0004d68c != '\0')" ( (binary_expression "DAT_0004d68c != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0001a618;" goto statement_identifier ;)) (expression_statement "local_8c = (byte *)((int)local_8c + 1);" (assignment_expression "local_8c = (byte *)((int)local_8c + 1)" identifier = (cast_expression "(byte *)((int)local_8c + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + 1)" ( (binary_expression "(int)local_8c + 1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar28 = pbVar24;" (assignment_expression "pbVar28 = pbVar24" identifier = identifier) ;) (do_statement "do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);" do (compound_statement "{\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        }" { (expression_statement "pbVar24 = pbVar28 + 1;" (assignment_expression "pbVar24 = pbVar28 + 1" identifier = (binary_expression "pbVar28 + 1" identifier + number_literal)) ;) (expression_statement "bVar5 = *pbVar28;" (assignment_expression "bVar5 = *pbVar28" identifier = (pointer_expression "*pbVar28" * identifier)) ;) (expression_statement "pbVar28 = pbVar24;" (assignment_expression "pbVar28 = pbVar24" identifier = identifier) ;) }) while (parenthesized_expression "(bVar5 != 10)" ( (binary_expression "bVar5 != 10" identifier != number_literal) )) ;) (expression_statement "iVar30 = iVar30 + 1;" (assignment_expression "iVar30 = iVar30 + 1" identifier = (binary_expression "iVar30 + 1" identifier + number_literal)) ;) })) (if_statement "if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }" if (parenthesized_expression "(((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U))" ( (binary_expression "((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)" (parenthesized_expression "((char)local_5c[0x10] != '\0')" ( (binary_expression "(char)local_5c[0x10] != '\0'" (cast_expression "(char)local_5c[0x10]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_5c[0x10]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(1 < DAT_0004d688 - 4U)" ( (binary_expression "1 < DAT_0004d688 - 4U" number_literal < (binary_expression "DAT_0004d688 - 4U" identifier - number_literal)) ))) )) (compound_statement "{\n        *puVar9 = pbVar11 + -1;\n      }" { (expression_statement "*puVar9 = pbVar11 + -1;" (assignment_expression "*puVar9 = pbVar11 + -1" (pointer_expression "*puVar9" * identifier) = (binary_expression "pbVar11 + -1" identifier + number_literal)) ;) })) (labeled_statement "LAB_0001a618:\n      local_5c[3] = (int)local_80;" statement_identifier : (expression_statement "local_5c[3] = (int)local_80;" (assignment_expression "local_5c[3] = (int)local_80" (subscript_expression "local_5c[3]" identifier [ number_literal ]) = (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "piVar15 = local_5c + 0x2c;" (assignment_expression "piVar15 = local_5c + 0x2c" identifier = (binary_expression "local_5c + 0x2c" identifier + number_literal)) ;) (expression_statement "DAT_0004d390 = local_7c;" (assignment_expression "DAT_0004d390 = local_7c" identifier = identifier) ;) (expression_statement "local_5c[6] = (int)local_8c;" (assignment_expression "local_5c[6] = (int)local_8c" (subscript_expression "local_5c[6]" identifier [ number_literal ]) = (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_5c[7] = local_6c;" (assignment_expression "local_5c[7] = local_6c" (subscript_expression "local_5c[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_5c[0xb] = local_68;" (assignment_expression "local_5c[0xb] = local_68" (subscript_expression "local_5c[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "DAT_0004d388 = local_60;" (assignment_expression "DAT_0004d388 = local_60" identifier = identifier) ;) (expression_statement "DAT_0004d38c = local_64;" (assignment_expression "DAT_0004d38c = local_64" identifier = identifier) ;) (expression_statement "local_5c = piVar15;" (assignment_expression "local_5c = piVar15" identifier = identifier) ;) (if_statement "if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }" if (parenthesized_expression "(param_1 + 0x72 == piVar15)" ( (binary_expression "param_1 + 0x72 == piVar15" (binary_expression "param_1 + 0x72" identifier + number_literal) == identifier) )) (compound_statement "{\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }" { (expression_statement "param_1[0x57] = local_64;" (assignment_expression "param_1[0x57] = local_64" (subscript_expression "param_1[0x57]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x2b] = local_64;" (assignment_expression "param_1[0x2b] = local_64" (subscript_expression "param_1[0x2b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "free(local_7c);" (call_expression "free(local_7c)" identifier (argument_list "(local_7c)" ( identifier ))) ;) (expression_statement "free((void *)(DAT_0004d398 + -4));" (call_expression "free((void *)(DAT_0004d398 + -4))" identifier (argument_list "((void *)(DAT_0004d398 + -4))" ( (cast_expression "(void *)(DAT_0004d398 + -4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0004d398 + -4)" ( (binary_expression "DAT_0004d398 + -4" identifier + number_literal) ))) ))) ;) (return_statement "return bVar32;" return identifier ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (labeled_statement "LAB_0001a9c0:\n                    /* WARNING: Subroutine does not return */\n  FUN_00023f50();" statement_identifier : comment (expression_statement "FUN_00023f50();" (call_expression "FUN_00023f50()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "code_r0x0001a1dc:\n  local_78 = (byte *)*puVar27;" statement_identifier : (expression_statement "local_78 = (byte *)*puVar27;" (assignment_expression "local_78 = (byte *)*puVar27" identifier = (cast_expression "(byte *)*puVar27" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar27" * identifier))) ;)) (goto_statement "goto joined_r0x0001a0d6;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n\n_Bool read_files(file_data *filevec,_Bool pretend_binary)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  undefined4 uVar3;\n  char *s1;\n  ushort *puVar4;\n  size_t sVar5;\n  DIFF_white_space DVar6;\n  _Bool _Var7;\n  _Bool _Var8;\n  uint uVar9;\n  undefined4 *p;\n  undefined4 *puVar10;\n  size_t sVar11;\n  void *pvVar12;\n  byte *pbVar13;\n  ushort **ppuVar14;\n  __int32_t **pp_Var15;\n  char **ppcVar16;\n  size_t **ppsVar17;\n  bool bVar18;\n  lin lVar19;\n  size_t *psVar20;\n  undefined4 *puVar21;\n  int iVar22;\n  char cVar23;\n  size_t *psVar24;\n  uint uVar25;\n  undefined4 *puVar26;\n  lin lVar27;\n  uint uVar28;\n  DIFF_white_space DVar29;\n  byte *pbVar30;\n  size_t *psVar31;\n  byte *pbVar33;\n  equivclass *peVar34;\n  size_t *psVar35;\n  size_t *psVar36;\n  int iVar37;\n  bool bVar38;\n  bool bVar39;\n  size_t *local_90;\n  size_t *local_8c;\n  uint local_88;\n  size_t *local_84;\n  char **local_80;\n  equivclass *local_7c;\n  size_t *local_78;\n  uint local_74;\n  size_t *local_70;\n  uint local_6c;\n  lin *local_68;\n  uint local_64;\n  uint local_60;\n  size_t **local_5c;\n  byte *pbVar32;\n  \n  _Var8 = text;\n  _Var7 = sip(filevec,text || pretend_binary);\n  bVar18 = _Var7 || pretend_binary;\n  if (filevec->desc == filevec[1].desc) {\n    filevec[1].buffer = filevec->buffer;\n    filevec[1].bufsize = filevec->bufsize;\n    filevec[1].buffered = filevec->buffered;\n    if (bVar18) {\n      return bVar18;\n    }\n  }\n  else {\n    _Var8 = sip(filevec + 1,pretend_binary || (_Var8 || _Var7));\n    if (bVar18 || _Var8) {\n      return bVar18 || _Var8;\n    }\n  }\n  slurp(filevec);\n  prepare_text(filevec);\n  if (filevec->desc == filevec[1].desc) {\n    local_78 = filevec->buffer;\n    filevec[1].buffer = local_78;\n    filevec[1].bufsize = filevec->bufsize;\n    uVar28 = filevec->buffered;\n    filevec[1].buffered = uVar28;\n    filevec[1].missing_newline = filevec->missing_newline;\n    local_88 = uVar28;\nLAB_000199ff:\n    psVar31 = (size_t *)((int)local_78 + uVar28);\n    local_80 = (char **)(output_style - OUTPUT_ED);\n    local_90 = local_78;\n    local_84 = (size_t *)(local_88 + (int)local_78);\n    local_8c = psVar31;\n    lVar19 = horizon_lines;\n    local_7c = (equivclass *)psVar31;\n  }\n  else {\n    slurp(filevec + 1);\n    prepare_text(filevec + 1);\n    local_88 = filevec->buffered;\n    local_90 = filevec->buffer;\n    local_78 = filevec[1].buffer;\n    uVar28 = filevec[1].buffered;\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (size_t *)((int)local_90 + local_88);\n    local_7c = (equivclass *)((int)local_78 + uVar28);\n    if (local_88 < uVar28) {\n      *(byte *)local_84 = ~*(byte *)((int)local_78 + local_88);\n    }\n    else {\n      *(byte *)local_7c = ~*(byte *)((int)local_90 + uVar28);\n    }\n    psVar31 = local_90;\n    local_8c = local_78;\n    if (*local_78 == *local_90) {\n      do {\n        local_8c = local_8c + 1;\n        psVar31 = psVar31 + 1;\n      } while (*psVar31 == *local_8c);\n    }\n    if ((byte)*local_8c == (byte)*psVar31) {\n      do {\n        local_8c = (size_t *)((int)local_8c + 1);\n        psVar31 = (size_t *)((int)psVar31 + 1);\n      } while (*(byte *)psVar31 == *(byte *)local_8c);\n    }\n    local_80 = (char **)(output_style - OUTPUT_ED);\n    lVar19 = horizon_lines;\n    if ((1 < local_80) &&\n       ((size_t *)((int)local_90 + (local_88 - filevec->missing_newline)) < psVar31 !=\n        (size_t *)((int)local_78 + (uVar28 - filevec[1].missing_newline)) < local_8c)) {\n      local_8c = (size_t *)((int)local_8c + -1);\n      psVar31 = (size_t *)((int)psVar31 + -1);\n    }\n  }\n  for (; uVar9 = local_88, lVar27 = horizon_lines, psVar31 != local_90;\n      psVar31 = (size_t *)((int)psVar31 + -1)) {\n    while (*(byte *)((int)psVar31 + -1) == 10) {\n      if (lVar19 == 0) goto LAB_00019a73;\n      psVar31 = (size_t *)((int)psVar31 + -1);\n      local_8c = (size_t *)((int)local_8c + -1);\n      lVar19 = lVar19 + -1;\n      if (psVar31 == local_90) goto LAB_00019a73;\n    }\n    local_8c = (size_t *)((int)local_8c + -1);\n  }\nLAB_00019a73:\n  filevec->prefix_end = (char *)psVar31;\n  filevec[1].prefix_end = (char *)local_8c;\n  if ((local_80 < 2) ||\n     (local_70 = (size_t *)local_7c, psVar35 = local_84,\n     filevec->missing_newline == filevec[1].missing_newline)) {\n    psVar35 = (size_t *)((local_88 - uVar28) + (int)psVar31);\n    if (local_88 < uVar28) {\n      psVar35 = psVar31;\n    }\n    if ((psVar35 == local_84) || (*(byte *)((int)local_7c + -1) != *(byte *)((int)local_84 + -1))) {\n      local_80 = (char **)local_7c;\n      psVar20 = local_84;\n    }\n    else {\n      psVar36 = (size_t *)((int)local_7c + ((int)psVar35 - (int)local_84));\n      psVar35 = local_84;\n      peVar34 = local_7c;\n      do {\n        psVar24 = (size_t *)((int)peVar34 + -1);\n        psVar20 = (size_t *)((int)psVar35 + -1);\n        local_80 = (char **)psVar36;\n        if (psVar24 == psVar36) break;\n        pbVar32 = (byte *)((int)peVar34 + -2);\n        pbVar13 = (byte *)((int)psVar35 + -2);\n        psVar35 = psVar20;\n        local_80 = (char **)psVar24;\n        peVar34 = (equivclass *)psVar24;\n      } while (*pbVar13 == *pbVar32);\n    }\n    psVar35 = psVar20;\n    if ((psVar20 == local_90) || (*(byte *)((int)psVar20 + -1) == 10)) {\n      if ((char **)local_78 != local_80) {\n        lVar27 = lVar27 + (uint)(*(byte *)((int)local_80 + -1) != 10);\n      }\n    }\n    else {\n      lVar27 = lVar27 + 1;\n    }\n    for (; (psVar35 != local_84 && (lVar27 != 0)); lVar27 = lVar27 + -1) {\n      do {\n        psVar36 = (size_t *)((int)psVar35 + 1);\n        sVar11 = *psVar35;\n        psVar35 = psVar36;\n      } while ((byte)sVar11 != 10);\n    }\n    local_70 = (size_t *)(((int)psVar35 - (int)psVar20) + (int)local_80);\n  }\n  bVar18 = no_diff_means_no_output == false;\n  filevec->suffix_begin = (char *)psVar35;\n  filevec[1].suffix_begin = (char *)local_70;\n  if ((((bVar18) || (function_regexp.fastmap != (char *)0x0)) || (0x1ffffffe < context)) ||\n     (local_88 <= (uint)context)) {\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar9 = uVar9 >> 5;\n    if (uVar9 == 0) {\n      uVar9 = 1;\n    }\n    local_84 = (size_t *)(uVar9 + 5);\n  }\n  else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar28 = (uint)((int)psVar35 - (int)psVar31) >> 5;\n    if (uVar28 == 0) {\n      uVar28 = 1;\n    }\n    uVar9 = (uint)((int)local_84 - (int)psVar35) >> 5;\n    if (uVar9 == 0) {\n      uVar9 = 1;\n    }\n    uVar25 = 1;\n    if (0 < context) {\n      do {\n        local_88 = uVar25 * 2;\n        iVar22 = uVar25 * -2;\n        uVar25 = local_88;\n      } while (SBORROW4(context,local_88) == context + iVar22 < 0);\n      local_74 = local_88 - 1;\n    }\n    iVar22 = uVar9 + 5;\n    if (context <= (int)(uVar9 + 5)) {\n      iVar22 = context;\n    }\n    local_84 = (size_t *)(iVar22 + local_88 + uVar28 + 5);\n  }\n  p = (undefined4 *)xmalloc((int)local_84 << 2);\n  psVar31 = (size_t *)filevec->prefix_end;\n  if (((no_diff_means_no_output == false) || (psVar35 != psVar31)) ||\n     (psVar35 = (size_t *)filevec[1].prefix_end, local_70 != psVar35)) {\n    if (local_90 == psVar31) {\n      psVar35 = (size_t *)filevec[1].prefix_end;\n      goto LAB_0001a84f;\n    }\n    uVar28 = (uint)local_84;\n    local_8c = (size_t *)0;\n    psVar35 = local_90;\n    do {\n      uVar9 = (uint)local_8c;\n      local_8c = (size_t *)(uVar9 + 1);\n      local_84 = (size_t *)uVar28;\n      if ((local_74 & uVar9) == uVar28) {\n        if (0xffffffe < uVar28) goto LAB_0001a9c0;\n        local_84 = (size_t *)(uVar28 * 2);\n        p = (undefined4 *)xrealloc(p,uVar28 * 8);\n      }\n      p[local_74 & uVar9] = psVar35;\n      psVar20 = psVar35;\n      do {\n        psVar35 = (size_t *)((int)psVar20 + 1);\n        sVar11 = *psVar20;\n        psVar20 = psVar35;\n      } while ((byte)sVar11 != 10);\n      uVar28 = (uint)local_84;\n    } while (psVar35 != psVar31);\n    local_6c = (int)local_70 - (int)filevec[1].prefix_end;\n    bVar18 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar18) && (local_88 = context, (int)local_8c <= context)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar28 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar28 = (uint)((int)psVar31 - (int)local_90) / uVar9;\n    }\n  }\n  else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)psVar35;\n    if (local_88 == 0) {\n      local_8c = (size_t *)0x0;\n      uVar28 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar28 = 0x20;\n      local_8c = (size_t *)0x0;\n      if (context < 1) {\n        local_88 = context;\n      }\n    }\n  }\n  uVar9 = (uint)((int)local_7c - (int)local_70) / uVar28;\n  if (uVar9 == 0) {\n    uVar9 = 1;\n  }\n  if (0xe38e389 < uVar9) {\n    uVar9 = 0xe38e389;\n  }\n  iVar22 = uVar9 + 5;\n  if (context < (int)(uVar9 + 5)) {\n    iVar22 = context;\n  }\n  uVar9 = 1;\n  if (local_6c / uVar28 != 0) {\n    uVar9 = local_6c / uVar28;\n  }\n  if (0xe38e389 < uVar9) {\n    uVar9 = 0xe38e389;\n  }\n  uVar28 = local_88 + 5 + uVar9 + iVar22;\n  bVar18 = (int)uVar28 < (int)local_88 || 0x1ffffffe < uVar28;\n  if (bVar18) goto LAB_0001a9c0;\n  puVar10 = (undefined4 *)xmalloc(uVar28 * 4);\n  if ((size_t *)local_88 == local_8c) {\n    if (local_88 != 0) goto LAB_00019df3;\n  }\n  else if (0 < (int)local_88) {\n    uVar25 = (int)local_8c - context;\n    uVar9 = uVar25;\n    do {\n      puVar10[uVar9 - uVar25] = p[uVar9 & local_74];\n      uVar9 = uVar9 + 1;\n    } while (local_88 + uVar25 != uVar9);\n    puVar21 = p;\n    puVar26 = puVar10;\n    do {\n      uVar3 = *puVar26;\n      puVar26 = puVar26 + 1;\n      *puVar21 = uVar3;\n      puVar21 = puVar21 + 1;\n    } while (puVar10 + local_88 != puVar26);\nLAB_00019df3:\n    iVar22 = 0;\n    do {\n      puVar10[iVar22] = (byte *)((p[iVar22] - (int)local_90) + (int)local_78);\n      iVar22 = iVar22 + 1;\n    } while (iVar22 < (int)local_88);\n  }\n  filevec[1].linbuf = (char **)(puVar10 + local_88);\n  filevec->linbuf = (char **)(p + local_88);\n  filevec[1].linbuf_base = -local_88;\n  filevec->linbuf_base = -local_88;\n  filevec->alloc_lines = (int)local_84 - local_88;\n  uVar9 = ((int)local_84 - local_88) + 1 + (uVar28 - local_88);\n  filevec[1].alloc_lines = uVar28 - local_88;\n  equivs_alloc = uVar9;\n  filevec[1].prefix_lines = (lin)local_8c;\n  filevec->prefix_lines = (lin)local_8c;\n  if (0x7fffffe < uVar9) {\nLAB_0001a9c0:\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  equivs = (equivclass *)xmalloc(uVar9 * 0x10);\n  equivs_index = 1;\n  if ((uint)(equivs_alloc / 3) < 0x201) {\n    nbuckets = 0x1fd;\n    sVar11 = 0x7f8;\n  }\n  else {\n    iVar22 = 9;\n    do {\n      iVar37 = iVar22;\n      iVar22 = iVar37 + 1;\n      uVar28 = 1 << ((byte)iVar22 & 0x1f);\n    } while (uVar28 < (uint)(equivs_alloc / 3));\n    nbuckets = uVar28 - ""[iVar37 + 1];\n    if (0x1ffffffe < nbuckets) goto LAB_0001a9c0;\n    sVar11 = nbuckets * 4 + 4;\n  }\n  pvVar12 = zalloc(sVar11);\n  buckets = (lin *)((int)pvVar12 + 4);\n  local_5c = &filevec->buffer;\n  do {\n    local_80 = (char **)local_5c[3];\n    iVar22 = (int)local_5c[4];\n    psVar31 = local_5c[8];\n    local_6c = (uint)local_5c[7];\n    local_68 = (lin *)xmalloc(local_6c << 2);\n    _Var8 = ignore_case;\n    DVar6 = ignore_white_space;\n    pbVar32 = (byte *)local_5c[10];\n    local_7c = equivs;\n    local_64 = equivs_index;\n    local_60 = equivs_alloc;\n    pbVar13 = (byte *)((int)local_5c[2] + (int)*local_5c);\n    bVar39 = ignore_white_space == IGNORE_NO_WHITE_SPACE;\n    if (psVar31 < pbVar32) {\n      local_8c = (size_t *)0x0;\n      local_90 = psVar31;\n      do {\n        sVar11 = tabsize;\n        bVar2 = (byte)*local_90;\n        uVar28 = (uint)bVar2;\n        psVar31 = (size_t *)((int)local_90 + 1);\n        if (DVar6 == IGNORE_SPACE_CHANGE) {\n          if (bVar2 != 10) {\n            ppuVar14 = __ctype_b_loc();\n            uVar9 = 0;\n            puVar4 = *ppuVar14;\n            do {\n              pbVar33 = (byte *)psVar31;\n              if ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0) {\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;\n              }\n              uVar25 = uVar28;\n              if (_Var8 != false) {\n                pp_Var15 = __ctype_tolower_loc();\n                uVar25 = (*pp_Var15)[uVar28];\n              }\n              bVar2 = *(byte *)psVar31;\n              uVar28 = (uint)bVar2;\n              psVar31 = (size_t *)((int)psVar31 + 1);\n              uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar25;\n            } while (bVar2 != 10);\n            goto LAB_0001a0a0;\n          }\nLAB_0001a500:\n          pbVar33 = (byte *)0x0;\n          uVar9 = 0;\n        }\n        else {\n          if (DVar6 < IGNORE_ALL_SPACE) {\n            if (DVar6 == IGNORE_NO_WHITE_SPACE) {\nLAB_0001a398:\n              if (_Var8 == false) {\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n              else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n            }\n            else {\n              uVar9 = 0;\n              psVar31 = (size_t *)((int)local_90 + 1);\n              if (bVar2 != 10) {\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }\n            }\n          }\n          else {\n            if (DVar6 != IGNORE_ALL_SPACE) goto LAB_0001a398;\n            uVar9 = 0;\n            psVar31 = local_90;\n            while (psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n') {\n              ppuVar14 = __ctype_b_loc();\n              if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }\n              uVar28 = (uint)*(byte *)psVar31;\n            }\n          }\nLAB_0001a0a0:\n          pbVar33 = (byte *)((int)psVar31 + (-1 - (int)local_90));\n        }\nLAB_0001a0a9:\n        puVar1 = (uint *)(buckets + uVar9 % nbuckets);\n        local_84 = puVar1;\n        if (((((size_t *)pbVar13 == psVar31) && (*(_Bool *)(local_5c + 0x10) != false)) &&\n            (1 < output_style - OUTPUT_ED)) &&\n           (local_84 = (size_t *)(buckets + -1), IGNORE_TAB_EXPANSION < DVar6)) {\n          local_84 = puVar1;\n        }\n        uVar28 = *local_84;\n        local_78 = (size_t *)uVar28;\njoined_r0x0001a0d6:\n        if (local_78 != (size_t *)0x0) {\n          do {\n            peVar34 = local_7c + (int)local_78;\n            if (uVar9 == peVar34->hash) {\n              s1 = peVar34->line;\n              if ((byte *)peVar34->length == pbVar33) {\n                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);\n                if (iVar37 == 0) goto joined_r0x0001a144;\n                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;\n              }\n              else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;\n              _Var7 = lines_differ(s1,(char *)local_90);\n              if (!_Var7) goto joined_r0x0001a144;\n            }\nLAB_0001a0f0:\n            local_78 = (size_t *)peVar34->next;\n            if (local_78 == (size_t *)0x0) break;\n          } while( true );\n        }\n        if (local_60 == local_64) {\n          if (0x3fffffe < local_60) goto LAB_0001a9c0;\n          local_7c = (equivclass *)xrealloc(local_7c,local_60 << 5);\n          uVar28 = *local_84;\n          local_60 = local_60 * 2;\n        }\n        peVar34 = local_7c + local_64;\n        peVar34->next = uVar28;\n        peVar34->hash = uVar9;\n        peVar34->line = (char *)local_90;\n        peVar34->length = (size_t)pbVar33;\n        *local_84 = local_64;\n        local_78 = (size_t *)local_64;\n        local_64 = local_64 + 1;\njoined_r0x0001a144:\n        if (local_8c == (size_t *)local_6c) {\n          if (((0x2aaaaaa9 < (int)local_8c) ||\n              (local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c)) ||\n             (0x1ffffffe < (uint)((int)local_8c - iVar22))) goto LAB_0001a9c0;\n          local_68 = (lin *)xrealloc(local_68,local_6c * 4);\n          pvVar12 = xrealloc(local_80 + iVar22,(local_6c - iVar22) * 4);\n          local_80 = (char **)((int)pvVar12 + iVar22 * -4);\n        }\n        local_80[(int)local_8c] = (char *)local_90;\n        local_68[(int)local_8c] = (lin)local_78;\n        local_8c = (size_t *)((int)local_8c + 1);\n        local_90 = psVar31;\n        if (pbVar32 <= psVar31) goto LAB_0001a520;\n      } while( true );\n    }\n    local_8c = (size_t *)0x0;\nLAB_0001a520:\n    local_5c[5] = local_8c;\n    iVar37 = 0;\n    while ((size_t *)local_6c != local_8c) {\n      ppcVar16 = local_80 + (int)local_8c;\n      *ppcVar16 = (char *)psVar31;\n      if ((size_t *)pbVar13 == psVar31) goto LAB_0001a5e6;\nLAB_0001a553:\n      if ((context <= iVar37) && (no_diff_means_no_output != false)) goto LAB_0001a618;\n      local_8c = (size_t *)((int)local_8c + 1);\n      pbVar32 = (byte *)psVar31;\n      do {\n        psVar31 = (size_t *)(pbVar32 + 1);\n        bVar2 = *pbVar32;\n        pbVar32 = (byte *)psVar31;\n      } while (bVar2 != 10);\n      iVar37 = iVar37 + 1;\n    }\n    if (((0x2aaaaaa9 < (int)local_6c) || (uVar28 = local_6c * 2 - iVar22, 0x1ffffffe < uVar28)) ||\n       (0x1ffffffe < local_6c - iVar22)) goto LAB_0001a9c0;\n    pvVar12 = xrealloc(local_80 + iVar22,(uVar28 - iVar22) * 4);\n    local_80 = (char **)(iVar22 * -4 + (int)pvVar12);\n    ppcVar16 = local_80 + (int)local_8c;\n    *ppcVar16 = (char *)psVar31;\n    local_6c = uVar28;\n    if ((size_t *)pbVar13 != psVar31) goto LAB_0001a553;\nLAB_0001a5e6:\n    if ((*(_Bool *)(local_5c + 0x10) != false) && (1 < output_style - OUTPUT_ED)) {\n      *ppcVar16 = (char *)(pbVar13 + -1);\n    }\nLAB_0001a618:\n    local_5c[3] = (size_t *)local_80;\n    ppsVar17 = local_5c + 0x2c;\n    equivs = local_7c;\n    local_5c[6] = local_8c;\n    local_5c[7] = (size_t *)local_6c;\n    local_5c[0xb] = (size_t *)local_68;\n    equivs_alloc = local_60;\n    equivs_index = local_64;\n    local_5c = ppsVar17;\n    if (&filevec[2].buffer == ppsVar17) {\n      filevec[1].equiv_max = local_64;\n      filevec->equiv_max = local_64;\n      free(local_7c);\n      free(buckets + -1);\n      return bVar18;\n    }\n  } while( true );\ncode_r0x0001a1dc:\n  local_78 = (size_t *)peVar34->next;\n  goto joined_r0x0001a0d6;\n}\n\n" comment comment (function_definition "_Bool read_files(file_data *filevec,_Bool pretend_binary)\n\n{\n  uint *puVar1;\n  byte bVar2;\n  undefined4 uVar3;\n  char *s1;\n  ushort *puVar4;\n  size_t sVar5;\n  DIFF_white_space DVar6;\n  _Bool _Var7;\n  _Bool _Var8;\n  uint uVar9;\n  undefined4 *p;\n  undefined4 *puVar10;\n  size_t sVar11;\n  void *pvVar12;\n  byte *pbVar13;\n  ushort **ppuVar14;\n  __int32_t **pp_Var15;\n  char **ppcVar16;\n  size_t **ppsVar17;\n  bool bVar18;\n  lin lVar19;\n  size_t *psVar20;\n  undefined4 *puVar21;\n  int iVar22;\n  char cVar23;\n  size_t *psVar24;\n  uint uVar25;\n  undefined4 *puVar26;\n  lin lVar27;\n  uint uVar28;\n  DIFF_white_space DVar29;\n  byte *pbVar30;\n  size_t *psVar31;\n  byte *pbVar33;\n  equivclass *peVar34;\n  size_t *psVar35;\n  size_t *psVar36;\n  int iVar37;\n  bool bVar38;\n  bool bVar39;\n  size_t *local_90;\n  size_t *local_8c;\n  uint local_88;\n  size_t *local_84;\n  char **local_80;\n  equivclass *local_7c;\n  size_t *local_78;\n  uint local_74;\n  size_t *local_70;\n  uint local_6c;\n  lin *local_68;\n  uint local_64;\n  uint local_60;\n  size_t **local_5c;\n  byte *pbVar32;\n  \n  _Var8 = text;\n  _Var7 = sip(filevec,text || pretend_binary);\n  bVar18 = _Var7 || pretend_binary;\n  if (filevec->desc == filevec[1].desc) {\n    filevec[1].buffer = filevec->buffer;\n    filevec[1].bufsize = filevec->bufsize;\n    filevec[1].buffered = filevec->buffered;\n    if (bVar18) {\n      return bVar18;\n    }\n  }\n  else {\n    _Var8 = sip(filevec + 1,pretend_binary || (_Var8 || _Var7));\n    if (bVar18 || _Var8) {\n      return bVar18 || _Var8;\n    }\n  }\n  slurp(filevec);\n  prepare_text(filevec);\n  if (filevec->desc == filevec[1].desc) {\n    local_78 = filevec->buffer;\n    filevec[1].buffer = local_78;\n    filevec[1].bufsize = filevec->bufsize;\n    uVar28 = filevec->buffered;\n    filevec[1].buffered = uVar28;\n    filevec[1].missing_newline = filevec->missing_newline;\n    local_88 = uVar28;\nLAB_000199ff:\n    psVar31 = (size_t *)((int)local_78 + uVar28);\n    local_80 = (char **)(output_style - OUTPUT_ED);\n    local_90 = local_78;\n    local_84 = (size_t *)(local_88 + (int)local_78);\n    local_8c = psVar31;\n    lVar19 = horizon_lines;\n    local_7c = (equivclass *)psVar31;\n  }\n  else {\n    slurp(filevec + 1);\n    prepare_text(filevec + 1);\n    local_88 = filevec->buffered;\n    local_90 = filevec->buffer;\n    local_78 = filevec[1].buffer;\n    uVar28 = filevec[1].buffered;\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (size_t *)((int)local_90 + local_88);\n    local_7c = (equivclass *)((int)local_78 + uVar28);\n    if (local_88 < uVar28) {\n      *(byte *)local_84 = ~*(byte *)((int)local_78 + local_88);\n    }\n    else {\n      *(byte *)local_7c = ~*(byte *)((int)local_90 + uVar28);\n    }\n    psVar31 = local_90;\n    local_8c = local_78;\n    if (*local_78 == *local_90) {\n      do {\n        local_8c = local_8c + 1;\n        psVar31 = psVar31 + 1;\n      } while (*psVar31 == *local_8c);\n    }\n    if ((byte)*local_8c == (byte)*psVar31) {\n      do {\n        local_8c = (size_t *)((int)local_8c + 1);\n        psVar31 = (size_t *)((int)psVar31 + 1);\n      } while (*(byte *)psVar31 == *(byte *)local_8c);\n    }\n    local_80 = (char **)(output_style - OUTPUT_ED);\n    lVar19 = horizon_lines;\n    if ((1 < local_80) &&\n       ((size_t *)((int)local_90 + (local_88 - filevec->missing_newline)) < psVar31 !=\n        (size_t *)((int)local_78 + (uVar28 - filevec[1].missing_newline)) < local_8c)) {\n      local_8c = (size_t *)((int)local_8c + -1);\n      psVar31 = (size_t *)((int)psVar31 + -1);\n    }\n  }\n  for (; uVar9 = local_88, lVar27 = horizon_lines, psVar31 != local_90;\n      psVar31 = (size_t *)((int)psVar31 + -1)) {\n    while (*(byte *)((int)psVar31 + -1) == 10) {\n      if (lVar19 == 0) goto LAB_00019a73;\n      psVar31 = (size_t *)((int)psVar31 + -1);\n      local_8c = (size_t *)((int)local_8c + -1);\n      lVar19 = lVar19 + -1;\n      if (psVar31 == local_90) goto LAB_00019a73;\n    }\n    local_8c = (size_t *)((int)local_8c + -1);\n  }\nLAB_00019a73:\n  filevec->prefix_end = (char *)psVar31;\n  filevec[1].prefix_end = (char *)local_8c;\n  if ((local_80 < 2) ||\n     (local_70 = (size_t *)local_7c, psVar35 = local_84,\n     filevec->missing_newline == filevec[1].missing_newline)) {\n    psVar35 = (size_t *)((local_88 - uVar28) + (int)psVar31);\n    if (local_88 < uVar28) {\n      psVar35 = psVar31;\n    }\n    if ((psVar35 == local_84) || (*(byte *)((int)local_7c + -1) != *(byte *)((int)local_84 + -1))) {\n      local_80 = (char **)local_7c;\n      psVar20 = local_84;\n    }\n    else {\n      psVar36 = (size_t *)((int)local_7c + ((int)psVar35 - (int)local_84));\n      psVar35 = local_84;\n      peVar34 = local_7c;\n      do {\n        psVar24 = (size_t *)((int)peVar34 + -1);\n        psVar20 = (size_t *)((int)psVar35 + -1);\n        local_80 = (char **)psVar36;\n        if (psVar24 == psVar36) break;\n        pbVar32 = (byte *)((int)peVar34 + -2);\n        pbVar13 = (byte *)((int)psVar35 + -2);\n        psVar35 = psVar20;\n        local_80 = (char **)psVar24;\n        peVar34 = (equivclass *)psVar24;\n      } while (*pbVar13 == *pbVar32);\n    }\n    psVar35 = psVar20;\n    if ((psVar20 == local_90) || (*(byte *)((int)psVar20 + -1) == 10)) {\n      if ((char **)local_78 != local_80) {\n        lVar27 = lVar27 + (uint)(*(byte *)((int)local_80 + -1) != 10);\n      }\n    }\n    else {\n      lVar27 = lVar27 + 1;\n    }\n    for (; (psVar35 != local_84 && (lVar27 != 0)); lVar27 = lVar27 + -1) {\n      do {\n        psVar36 = (size_t *)((int)psVar35 + 1);\n        sVar11 = *psVar35;\n        psVar35 = psVar36;\n      } while ((byte)sVar11 != 10);\n    }\n    local_70 = (size_t *)(((int)psVar35 - (int)psVar20) + (int)local_80);\n  }\n  bVar18 = no_diff_means_no_output == false;\n  filevec->suffix_begin = (char *)psVar35;\n  filevec[1].suffix_begin = (char *)local_70;\n  if ((((bVar18) || (function_regexp.fastmap != (char *)0x0)) || (0x1ffffffe < context)) ||\n     (local_88 <= (uint)context)) {\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar9 = uVar9 >> 5;\n    if (uVar9 == 0) {\n      uVar9 = 1;\n    }\n    local_84 = (size_t *)(uVar9 + 5);\n  }\n  else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar28 = (uint)((int)psVar35 - (int)psVar31) >> 5;\n    if (uVar28 == 0) {\n      uVar28 = 1;\n    }\n    uVar9 = (uint)((int)local_84 - (int)psVar35) >> 5;\n    if (uVar9 == 0) {\n      uVar9 = 1;\n    }\n    uVar25 = 1;\n    if (0 < context) {\n      do {\n        local_88 = uVar25 * 2;\n        iVar22 = uVar25 * -2;\n        uVar25 = local_88;\n      } while (SBORROW4(context,local_88) == context + iVar22 < 0);\n      local_74 = local_88 - 1;\n    }\n    iVar22 = uVar9 + 5;\n    if (context <= (int)(uVar9 + 5)) {\n      iVar22 = context;\n    }\n    local_84 = (size_t *)(iVar22 + local_88 + uVar28 + 5);\n  }\n  p = (undefined4 *)xmalloc((int)local_84 << 2);\n  psVar31 = (size_t *)filevec->prefix_end;\n  if (((no_diff_means_no_output == false) || (psVar35 != psVar31)) ||\n     (psVar35 = (size_t *)filevec[1].prefix_end, local_70 != psVar35)) {\n    if (local_90 == psVar31) {\n      psVar35 = (size_t *)filevec[1].prefix_end;\n      goto LAB_0001a84f;\n    }\n    uVar28 = (uint)local_84;\n    local_8c = (size_t *)0;\n    psVar35 = local_90;\n    do {\n      uVar9 = (uint)local_8c;\n      local_8c = (size_t *)(uVar9 + 1);\n      local_84 = (size_t *)uVar28;\n      if ((local_74 & uVar9) == uVar28) {\n        if (0xffffffe < uVar28) goto LAB_0001a9c0;\n        local_84 = (size_t *)(uVar28 * 2);\n        p = (undefined4 *)xrealloc(p,uVar28 * 8);\n      }\n      p[local_74 & uVar9] = psVar35;\n      psVar20 = psVar35;\n      do {\n        psVar35 = (size_t *)((int)psVar20 + 1);\n        sVar11 = *psVar20;\n        psVar20 = psVar35;\n      } while ((byte)sVar11 != 10);\n      uVar28 = (uint)local_84;\n    } while (psVar35 != psVar31);\n    local_6c = (int)local_70 - (int)filevec[1].prefix_end;\n    bVar18 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar18) && (local_88 = context, (int)local_8c <= context)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar28 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar28 = (uint)((int)psVar31 - (int)local_90) / uVar9;\n    }\n  }\n  else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)psVar35;\n    if (local_88 == 0) {\n      local_8c = (size_t *)0x0;\n      uVar28 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar28 = 0x20;\n      local_8c = (size_t *)0x0;\n      if (context < 1) {\n        local_88 = context;\n      }\n    }\n  }\n  uVar9 = (uint)((int)local_7c - (int)local_70) / uVar28;\n  if (uVar9 == 0) {\n    uVar9 = 1;\n  }\n  if (0xe38e389 < uVar9) {\n    uVar9 = 0xe38e389;\n  }\n  iVar22 = uVar9 + 5;\n  if (context < (int)(uVar9 + 5)) {\n    iVar22 = context;\n  }\n  uVar9 = 1;\n  if (local_6c / uVar28 != 0) {\n    uVar9 = local_6c / uVar28;\n  }\n  if (0xe38e389 < uVar9) {\n    uVar9 = 0xe38e389;\n  }\n  uVar28 = local_88 + 5 + uVar9 + iVar22;\n  bVar18 = (int)uVar28 < (int)local_88 || 0x1ffffffe < uVar28;\n  if (bVar18) goto LAB_0001a9c0;\n  puVar10 = (undefined4 *)xmalloc(uVar28 * 4);\n  if ((size_t *)local_88 == local_8c) {\n    if (local_88 != 0) goto LAB_00019df3;\n  }\n  else if (0 < (int)local_88) {\n    uVar25 = (int)local_8c - context;\n    uVar9 = uVar25;\n    do {\n      puVar10[uVar9 - uVar25] = p[uVar9 & local_74];\n      uVar9 = uVar9 + 1;\n    } while (local_88 + uVar25 != uVar9);\n    puVar21 = p;\n    puVar26 = puVar10;\n    do {\n      uVar3 = *puVar26;\n      puVar26 = puVar26 + 1;\n      *puVar21 = uVar3;\n      puVar21 = puVar21 + 1;\n    } while (puVar10 + local_88 != puVar26);\nLAB_00019df3:\n    iVar22 = 0;\n    do {\n      puVar10[iVar22] = (byte *)((p[iVar22] - (int)local_90) + (int)local_78);\n      iVar22 = iVar22 + 1;\n    } while (iVar22 < (int)local_88);\n  }\n  filevec[1].linbuf = (char **)(puVar10 + local_88);\n  filevec->linbuf = (char **)(p + local_88);\n  filevec[1].linbuf_base = -local_88;\n  filevec->linbuf_base = -local_88;\n  filevec->alloc_lines = (int)local_84 - local_88;\n  uVar9 = ((int)local_84 - local_88) + 1 + (uVar28 - local_88);\n  filevec[1].alloc_lines = uVar28 - local_88;\n  equivs_alloc = uVar9;\n  filevec[1].prefix_lines = (lin)local_8c;\n  filevec->prefix_lines = (lin)local_8c;\n  if (0x7fffffe < uVar9) {\nLAB_0001a9c0:\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  equivs = (equivclass *)xmalloc(uVar9 * 0x10);\n  equivs_index = 1;\n  if ((uint)(equivs_alloc / 3) < 0x201) {\n    nbuckets = 0x1fd;\n    sVar11 = 0x7f8;\n  }\n  else {\n    iVar22 = 9;\n    do {\n      iVar37 = iVar22;\n      iVar22 = iVar37 + 1;\n      uVar28 = 1 << ((byte)iVar22 & 0x1f);\n    } while (uVar28 < (uint)(equivs_alloc / 3));\n    nbuckets = uVar28 - ""[iVar37 + 1];\n    if (0x1ffffffe < nbuckets) goto LAB_0001a9c0;\n    sVar11 = nbuckets * 4 + 4;\n  }\n  pvVar12 = zalloc(sVar11);\n  buckets = (lin *)((int)pvVar12 + 4);\n  local_5c = &filevec->buffer;\n  do {\n    local_80 = (char **)local_5c[3];\n    iVar22 = (int)local_5c[4];\n    psVar31 = local_5c[8];\n    local_6c = (uint)local_5c[7];\n    local_68 = (lin *)xmalloc(local_6c << 2);\n    _Var8 = ignore_case;\n    DVar6 = ignore_white_space;\n    pbVar32 = (byte *)local_5c[10];\n    local_7c = equivs;\n    local_64 = equivs_index;\n    local_60 = equivs_alloc;\n    pbVar13 = (byte *)((int)local_5c[2] + (int)*local_5c);\n    bVar39 = ignore_white_space == IGNORE_NO_WHITE_SPACE;\n    if (psVar31 < pbVar32) {\n      local_8c = (size_t *)0x0;\n      local_90 = psVar31;\n      do {\n        sVar11 = tabsize;\n        bVar2 = (byte)*local_90;\n        uVar28 = (uint)bVar2;\n        psVar31 = (size_t *)((int)local_90 + 1);\n        if (DVar6 == IGNORE_SPACE_CHANGE) {\n          if (bVar2 != 10) {\n            ppuVar14 = __ctype_b_loc();\n            uVar9 = 0;\n            puVar4 = *ppuVar14;\n            do {\n              pbVar33 = (byte *)psVar31;\n              if ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0) {\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;\n              }\n              uVar25 = uVar28;\n              if (_Var8 != false) {\n                pp_Var15 = __ctype_tolower_loc();\n                uVar25 = (*pp_Var15)[uVar28];\n              }\n              bVar2 = *(byte *)psVar31;\n              uVar28 = (uint)bVar2;\n              psVar31 = (size_t *)((int)psVar31 + 1);\n              uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar25;\n            } while (bVar2 != 10);\n            goto LAB_0001a0a0;\n          }\nLAB_0001a500:\n          pbVar33 = (byte *)0x0;\n          uVar9 = 0;\n        }\n        else {\n          if (DVar6 < IGNORE_ALL_SPACE) {\n            if (DVar6 == IGNORE_NO_WHITE_SPACE) {\nLAB_0001a398:\n              if (_Var8 == false) {\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n              else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n            }\n            else {\n              uVar9 = 0;\n              psVar31 = (size_t *)((int)local_90 + 1);\n              if (bVar2 != 10) {\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }\n            }\n          }\n          else {\n            if (DVar6 != IGNORE_ALL_SPACE) goto LAB_0001a398;\n            uVar9 = 0;\n            psVar31 = local_90;\n            while (psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n') {\n              ppuVar14 = __ctype_b_loc();\n              if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }\n              uVar28 = (uint)*(byte *)psVar31;\n            }\n          }\nLAB_0001a0a0:\n          pbVar33 = (byte *)((int)psVar31 + (-1 - (int)local_90));\n        }\nLAB_0001a0a9:\n        puVar1 = (uint *)(buckets + uVar9 % nbuckets);\n        local_84 = puVar1;\n        if (((((size_t *)pbVar13 == psVar31) && (*(_Bool *)(local_5c + 0x10) != false)) &&\n            (1 < output_style - OUTPUT_ED)) &&\n           (local_84 = (size_t *)(buckets + -1), IGNORE_TAB_EXPANSION < DVar6)) {\n          local_84 = puVar1;\n        }\n        uVar28 = *local_84;\n        local_78 = (size_t *)uVar28;\njoined_r0x0001a0d6:\n        if (local_78 != (size_t *)0x0) {\n          do {\n            peVar34 = local_7c + (int)local_78;\n            if (uVar9 == peVar34->hash) {\n              s1 = peVar34->line;\n              if ((byte *)peVar34->length == pbVar33) {\n                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);\n                if (iVar37 == 0) goto joined_r0x0001a144;\n                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;\n              }\n              else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;\n              _Var7 = lines_differ(s1,(char *)local_90);\n              if (!_Var7) goto joined_r0x0001a144;\n            }\nLAB_0001a0f0:\n            local_78 = (size_t *)peVar34->next;\n            if (local_78 == (size_t *)0x0) break;\n          } while( true );\n        }\n        if (local_60 == local_64) {\n          if (0x3fffffe < local_60) goto LAB_0001a9c0;\n          local_7c = (equivclass *)xrealloc(local_7c,local_60 << 5);\n          uVar28 = *local_84;\n          local_60 = local_60 * 2;\n        }\n        peVar34 = local_7c + local_64;\n        peVar34->next = uVar28;\n        peVar34->hash = uVar9;\n        peVar34->line = (char *)local_90;\n        peVar34->length = (size_t)pbVar33;\n        *local_84 = local_64;\n        local_78 = (size_t *)local_64;\n        local_64 = local_64 + 1;\njoined_r0x0001a144:\n        if (local_8c == (size_t *)local_6c) {\n          if (((0x2aaaaaa9 < (int)local_8c) ||\n              (local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c)) ||\n             (0x1ffffffe < (uint)((int)local_8c - iVar22))) goto LAB_0001a9c0;\n          local_68 = (lin *)xrealloc(local_68,local_6c * 4);\n          pvVar12 = xrealloc(local_80 + iVar22,(local_6c - iVar22) * 4);\n          local_80 = (char **)((int)pvVar12 + iVar22 * -4);\n        }\n        local_80[(int)local_8c] = (char *)local_90;\n        local_68[(int)local_8c] = (lin)local_78;\n        local_8c = (size_t *)((int)local_8c + 1);\n        local_90 = psVar31;\n        if (pbVar32 <= psVar31) goto LAB_0001a520;\n      } while( true );\n    }\n    local_8c = (size_t *)0x0;\nLAB_0001a520:\n    local_5c[5] = local_8c;\n    iVar37 = 0;\n    while ((size_t *)local_6c != local_8c) {\n      ppcVar16 = local_80 + (int)local_8c;\n      *ppcVar16 = (char *)psVar31;\n      if ((size_t *)pbVar13 == psVar31) goto LAB_0001a5e6;\nLAB_0001a553:\n      if ((context <= iVar37) && (no_diff_means_no_output != false)) goto LAB_0001a618;\n      local_8c = (size_t *)((int)local_8c + 1);\n      pbVar32 = (byte *)psVar31;\n      do {\n        psVar31 = (size_t *)(pbVar32 + 1);\n        bVar2 = *pbVar32;\n        pbVar32 = (byte *)psVar31;\n      } while (bVar2 != 10);\n      iVar37 = iVar37 + 1;\n    }\n    if (((0x2aaaaaa9 < (int)local_6c) || (uVar28 = local_6c * 2 - iVar22, 0x1ffffffe < uVar28)) ||\n       (0x1ffffffe < local_6c - iVar22)) goto LAB_0001a9c0;\n    pvVar12 = xrealloc(local_80 + iVar22,(uVar28 - iVar22) * 4);\n    local_80 = (char **)(iVar22 * -4 + (int)pvVar12);\n    ppcVar16 = local_80 + (int)local_8c;\n    *ppcVar16 = (char *)psVar31;\n    local_6c = uVar28;\n    if ((size_t *)pbVar13 != psVar31) goto LAB_0001a553;\nLAB_0001a5e6:\n    if ((*(_Bool *)(local_5c + 0x10) != false) && (1 < output_style - OUTPUT_ED)) {\n      *ppcVar16 = (char *)(pbVar13 + -1);\n    }\nLAB_0001a618:\n    local_5c[3] = (size_t *)local_80;\n    ppsVar17 = local_5c + 0x2c;\n    equivs = local_7c;\n    local_5c[6] = local_8c;\n    local_5c[7] = (size_t *)local_6c;\n    local_5c[0xb] = (size_t *)local_68;\n    equivs_alloc = local_60;\n    equivs_index = local_64;\n    local_5c = ppsVar17;\n    if (&filevec[2].buffer == ppsVar17) {\n      filevec[1].equiv_max = local_64;\n      filevec->equiv_max = local_64;\n      free(local_7c);\n      free(buckets + -1);\n      return bVar18;\n    }\n  } while( true );\ncode_r0x0001a1dc:\n  local_78 = (size_t *)peVar34->next;\n  goto joined_r0x0001a0d6;\n}" type_identifier (function_declarator "read_files(file_data *filevec,_Bool pretend_binary)" identifier (parameter_list "(file_data *filevec,_Bool pretend_binary)" ( (parameter_declaration "file_data *filevec" type_identifier (pointer_declarator "*filevec" * identifier)) , (parameter_declaration "_Bool pretend_binary" type_identifier identifier) ))) (compound_statement "{\n  uint *puVar1;\n  byte bVar2;\n  undefined4 uVar3;\n  char *s1;\n  ushort *puVar4;\n  size_t sVar5;\n  DIFF_white_space DVar6;\n  _Bool _Var7;\n  _Bool _Var8;\n  uint uVar9;\n  undefined4 *p;\n  undefined4 *puVar10;\n  size_t sVar11;\n  void *pvVar12;\n  byte *pbVar13;\n  ushort **ppuVar14;\n  __int32_t **pp_Var15;\n  char **ppcVar16;\n  size_t **ppsVar17;\n  bool bVar18;\n  lin lVar19;\n  size_t *psVar20;\n  undefined4 *puVar21;\n  int iVar22;\n  char cVar23;\n  size_t *psVar24;\n  uint uVar25;\n  undefined4 *puVar26;\n  lin lVar27;\n  uint uVar28;\n  DIFF_white_space DVar29;\n  byte *pbVar30;\n  size_t *psVar31;\n  byte *pbVar33;\n  equivclass *peVar34;\n  size_t *psVar35;\n  size_t *psVar36;\n  int iVar37;\n  bool bVar38;\n  bool bVar39;\n  size_t *local_90;\n  size_t *local_8c;\n  uint local_88;\n  size_t *local_84;\n  char **local_80;\n  equivclass *local_7c;\n  size_t *local_78;\n  uint local_74;\n  size_t *local_70;\n  uint local_6c;\n  lin *local_68;\n  uint local_64;\n  uint local_60;\n  size_t **local_5c;\n  byte *pbVar32;\n  \n  _Var8 = text;\n  _Var7 = sip(filevec,text || pretend_binary);\n  bVar18 = _Var7 || pretend_binary;\n  if (filevec->desc == filevec[1].desc) {\n    filevec[1].buffer = filevec->buffer;\n    filevec[1].bufsize = filevec->bufsize;\n    filevec[1].buffered = filevec->buffered;\n    if (bVar18) {\n      return bVar18;\n    }\n  }\n  else {\n    _Var8 = sip(filevec + 1,pretend_binary || (_Var8 || _Var7));\n    if (bVar18 || _Var8) {\n      return bVar18 || _Var8;\n    }\n  }\n  slurp(filevec);\n  prepare_text(filevec);\n  if (filevec->desc == filevec[1].desc) {\n    local_78 = filevec->buffer;\n    filevec[1].buffer = local_78;\n    filevec[1].bufsize = filevec->bufsize;\n    uVar28 = filevec->buffered;\n    filevec[1].buffered = uVar28;\n    filevec[1].missing_newline = filevec->missing_newline;\n    local_88 = uVar28;\nLAB_000199ff:\n    psVar31 = (size_t *)((int)local_78 + uVar28);\n    local_80 = (char **)(output_style - OUTPUT_ED);\n    local_90 = local_78;\n    local_84 = (size_t *)(local_88 + (int)local_78);\n    local_8c = psVar31;\n    lVar19 = horizon_lines;\n    local_7c = (equivclass *)psVar31;\n  }\n  else {\n    slurp(filevec + 1);\n    prepare_text(filevec + 1);\n    local_88 = filevec->buffered;\n    local_90 = filevec->buffer;\n    local_78 = filevec[1].buffer;\n    uVar28 = filevec[1].buffered;\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (size_t *)((int)local_90 + local_88);\n    local_7c = (equivclass *)((int)local_78 + uVar28);\n    if (local_88 < uVar28) {\n      *(byte *)local_84 = ~*(byte *)((int)local_78 + local_88);\n    }\n    else {\n      *(byte *)local_7c = ~*(byte *)((int)local_90 + uVar28);\n    }\n    psVar31 = local_90;\n    local_8c = local_78;\n    if (*local_78 == *local_90) {\n      do {\n        local_8c = local_8c + 1;\n        psVar31 = psVar31 + 1;\n      } while (*psVar31 == *local_8c);\n    }\n    if ((byte)*local_8c == (byte)*psVar31) {\n      do {\n        local_8c = (size_t *)((int)local_8c + 1);\n        psVar31 = (size_t *)((int)psVar31 + 1);\n      } while (*(byte *)psVar31 == *(byte *)local_8c);\n    }\n    local_80 = (char **)(output_style - OUTPUT_ED);\n    lVar19 = horizon_lines;\n    if ((1 < local_80) &&\n       ((size_t *)((int)local_90 + (local_88 - filevec->missing_newline)) < psVar31 !=\n        (size_t *)((int)local_78 + (uVar28 - filevec[1].missing_newline)) < local_8c)) {\n      local_8c = (size_t *)((int)local_8c + -1);\n      psVar31 = (size_t *)((int)psVar31 + -1);\n    }\n  }\n  for (; uVar9 = local_88, lVar27 = horizon_lines, psVar31 != local_90;\n      psVar31 = (size_t *)((int)psVar31 + -1)) {\n    while (*(byte *)((int)psVar31 + -1) == 10) {\n      if (lVar19 == 0) goto LAB_00019a73;\n      psVar31 = (size_t *)((int)psVar31 + -1);\n      local_8c = (size_t *)((int)local_8c + -1);\n      lVar19 = lVar19 + -1;\n      if (psVar31 == local_90) goto LAB_00019a73;\n    }\n    local_8c = (size_t *)((int)local_8c + -1);\n  }\nLAB_00019a73:\n  filevec->prefix_end = (char *)psVar31;\n  filevec[1].prefix_end = (char *)local_8c;\n  if ((local_80 < 2) ||\n     (local_70 = (size_t *)local_7c, psVar35 = local_84,\n     filevec->missing_newline == filevec[1].missing_newline)) {\n    psVar35 = (size_t *)((local_88 - uVar28) + (int)psVar31);\n    if (local_88 < uVar28) {\n      psVar35 = psVar31;\n    }\n    if ((psVar35 == local_84) || (*(byte *)((int)local_7c + -1) != *(byte *)((int)local_84 + -1))) {\n      local_80 = (char **)local_7c;\n      psVar20 = local_84;\n    }\n    else {\n      psVar36 = (size_t *)((int)local_7c + ((int)psVar35 - (int)local_84));\n      psVar35 = local_84;\n      peVar34 = local_7c;\n      do {\n        psVar24 = (size_t *)((int)peVar34 + -1);\n        psVar20 = (size_t *)((int)psVar35 + -1);\n        local_80 = (char **)psVar36;\n        if (psVar24 == psVar36) break;\n        pbVar32 = (byte *)((int)peVar34 + -2);\n        pbVar13 = (byte *)((int)psVar35 + -2);\n        psVar35 = psVar20;\n        local_80 = (char **)psVar24;\n        peVar34 = (equivclass *)psVar24;\n      } while (*pbVar13 == *pbVar32);\n    }\n    psVar35 = psVar20;\n    if ((psVar20 == local_90) || (*(byte *)((int)psVar20 + -1) == 10)) {\n      if ((char **)local_78 != local_80) {\n        lVar27 = lVar27 + (uint)(*(byte *)((int)local_80 + -1) != 10);\n      }\n    }\n    else {\n      lVar27 = lVar27 + 1;\n    }\n    for (; (psVar35 != local_84 && (lVar27 != 0)); lVar27 = lVar27 + -1) {\n      do {\n        psVar36 = (size_t *)((int)psVar35 + 1);\n        sVar11 = *psVar35;\n        psVar35 = psVar36;\n      } while ((byte)sVar11 != 10);\n    }\n    local_70 = (size_t *)(((int)psVar35 - (int)psVar20) + (int)local_80);\n  }\n  bVar18 = no_diff_means_no_output == false;\n  filevec->suffix_begin = (char *)psVar35;\n  filevec[1].suffix_begin = (char *)local_70;\n  if ((((bVar18) || (function_regexp.fastmap != (char *)0x0)) || (0x1ffffffe < context)) ||\n     (local_88 <= (uint)context)) {\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar9 = uVar9 >> 5;\n    if (uVar9 == 0) {\n      uVar9 = 1;\n    }\n    local_84 = (size_t *)(uVar9 + 5);\n  }\n  else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar28 = (uint)((int)psVar35 - (int)psVar31) >> 5;\n    if (uVar28 == 0) {\n      uVar28 = 1;\n    }\n    uVar9 = (uint)((int)local_84 - (int)psVar35) >> 5;\n    if (uVar9 == 0) {\n      uVar9 = 1;\n    }\n    uVar25 = 1;\n    if (0 < context) {\n      do {\n        local_88 = uVar25 * 2;\n        iVar22 = uVar25 * -2;\n        uVar25 = local_88;\n      } while (SBORROW4(context,local_88) == context + iVar22 < 0);\n      local_74 = local_88 - 1;\n    }\n    iVar22 = uVar9 + 5;\n    if (context <= (int)(uVar9 + 5)) {\n      iVar22 = context;\n    }\n    local_84 = (size_t *)(iVar22 + local_88 + uVar28 + 5);\n  }\n  p = (undefined4 *)xmalloc((int)local_84 << 2);\n  psVar31 = (size_t *)filevec->prefix_end;\n  if (((no_diff_means_no_output == false) || (psVar35 != psVar31)) ||\n     (psVar35 = (size_t *)filevec[1].prefix_end, local_70 != psVar35)) {\n    if (local_90 == psVar31) {\n      psVar35 = (size_t *)filevec[1].prefix_end;\n      goto LAB_0001a84f;\n    }\n    uVar28 = (uint)local_84;\n    local_8c = (size_t *)0;\n    psVar35 = local_90;\n    do {\n      uVar9 = (uint)local_8c;\n      local_8c = (size_t *)(uVar9 + 1);\n      local_84 = (size_t *)uVar28;\n      if ((local_74 & uVar9) == uVar28) {\n        if (0xffffffe < uVar28) goto LAB_0001a9c0;\n        local_84 = (size_t *)(uVar28 * 2);\n        p = (undefined4 *)xrealloc(p,uVar28 * 8);\n      }\n      p[local_74 & uVar9] = psVar35;\n      psVar20 = psVar35;\n      do {\n        psVar35 = (size_t *)((int)psVar20 + 1);\n        sVar11 = *psVar20;\n        psVar20 = psVar35;\n      } while ((byte)sVar11 != 10);\n      uVar28 = (uint)local_84;\n    } while (psVar35 != psVar31);\n    local_6c = (int)local_70 - (int)filevec[1].prefix_end;\n    bVar18 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar18) && (local_88 = context, (int)local_8c <= context)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar28 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar28 = (uint)((int)psVar31 - (int)local_90) / uVar9;\n    }\n  }\n  else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)psVar35;\n    if (local_88 == 0) {\n      local_8c = (size_t *)0x0;\n      uVar28 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar28 = 0x20;\n      local_8c = (size_t *)0x0;\n      if (context < 1) {\n        local_88 = context;\n      }\n    }\n  }\n  uVar9 = (uint)((int)local_7c - (int)local_70) / uVar28;\n  if (uVar9 == 0) {\n    uVar9 = 1;\n  }\n  if (0xe38e389 < uVar9) {\n    uVar9 = 0xe38e389;\n  }\n  iVar22 = uVar9 + 5;\n  if (context < (int)(uVar9 + 5)) {\n    iVar22 = context;\n  }\n  uVar9 = 1;\n  if (local_6c / uVar28 != 0) {\n    uVar9 = local_6c / uVar28;\n  }\n  if (0xe38e389 < uVar9) {\n    uVar9 = 0xe38e389;\n  }\n  uVar28 = local_88 + 5 + uVar9 + iVar22;\n  bVar18 = (int)uVar28 < (int)local_88 || 0x1ffffffe < uVar28;\n  if (bVar18) goto LAB_0001a9c0;\n  puVar10 = (undefined4 *)xmalloc(uVar28 * 4);\n  if ((size_t *)local_88 == local_8c) {\n    if (local_88 != 0) goto LAB_00019df3;\n  }\n  else if (0 < (int)local_88) {\n    uVar25 = (int)local_8c - context;\n    uVar9 = uVar25;\n    do {\n      puVar10[uVar9 - uVar25] = p[uVar9 & local_74];\n      uVar9 = uVar9 + 1;\n    } while (local_88 + uVar25 != uVar9);\n    puVar21 = p;\n    puVar26 = puVar10;\n    do {\n      uVar3 = *puVar26;\n      puVar26 = puVar26 + 1;\n      *puVar21 = uVar3;\n      puVar21 = puVar21 + 1;\n    } while (puVar10 + local_88 != puVar26);\nLAB_00019df3:\n    iVar22 = 0;\n    do {\n      puVar10[iVar22] = (byte *)((p[iVar22] - (int)local_90) + (int)local_78);\n      iVar22 = iVar22 + 1;\n    } while (iVar22 < (int)local_88);\n  }\n  filevec[1].linbuf = (char **)(puVar10 + local_88);\n  filevec->linbuf = (char **)(p + local_88);\n  filevec[1].linbuf_base = -local_88;\n  filevec->linbuf_base = -local_88;\n  filevec->alloc_lines = (int)local_84 - local_88;\n  uVar9 = ((int)local_84 - local_88) + 1 + (uVar28 - local_88);\n  filevec[1].alloc_lines = uVar28 - local_88;\n  equivs_alloc = uVar9;\n  filevec[1].prefix_lines = (lin)local_8c;\n  filevec->prefix_lines = (lin)local_8c;\n  if (0x7fffffe < uVar9) {\nLAB_0001a9c0:\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  equivs = (equivclass *)xmalloc(uVar9 * 0x10);\n  equivs_index = 1;\n  if ((uint)(equivs_alloc / 3) < 0x201) {\n    nbuckets = 0x1fd;\n    sVar11 = 0x7f8;\n  }\n  else {\n    iVar22 = 9;\n    do {\n      iVar37 = iVar22;\n      iVar22 = iVar37 + 1;\n      uVar28 = 1 << ((byte)iVar22 & 0x1f);\n    } while (uVar28 < (uint)(equivs_alloc / 3));\n    nbuckets = uVar28 - ""[iVar37 + 1];\n    if (0x1ffffffe < nbuckets) goto LAB_0001a9c0;\n    sVar11 = nbuckets * 4 + 4;\n  }\n  pvVar12 = zalloc(sVar11);\n  buckets = (lin *)((int)pvVar12 + 4);\n  local_5c = &filevec->buffer;\n  do {\n    local_80 = (char **)local_5c[3];\n    iVar22 = (int)local_5c[4];\n    psVar31 = local_5c[8];\n    local_6c = (uint)local_5c[7];\n    local_68 = (lin *)xmalloc(local_6c << 2);\n    _Var8 = ignore_case;\n    DVar6 = ignore_white_space;\n    pbVar32 = (byte *)local_5c[10];\n    local_7c = equivs;\n    local_64 = equivs_index;\n    local_60 = equivs_alloc;\n    pbVar13 = (byte *)((int)local_5c[2] + (int)*local_5c);\n    bVar39 = ignore_white_space == IGNORE_NO_WHITE_SPACE;\n    if (psVar31 < pbVar32) {\n      local_8c = (size_t *)0x0;\n      local_90 = psVar31;\n      do {\n        sVar11 = tabsize;\n        bVar2 = (byte)*local_90;\n        uVar28 = (uint)bVar2;\n        psVar31 = (size_t *)((int)local_90 + 1);\n        if (DVar6 == IGNORE_SPACE_CHANGE) {\n          if (bVar2 != 10) {\n            ppuVar14 = __ctype_b_loc();\n            uVar9 = 0;\n            puVar4 = *ppuVar14;\n            do {\n              pbVar33 = (byte *)psVar31;\n              if ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0) {\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;\n              }\n              uVar25 = uVar28;\n              if (_Var8 != false) {\n                pp_Var15 = __ctype_tolower_loc();\n                uVar25 = (*pp_Var15)[uVar28];\n              }\n              bVar2 = *(byte *)psVar31;\n              uVar28 = (uint)bVar2;\n              psVar31 = (size_t *)((int)psVar31 + 1);\n              uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar25;\n            } while (bVar2 != 10);\n            goto LAB_0001a0a0;\n          }\nLAB_0001a500:\n          pbVar33 = (byte *)0x0;\n          uVar9 = 0;\n        }\n        else {\n          if (DVar6 < IGNORE_ALL_SPACE) {\n            if (DVar6 == IGNORE_NO_WHITE_SPACE) {\nLAB_0001a398:\n              if (_Var8 == false) {\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n              else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n            }\n            else {\n              uVar9 = 0;\n              psVar31 = (size_t *)((int)local_90 + 1);\n              if (bVar2 != 10) {\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }\n            }\n          }\n          else {\n            if (DVar6 != IGNORE_ALL_SPACE) goto LAB_0001a398;\n            uVar9 = 0;\n            psVar31 = local_90;\n            while (psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n') {\n              ppuVar14 = __ctype_b_loc();\n              if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }\n              uVar28 = (uint)*(byte *)psVar31;\n            }\n          }\nLAB_0001a0a0:\n          pbVar33 = (byte *)((int)psVar31 + (-1 - (int)local_90));\n        }\nLAB_0001a0a9:\n        puVar1 = (uint *)(buckets + uVar9 % nbuckets);\n        local_84 = puVar1;\n        if (((((size_t *)pbVar13 == psVar31) && (*(_Bool *)(local_5c + 0x10) != false)) &&\n            (1 < output_style - OUTPUT_ED)) &&\n           (local_84 = (size_t *)(buckets + -1), IGNORE_TAB_EXPANSION < DVar6)) {\n          local_84 = puVar1;\n        }\n        uVar28 = *local_84;\n        local_78 = (size_t *)uVar28;\njoined_r0x0001a0d6:\n        if (local_78 != (size_t *)0x0) {\n          do {\n            peVar34 = local_7c + (int)local_78;\n            if (uVar9 == peVar34->hash) {\n              s1 = peVar34->line;\n              if ((byte *)peVar34->length == pbVar33) {\n                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);\n                if (iVar37 == 0) goto joined_r0x0001a144;\n                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;\n              }\n              else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;\n              _Var7 = lines_differ(s1,(char *)local_90);\n              if (!_Var7) goto joined_r0x0001a144;\n            }\nLAB_0001a0f0:\n            local_78 = (size_t *)peVar34->next;\n            if (local_78 == (size_t *)0x0) break;\n          } while( true );\n        }\n        if (local_60 == local_64) {\n          if (0x3fffffe < local_60) goto LAB_0001a9c0;\n          local_7c = (equivclass *)xrealloc(local_7c,local_60 << 5);\n          uVar28 = *local_84;\n          local_60 = local_60 * 2;\n        }\n        peVar34 = local_7c + local_64;\n        peVar34->next = uVar28;\n        peVar34->hash = uVar9;\n        peVar34->line = (char *)local_90;\n        peVar34->length = (size_t)pbVar33;\n        *local_84 = local_64;\n        local_78 = (size_t *)local_64;\n        local_64 = local_64 + 1;\njoined_r0x0001a144:\n        if (local_8c == (size_t *)local_6c) {\n          if (((0x2aaaaaa9 < (int)local_8c) ||\n              (local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c)) ||\n             (0x1ffffffe < (uint)((int)local_8c - iVar22))) goto LAB_0001a9c0;\n          local_68 = (lin *)xrealloc(local_68,local_6c * 4);\n          pvVar12 = xrealloc(local_80 + iVar22,(local_6c - iVar22) * 4);\n          local_80 = (char **)((int)pvVar12 + iVar22 * -4);\n        }\n        local_80[(int)local_8c] = (char *)local_90;\n        local_68[(int)local_8c] = (lin)local_78;\n        local_8c = (size_t *)((int)local_8c + 1);\n        local_90 = psVar31;\n        if (pbVar32 <= psVar31) goto LAB_0001a520;\n      } while( true );\n    }\n    local_8c = (size_t *)0x0;\nLAB_0001a520:\n    local_5c[5] = local_8c;\n    iVar37 = 0;\n    while ((size_t *)local_6c != local_8c) {\n      ppcVar16 = local_80 + (int)local_8c;\n      *ppcVar16 = (char *)psVar31;\n      if ((size_t *)pbVar13 == psVar31) goto LAB_0001a5e6;\nLAB_0001a553:\n      if ((context <= iVar37) && (no_diff_means_no_output != false)) goto LAB_0001a618;\n      local_8c = (size_t *)((int)local_8c + 1);\n      pbVar32 = (byte *)psVar31;\n      do {\n        psVar31 = (size_t *)(pbVar32 + 1);\n        bVar2 = *pbVar32;\n        pbVar32 = (byte *)psVar31;\n      } while (bVar2 != 10);\n      iVar37 = iVar37 + 1;\n    }\n    if (((0x2aaaaaa9 < (int)local_6c) || (uVar28 = local_6c * 2 - iVar22, 0x1ffffffe < uVar28)) ||\n       (0x1ffffffe < local_6c - iVar22)) goto LAB_0001a9c0;\n    pvVar12 = xrealloc(local_80 + iVar22,(uVar28 - iVar22) * 4);\n    local_80 = (char **)(iVar22 * -4 + (int)pvVar12);\n    ppcVar16 = local_80 + (int)local_8c;\n    *ppcVar16 = (char *)psVar31;\n    local_6c = uVar28;\n    if ((size_t *)pbVar13 != psVar31) goto LAB_0001a553;\nLAB_0001a5e6:\n    if ((*(_Bool *)(local_5c + 0x10) != false) && (1 < output_style - OUTPUT_ED)) {\n      *ppcVar16 = (char *)(pbVar13 + -1);\n    }\nLAB_0001a618:\n    local_5c[3] = (size_t *)local_80;\n    ppsVar17 = local_5c + 0x2c;\n    equivs = local_7c;\n    local_5c[6] = local_8c;\n    local_5c[7] = (size_t *)local_6c;\n    local_5c[0xb] = (size_t *)local_68;\n    equivs_alloc = local_60;\n    equivs_index = local_64;\n    local_5c = ppsVar17;\n    if (&filevec[2].buffer == ppsVar17) {\n      filevec[1].equiv_max = local_64;\n      filevec->equiv_max = local_64;\n      free(local_7c);\n      free(buckets + -1);\n      return bVar18;\n    }\n  } while( true );\ncode_r0x0001a1dc:\n  local_78 = (size_t *)peVar34->next;\n  goto joined_r0x0001a0d6;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *s1;" primitive_type (pointer_declarator "*s1" * identifier) ;) (declaration "ushort *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "size_t sVar5;" primitive_type identifier ;) (declaration "DIFF_white_space DVar6;" type_identifier identifier ;) (declaration "_Bool _Var7;" type_identifier identifier ;) (declaration "_Bool _Var8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined4 *p;" type_identifier (pointer_declarator "*p" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "void *pvVar12;" primitive_type (pointer_declarator "*pvVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "ushort **ppuVar14;" type_identifier (pointer_declarator "**ppuVar14" * (pointer_declarator "*ppuVar14" * identifier)) ;) (declaration "__int32_t **pp_Var15;" type_identifier (pointer_declarator "**pp_Var15" * (pointer_declarator "*pp_Var15" * identifier)) ;) (declaration "char **ppcVar16;" primitive_type (pointer_declarator "**ppcVar16" * (pointer_declarator "*ppcVar16" * identifier)) ;) (declaration "size_t **ppsVar17;" primitive_type (pointer_declarator "**ppsVar17" * (pointer_declarator "*ppsVar17" * identifier)) ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "lin lVar19;" type_identifier identifier ;) (declaration "size_t *psVar20;" primitive_type (pointer_declarator "*psVar20" * identifier) ;) (declaration "undefined4 *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "char cVar23;" primitive_type identifier ;) (declaration "size_t *psVar24;" primitive_type (pointer_declarator "*psVar24" * identifier) ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "undefined4 *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "lin lVar27;" type_identifier identifier ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "DIFF_white_space DVar29;" type_identifier identifier ;) (declaration "byte *pbVar30;" type_identifier (pointer_declarator "*pbVar30" * identifier) ;) (declaration "size_t *psVar31;" primitive_type (pointer_declarator "*psVar31" * identifier) ;) (declaration "byte *pbVar33;" type_identifier (pointer_declarator "*pbVar33" * identifier) ;) (declaration "equivclass *peVar34;" type_identifier (pointer_declarator "*peVar34" * identifier) ;) (declaration "size_t *psVar35;" primitive_type (pointer_declarator "*psVar35" * identifier) ;) (declaration "size_t *psVar36;" primitive_type (pointer_declarator "*psVar36" * identifier) ;) (declaration "int iVar37;" primitive_type identifier ;) (declaration "bool bVar38;" primitive_type identifier ;) (declaration "bool bVar39;" primitive_type identifier ;) (declaration "size_t *local_90;" primitive_type (pointer_declarator "*local_90" * identifier) ;) (declaration "size_t *local_8c;" primitive_type (pointer_declarator "*local_8c" * identifier) ;) (declaration "uint local_88;" type_identifier identifier ;) (declaration "size_t *local_84;" primitive_type (pointer_declarator "*local_84" * identifier) ;) (declaration "char **local_80;" primitive_type (pointer_declarator "**local_80" * (pointer_declarator "*local_80" * identifier)) ;) (declaration "equivclass *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "size_t *local_78;" primitive_type (pointer_declarator "*local_78" * identifier) ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "size_t *local_70;" primitive_type (pointer_declarator "*local_70" * identifier) ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "lin *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "uint local_60;" type_identifier identifier ;) (declaration "size_t **local_5c;" primitive_type (pointer_declarator "**local_5c" * (pointer_declarator "*local_5c" * identifier)) ;) (declaration "byte *pbVar32;" type_identifier (pointer_declarator "*pbVar32" * identifier) ;) (expression_statement "_Var8 = text;" (assignment_expression "_Var8 = text" identifier = identifier) ;) (expression_statement "_Var7 = sip(filevec,text || pretend_binary);" (assignment_expression "_Var7 = sip(filevec,text || pretend_binary)" identifier = (call_expression "sip(filevec,text || pretend_binary)" identifier (argument_list "(filevec,text || pretend_binary)" ( identifier , (binary_expression "text || pretend_binary" identifier || identifier) )))) ;) (expression_statement "bVar18 = _Var7 || pretend_binary;" (assignment_expression "bVar18 = _Var7 || pretend_binary" identifier = (binary_expression "_Var7 || pretend_binary" identifier || identifier)) ;) (if_statement "if (filevec->desc == filevec[1].desc) {\n    filevec[1].buffer = filevec->buffer;\n    filevec[1].bufsize = filevec->bufsize;\n    filevec[1].buffered = filevec->buffered;\n    if (bVar18) {\n      return bVar18;\n    }\n  }\n  else {\n    _Var8 = sip(filevec + 1,pretend_binary || (_Var8 || _Var7));\n    if (bVar18 || _Var8) {\n      return bVar18 || _Var8;\n    }\n  }" if (parenthesized_expression "(filevec->desc == filevec[1].desc)" ( (binary_expression "filevec->desc == filevec[1].desc" (field_expression "filevec->desc" identifier -> field_identifier) == (field_expression "filevec[1].desc" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier)) )) (compound_statement "{\n    filevec[1].buffer = filevec->buffer;\n    filevec[1].bufsize = filevec->bufsize;\n    filevec[1].buffered = filevec->buffered;\n    if (bVar18) {\n      return bVar18;\n    }\n  }" { (expression_statement "filevec[1].buffer = filevec->buffer;" (assignment_expression "filevec[1].buffer = filevec->buffer" (field_expression "filevec[1].buffer" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "filevec->buffer" identifier -> field_identifier)) ;) (expression_statement "filevec[1].bufsize = filevec->bufsize;" (assignment_expression "filevec[1].bufsize = filevec->bufsize" (field_expression "filevec[1].bufsize" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "filevec->bufsize" identifier -> field_identifier)) ;) (expression_statement "filevec[1].buffered = filevec->buffered;" (assignment_expression "filevec[1].buffered = filevec->buffered" (field_expression "filevec[1].buffered" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "filevec->buffered" identifier -> field_identifier)) ;) (if_statement "if (bVar18) {\n      return bVar18;\n    }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n      return bVar18;\n    }" { (return_statement "return bVar18;" return identifier ;) })) }) (else_clause "else {\n    _Var8 = sip(filevec + 1,pretend_binary || (_Var8 || _Var7));\n    if (bVar18 || _Var8) {\n      return bVar18 || _Var8;\n    }\n  }" else (compound_statement "{\n    _Var8 = sip(filevec + 1,pretend_binary || (_Var8 || _Var7));\n    if (bVar18 || _Var8) {\n      return bVar18 || _Var8;\n    }\n  }" { (expression_statement "_Var8 = sip(filevec + 1,pretend_binary || (_Var8 || _Var7));" (assignment_expression "_Var8 = sip(filevec + 1,pretend_binary || (_Var8 || _Var7))" identifier = (call_expression "sip(filevec + 1,pretend_binary || (_Var8 || _Var7))" identifier (argument_list "(filevec + 1,pretend_binary || (_Var8 || _Var7))" ( (binary_expression "filevec + 1" identifier + number_literal) , (binary_expression "pretend_binary || (_Var8 || _Var7)" identifier || (parenthesized_expression "(_Var8 || _Var7)" ( (binary_expression "_Var8 || _Var7" identifier || identifier) ))) )))) ;) (if_statement "if (bVar18 || _Var8) {\n      return bVar18 || _Var8;\n    }" if (parenthesized_expression "(bVar18 || _Var8)" ( (binary_expression "bVar18 || _Var8" identifier || identifier) )) (compound_statement "{\n      return bVar18 || _Var8;\n    }" { (return_statement "return bVar18 || _Var8;" return (binary_expression "bVar18 || _Var8" identifier || identifier) ;) })) }))) (expression_statement "slurp(filevec);" (call_expression "slurp(filevec)" identifier (argument_list "(filevec)" ( identifier ))) ;) (expression_statement "prepare_text(filevec);" (call_expression "prepare_text(filevec)" identifier (argument_list "(filevec)" ( identifier ))) ;) (if_statement "if (filevec->desc == filevec[1].desc) {\n    local_78 = filevec->buffer;\n    filevec[1].buffer = local_78;\n    filevec[1].bufsize = filevec->bufsize;\n    uVar28 = filevec->buffered;\n    filevec[1].buffered = uVar28;\n    filevec[1].missing_newline = filevec->missing_newline;\n    local_88 = uVar28;\nLAB_000199ff:\n    psVar31 = (size_t *)((int)local_78 + uVar28);\n    local_80 = (char **)(output_style - OUTPUT_ED);\n    local_90 = local_78;\n    local_84 = (size_t *)(local_88 + (int)local_78);\n    local_8c = psVar31;\n    lVar19 = horizon_lines;\n    local_7c = (equivclass *)psVar31;\n  }\n  else {\n    slurp(filevec + 1);\n    prepare_text(filevec + 1);\n    local_88 = filevec->buffered;\n    local_90 = filevec->buffer;\n    local_78 = filevec[1].buffer;\n    uVar28 = filevec[1].buffered;\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (size_t *)((int)local_90 + local_88);\n    local_7c = (equivclass *)((int)local_78 + uVar28);\n    if (local_88 < uVar28) {\n      *(byte *)local_84 = ~*(byte *)((int)local_78 + local_88);\n    }\n    else {\n      *(byte *)local_7c = ~*(byte *)((int)local_90 + uVar28);\n    }\n    psVar31 = local_90;\n    local_8c = local_78;\n    if (*local_78 == *local_90) {\n      do {\n        local_8c = local_8c + 1;\n        psVar31 = psVar31 + 1;\n      } while (*psVar31 == *local_8c);\n    }\n    if ((byte)*local_8c == (byte)*psVar31) {\n      do {\n        local_8c = (size_t *)((int)local_8c + 1);\n        psVar31 = (size_t *)((int)psVar31 + 1);\n      } while (*(byte *)psVar31 == *(byte *)local_8c);\n    }\n    local_80 = (char **)(output_style - OUTPUT_ED);\n    lVar19 = horizon_lines;\n    if ((1 < local_80) &&\n       ((size_t *)((int)local_90 + (local_88 - filevec->missing_newline)) < psVar31 !=\n        (size_t *)((int)local_78 + (uVar28 - filevec[1].missing_newline)) < local_8c)) {\n      local_8c = (size_t *)((int)local_8c + -1);\n      psVar31 = (size_t *)((int)psVar31 + -1);\n    }\n  }" if (parenthesized_expression "(filevec->desc == filevec[1].desc)" ( (binary_expression "filevec->desc == filevec[1].desc" (field_expression "filevec->desc" identifier -> field_identifier) == (field_expression "filevec[1].desc" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier)) )) (compound_statement "{\n    local_78 = filevec->buffer;\n    filevec[1].buffer = local_78;\n    filevec[1].bufsize = filevec->bufsize;\n    uVar28 = filevec->buffered;\n    filevec[1].buffered = uVar28;\n    filevec[1].missing_newline = filevec->missing_newline;\n    local_88 = uVar28;\nLAB_000199ff:\n    psVar31 = (size_t *)((int)local_78 + uVar28);\n    local_80 = (char **)(output_style - OUTPUT_ED);\n    local_90 = local_78;\n    local_84 = (size_t *)(local_88 + (int)local_78);\n    local_8c = psVar31;\n    lVar19 = horizon_lines;\n    local_7c = (equivclass *)psVar31;\n  }" { (expression_statement "local_78 = filevec->buffer;" (assignment_expression "local_78 = filevec->buffer" identifier = (field_expression "filevec->buffer" identifier -> field_identifier)) ;) (expression_statement "filevec[1].buffer = local_78;" (assignment_expression "filevec[1].buffer = local_78" (field_expression "filevec[1].buffer" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "filevec[1].bufsize = filevec->bufsize;" (assignment_expression "filevec[1].bufsize = filevec->bufsize" (field_expression "filevec[1].bufsize" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "filevec->bufsize" identifier -> field_identifier)) ;) (expression_statement "uVar28 = filevec->buffered;" (assignment_expression "uVar28 = filevec->buffered" identifier = (field_expression "filevec->buffered" identifier -> field_identifier)) ;) (expression_statement "filevec[1].buffered = uVar28;" (assignment_expression "filevec[1].buffered = uVar28" (field_expression "filevec[1].buffered" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "filevec[1].missing_newline = filevec->missing_newline;" (assignment_expression "filevec[1].missing_newline = filevec->missing_newline" (field_expression "filevec[1].missing_newline" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier) = (field_expression "filevec->missing_newline" identifier -> field_identifier)) ;) (expression_statement "local_88 = uVar28;" (assignment_expression "local_88 = uVar28" identifier = identifier) ;) (labeled_statement "LAB_000199ff:\n    psVar31 = (size_t *)((int)local_78 + uVar28);" statement_identifier : (expression_statement "psVar31 = (size_t *)((int)local_78 + uVar28);" (assignment_expression "psVar31 = (size_t *)((int)local_78 + uVar28)" identifier = (cast_expression "(size_t *)((int)local_78 + uVar28)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_78 + uVar28)" ( (binary_expression "(int)local_78 + uVar28" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;)) (expression_statement "local_80 = (char **)(output_style - OUTPUT_ED);" (assignment_expression "local_80 = (char **)(output_style - OUTPUT_ED)" identifier = (cast_expression "(char **)(output_style - OUTPUT_ED)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(output_style - OUTPUT_ED)" ( (binary_expression "output_style - OUTPUT_ED" identifier - identifier) )))) ;) (expression_statement "local_90 = local_78;" (assignment_expression "local_90 = local_78" identifier = identifier) ;) (expression_statement "local_84 = (size_t *)(local_88 + (int)local_78);" (assignment_expression "local_84 = (size_t *)(local_88 + (int)local_78)" identifier = (cast_expression "(size_t *)(local_88 + (int)local_78)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_88 + (int)local_78)" ( (binary_expression "local_88 + (int)local_78" identifier + (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_8c = psVar31;" (assignment_expression "local_8c = psVar31" identifier = identifier) ;) (expression_statement "lVar19 = horizon_lines;" (assignment_expression "lVar19 = horizon_lines" identifier = identifier) ;) (expression_statement "local_7c = (equivclass *)psVar31;" (assignment_expression "local_7c = (equivclass *)psVar31" identifier = (cast_expression "(equivclass *)psVar31" ( (type_descriptor "equivclass *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n    slurp(filevec + 1);\n    prepare_text(filevec + 1);\n    local_88 = filevec->buffered;\n    local_90 = filevec->buffer;\n    local_78 = filevec[1].buffer;\n    uVar28 = filevec[1].buffered;\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (size_t *)((int)local_90 + local_88);\n    local_7c = (equivclass *)((int)local_78 + uVar28);\n    if (local_88 < uVar28) {\n      *(byte *)local_84 = ~*(byte *)((int)local_78 + local_88);\n    }\n    else {\n      *(byte *)local_7c = ~*(byte *)((int)local_90 + uVar28);\n    }\n    psVar31 = local_90;\n    local_8c = local_78;\n    if (*local_78 == *local_90) {\n      do {\n        local_8c = local_8c + 1;\n        psVar31 = psVar31 + 1;\n      } while (*psVar31 == *local_8c);\n    }\n    if ((byte)*local_8c == (byte)*psVar31) {\n      do {\n        local_8c = (size_t *)((int)local_8c + 1);\n        psVar31 = (size_t *)((int)psVar31 + 1);\n      } while (*(byte *)psVar31 == *(byte *)local_8c);\n    }\n    local_80 = (char **)(output_style - OUTPUT_ED);\n    lVar19 = horizon_lines;\n    if ((1 < local_80) &&\n       ((size_t *)((int)local_90 + (local_88 - filevec->missing_newline)) < psVar31 !=\n        (size_t *)((int)local_78 + (uVar28 - filevec[1].missing_newline)) < local_8c)) {\n      local_8c = (size_t *)((int)local_8c + -1);\n      psVar31 = (size_t *)((int)psVar31 + -1);\n    }\n  }" else (compound_statement "{\n    slurp(filevec + 1);\n    prepare_text(filevec + 1);\n    local_88 = filevec->buffered;\n    local_90 = filevec->buffer;\n    local_78 = filevec[1].buffer;\n    uVar28 = filevec[1].buffered;\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (size_t *)((int)local_90 + local_88);\n    local_7c = (equivclass *)((int)local_78 + uVar28);\n    if (local_88 < uVar28) {\n      *(byte *)local_84 = ~*(byte *)((int)local_78 + local_88);\n    }\n    else {\n      *(byte *)local_7c = ~*(byte *)((int)local_90 + uVar28);\n    }\n    psVar31 = local_90;\n    local_8c = local_78;\n    if (*local_78 == *local_90) {\n      do {\n        local_8c = local_8c + 1;\n        psVar31 = psVar31 + 1;\n      } while (*psVar31 == *local_8c);\n    }\n    if ((byte)*local_8c == (byte)*psVar31) {\n      do {\n        local_8c = (size_t *)((int)local_8c + 1);\n        psVar31 = (size_t *)((int)psVar31 + 1);\n      } while (*(byte *)psVar31 == *(byte *)local_8c);\n    }\n    local_80 = (char **)(output_style - OUTPUT_ED);\n    lVar19 = horizon_lines;\n    if ((1 < local_80) &&\n       ((size_t *)((int)local_90 + (local_88 - filevec->missing_newline)) < psVar31 !=\n        (size_t *)((int)local_78 + (uVar28 - filevec[1].missing_newline)) < local_8c)) {\n      local_8c = (size_t *)((int)local_8c + -1);\n      psVar31 = (size_t *)((int)psVar31 + -1);\n    }\n  }" { (expression_statement "slurp(filevec + 1);" (call_expression "slurp(filevec + 1)" identifier (argument_list "(filevec + 1)" ( (binary_expression "filevec + 1" identifier + number_literal) ))) ;) (expression_statement "prepare_text(filevec + 1);" (call_expression "prepare_text(filevec + 1)" identifier (argument_list "(filevec + 1)" ( (binary_expression "filevec + 1" identifier + number_literal) ))) ;) (expression_statement "local_88 = filevec->buffered;" (assignment_expression "local_88 = filevec->buffered" identifier = (field_expression "filevec->buffered" identifier -> field_identifier)) ;) (expression_statement "local_90 = filevec->buffer;" (assignment_expression "local_90 = filevec->buffer" identifier = (field_expression "filevec->buffer" identifier -> field_identifier)) ;) (expression_statement "local_78 = filevec[1].buffer;" (assignment_expression "local_78 = filevec[1].buffer" identifier = (field_expression "filevec[1].buffer" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "uVar28 = filevec[1].buffered;" (assignment_expression "uVar28 = filevec[1].buffered" identifier = (field_expression "filevec[1].buffered" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (local_90 == local_78) goto LAB_000199ff;" if (parenthesized_expression "(local_90 == local_78)" ( (binary_expression "local_90 == local_78" identifier == identifier) )) (goto_statement "goto LAB_000199ff;" goto statement_identifier ;)) (expression_statement "local_84 = (size_t *)((int)local_90 + local_88);" (assignment_expression "local_84 = (size_t *)((int)local_90 + local_88)" identifier = (cast_expression "(size_t *)((int)local_90 + local_88)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + local_88)" ( (binary_expression "(int)local_90 + local_88" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "local_7c = (equivclass *)((int)local_78 + uVar28);" (assignment_expression "local_7c = (equivclass *)((int)local_78 + uVar28)" identifier = (cast_expression "(equivclass *)((int)local_78 + uVar28)" ( (type_descriptor "equivclass *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_78 + uVar28)" ( (binary_expression "(int)local_78 + uVar28" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (local_88 < uVar28) {\n      *(byte *)local_84 = ~*(byte *)((int)local_78 + local_88);\n    }\n    else {\n      *(byte *)local_7c = ~*(byte *)((int)local_90 + uVar28);\n    }" if (parenthesized_expression "(local_88 < uVar28)" ( (binary_expression "local_88 < uVar28" identifier < identifier) )) (compound_statement "{\n      *(byte *)local_84 = ~*(byte *)((int)local_78 + local_88);\n    }" { (expression_statement "*(byte *)local_84 = ~*(byte *)((int)local_78 + local_88);" (assignment_expression "*(byte *)local_84 = ~*(byte *)((int)local_78 + local_88)" (pointer_expression "*(byte *)local_84" * (cast_expression "(byte *)local_84" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (unary_expression "~*(byte *)((int)local_78 + local_88)" ~ (pointer_expression "*(byte *)((int)local_78 + local_88)" * (cast_expression "(byte *)((int)local_78 + local_88)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_78 + local_88)" ( (binary_expression "(int)local_78 + local_88" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))))) ;) }) (else_clause "else {\n      *(byte *)local_7c = ~*(byte *)((int)local_90 + uVar28);\n    }" else (compound_statement "{\n      *(byte *)local_7c = ~*(byte *)((int)local_90 + uVar28);\n    }" { (expression_statement "*(byte *)local_7c = ~*(byte *)((int)local_90 + uVar28);" (assignment_expression "*(byte *)local_7c = ~*(byte *)((int)local_90 + uVar28)" (pointer_expression "*(byte *)local_7c" * (cast_expression "(byte *)local_7c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (unary_expression "~*(byte *)((int)local_90 + uVar28)" ~ (pointer_expression "*(byte *)((int)local_90 + uVar28)" * (cast_expression "(byte *)((int)local_90 + uVar28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + uVar28)" ( (binary_expression "(int)local_90 + uVar28" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))))) ;) }))) (expression_statement "psVar31 = local_90;" (assignment_expression "psVar31 = local_90" identifier = identifier) ;) (expression_statement "local_8c = local_78;" (assignment_expression "local_8c = local_78" identifier = identifier) ;) (if_statement "if (*local_78 == *local_90) {\n      do {\n        local_8c = local_8c + 1;\n        psVar31 = psVar31 + 1;\n      } while (*psVar31 == *local_8c);\n    }" if (parenthesized_expression "(*local_78 == *local_90)" ( (binary_expression "*local_78 == *local_90" (pointer_expression "*local_78" * identifier) == (pointer_expression "*local_90" * identifier)) )) (compound_statement "{\n      do {\n        local_8c = local_8c + 1;\n        psVar31 = psVar31 + 1;\n      } while (*psVar31 == *local_8c);\n    }" { (do_statement "do {\n        local_8c = local_8c + 1;\n        psVar31 = psVar31 + 1;\n      } while (*psVar31 == *local_8c);" do (compound_statement "{\n        local_8c = local_8c + 1;\n        psVar31 = psVar31 + 1;\n      }" { (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" identifier = (binary_expression "local_8c + 1" identifier + number_literal)) ;) (expression_statement "psVar31 = psVar31 + 1;" (assignment_expression "psVar31 = psVar31 + 1" identifier = (binary_expression "psVar31 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*psVar31 == *local_8c)" ( (binary_expression "*psVar31 == *local_8c" (pointer_expression "*psVar31" * identifier) == (pointer_expression "*local_8c" * identifier)) )) ;) })) (if_statement "if ((byte)*local_8c == (byte)*psVar31) {\n      do {\n        local_8c = (size_t *)((int)local_8c + 1);\n        psVar31 = (size_t *)((int)psVar31 + 1);\n      } while (*(byte *)psVar31 == *(byte *)local_8c);\n    }" if (parenthesized_expression "((byte)*local_8c == (byte)*psVar31)" ( (binary_expression "(byte)*local_8c == (byte)*psVar31" (binary_expression "(byte)*local_8c" (parenthesized_expression "(byte)" ( identifier )) * identifier) == (binary_expression "(byte)*psVar31" (parenthesized_expression "(byte)" ( identifier )) * identifier)) )) (compound_statement "{\n      do {\n        local_8c = (size_t *)((int)local_8c + 1);\n        psVar31 = (size_t *)((int)psVar31 + 1);\n      } while (*(byte *)psVar31 == *(byte *)local_8c);\n    }" { (do_statement "do {\n        local_8c = (size_t *)((int)local_8c + 1);\n        psVar31 = (size_t *)((int)psVar31 + 1);\n      } while (*(byte *)psVar31 == *(byte *)local_8c);" do (compound_statement "{\n        local_8c = (size_t *)((int)local_8c + 1);\n        psVar31 = (size_t *)((int)psVar31 + 1);\n      }" { (expression_statement "local_8c = (size_t *)((int)local_8c + 1);" (assignment_expression "local_8c = (size_t *)((int)local_8c + 1)" identifier = (cast_expression "(size_t *)((int)local_8c + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + 1)" ( (binary_expression "(int)local_8c + 1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "psVar31 = (size_t *)((int)psVar31 + 1);" (assignment_expression "psVar31 = (size_t *)((int)psVar31 + 1)" identifier = (cast_expression "(size_t *)((int)psVar31 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar31 + 1)" ( (binary_expression "(int)psVar31 + 1" (cast_expression "(int)psVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(*(byte *)psVar31 == *(byte *)local_8c)" ( (binary_expression "*(byte *)psVar31 == *(byte *)local_8c" (pointer_expression "*(byte *)psVar31" * (cast_expression "(byte *)psVar31" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*(byte *)local_8c" * (cast_expression "(byte *)local_8c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) })) (expression_statement "local_80 = (char **)(output_style - OUTPUT_ED);" (assignment_expression "local_80 = (char **)(output_style - OUTPUT_ED)" identifier = (cast_expression "(char **)(output_style - OUTPUT_ED)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(output_style - OUTPUT_ED)" ( (binary_expression "output_style - OUTPUT_ED" identifier - identifier) )))) ;) (expression_statement "lVar19 = horizon_lines;" (assignment_expression "lVar19 = horizon_lines" identifier = identifier) ;) (if_statement "if ((1 < local_80) &&\n       ((size_t *)((int)local_90 + (local_88 - filevec->missing_newline)) < psVar31 !=\n        (size_t *)((int)local_78 + (uVar28 - filevec[1].missing_newline)) < local_8c)) {\n      local_8c = (size_t *)((int)local_8c + -1);\n      psVar31 = (size_t *)((int)psVar31 + -1);\n    }" if (parenthesized_expression "((1 < local_80) &&\n       ((size_t *)((int)local_90 + (local_88 - filevec->missing_newline)) < psVar31 !=\n        (size_t *)((int)local_78 + (uVar28 - filevec[1].missing_newline)) < local_8c))" ( (binary_expression "(1 < local_80) &&\n       ((size_t *)((int)local_90 + (local_88 - filevec->missing_newline)) < psVar31 !=\n        (size_t *)((int)local_78 + (uVar28 - filevec[1].missing_newline)) < local_8c)" (parenthesized_expression "(1 < local_80)" ( (binary_expression "1 < local_80" number_literal < identifier) )) && (parenthesized_expression "((size_t *)((int)local_90 + (local_88 - filevec->missing_newline)) < psVar31 !=\n        (size_t *)((int)local_78 + (uVar28 - filevec[1].missing_newline)) < local_8c)" ( (binary_expression "(size_t *)((int)local_90 + (local_88 - filevec->missing_newline)) < psVar31 !=\n        (size_t *)((int)local_78 + (uVar28 - filevec[1].missing_newline)) < local_8c" (binary_expression "(size_t *)((int)local_90 + (local_88 - filevec->missing_newline)) < psVar31" (cast_expression "(size_t *)((int)local_90 + (local_88 - filevec->missing_newline))" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + (local_88 - filevec->missing_newline))" ( (binary_expression "(int)local_90 + (local_88 - filevec->missing_newline)" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(local_88 - filevec->missing_newline)" ( (binary_expression "local_88 - filevec->missing_newline" identifier - (field_expression "filevec->missing_newline" identifier -> field_identifier)) ))) ))) < identifier) != (binary_expression "(size_t *)((int)local_78 + (uVar28 - filevec[1].missing_newline)) < local_8c" (cast_expression "(size_t *)((int)local_78 + (uVar28 - filevec[1].missing_newline))" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_78 + (uVar28 - filevec[1].missing_newline))" ( (binary_expression "(int)local_78 + (uVar28 - filevec[1].missing_newline)" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(uVar28 - filevec[1].missing_newline)" ( (binary_expression "uVar28 - filevec[1].missing_newline" identifier - (field_expression "filevec[1].missing_newline" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier)) ))) ))) < identifier)) ))) )) (compound_statement "{\n      local_8c = (size_t *)((int)local_8c + -1);\n      psVar31 = (size_t *)((int)psVar31 + -1);\n    }" { (expression_statement "local_8c = (size_t *)((int)local_8c + -1);" (assignment_expression "local_8c = (size_t *)((int)local_8c + -1)" identifier = (cast_expression "(size_t *)((int)local_8c + -1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + -1)" ( (binary_expression "(int)local_8c + -1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "psVar31 = (size_t *)((int)psVar31 + -1);" (assignment_expression "psVar31 = (size_t *)((int)psVar31 + -1)" identifier = (cast_expression "(size_t *)((int)psVar31 + -1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar31 + -1)" ( (binary_expression "(int)psVar31 + -1" (cast_expression "(int)psVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) }))) (for_statement "for (; uVar9 = local_88, lVar27 = horizon_lines, psVar31 != local_90;\n      psVar31 = (size_t *)((int)psVar31 + -1)) {\n    while (*(byte *)((int)psVar31 + -1) == 10) {\n      if (lVar19 == 0) goto LAB_00019a73;\n      psVar31 = (size_t *)((int)psVar31 + -1);\n      local_8c = (size_t *)((int)local_8c + -1);\n      lVar19 = lVar19 + -1;\n      if (psVar31 == local_90) goto LAB_00019a73;\n    }\n    local_8c = (size_t *)((int)local_8c + -1);\n  }" for ( ; (comma_expression "uVar9 = local_88, lVar27 = horizon_lines, psVar31 != local_90" (assignment_expression "uVar9 = local_88" identifier = identifier) , (comma_expression "lVar27 = horizon_lines, psVar31 != local_90" (assignment_expression "lVar27 = horizon_lines" identifier = identifier) , (binary_expression "psVar31 != local_90" identifier != identifier))) ; (assignment_expression "psVar31 = (size_t *)((int)psVar31 + -1)" identifier = (cast_expression "(size_t *)((int)psVar31 + -1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar31 + -1)" ( (binary_expression "(int)psVar31 + -1" (cast_expression "(int)psVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ) (compound_statement "{\n    while (*(byte *)((int)psVar31 + -1) == 10) {\n      if (lVar19 == 0) goto LAB_00019a73;\n      psVar31 = (size_t *)((int)psVar31 + -1);\n      local_8c = (size_t *)((int)local_8c + -1);\n      lVar19 = lVar19 + -1;\n      if (psVar31 == local_90) goto LAB_00019a73;\n    }\n    local_8c = (size_t *)((int)local_8c + -1);\n  }" { (while_statement "while (*(byte *)((int)psVar31 + -1) == 10) {\n      if (lVar19 == 0) goto LAB_00019a73;\n      psVar31 = (size_t *)((int)psVar31 + -1);\n      local_8c = (size_t *)((int)local_8c + -1);\n      lVar19 = lVar19 + -1;\n      if (psVar31 == local_90) goto LAB_00019a73;\n    }" while (parenthesized_expression "(*(byte *)((int)psVar31 + -1) == 10)" ( (binary_expression "*(byte *)((int)psVar31 + -1) == 10" (pointer_expression "*(byte *)((int)psVar31 + -1)" * (cast_expression "(byte *)((int)psVar31 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar31 + -1)" ( (binary_expression "(int)psVar31 + -1" (cast_expression "(int)psVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n      if (lVar19 == 0) goto LAB_00019a73;\n      psVar31 = (size_t *)((int)psVar31 + -1);\n      local_8c = (size_t *)((int)local_8c + -1);\n      lVar19 = lVar19 + -1;\n      if (psVar31 == local_90) goto LAB_00019a73;\n    }" { (if_statement "if (lVar19 == 0) goto LAB_00019a73;" if (parenthesized_expression "(lVar19 == 0)" ( (binary_expression "lVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019a73;" goto statement_identifier ;)) (expression_statement "psVar31 = (size_t *)((int)psVar31 + -1);" (assignment_expression "psVar31 = (size_t *)((int)psVar31 + -1)" identifier = (cast_expression "(size_t *)((int)psVar31 + -1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar31 + -1)" ( (binary_expression "(int)psVar31 + -1" (cast_expression "(int)psVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_8c = (size_t *)((int)local_8c + -1);" (assignment_expression "local_8c = (size_t *)((int)local_8c + -1)" identifier = (cast_expression "(size_t *)((int)local_8c + -1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + -1)" ( (binary_expression "(int)local_8c + -1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "lVar19 = lVar19 + -1;" (assignment_expression "lVar19 = lVar19 + -1" identifier = (binary_expression "lVar19 + -1" identifier + number_literal)) ;) (if_statement "if (psVar31 == local_90) goto LAB_00019a73;" if (parenthesized_expression "(psVar31 == local_90)" ( (binary_expression "psVar31 == local_90" identifier == identifier) )) (goto_statement "goto LAB_00019a73;" goto statement_identifier ;)) })) (expression_statement "local_8c = (size_t *)((int)local_8c + -1);" (assignment_expression "local_8c = (size_t *)((int)local_8c + -1)" identifier = (cast_expression "(size_t *)((int)local_8c + -1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + -1)" ( (binary_expression "(int)local_8c + -1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (labeled_statement "LAB_00019a73:\n  filevec->prefix_end = (char *)psVar31;" statement_identifier : (expression_statement "filevec->prefix_end = (char *)psVar31;" (assignment_expression "filevec->prefix_end = (char *)psVar31" (field_expression "filevec->prefix_end" identifier -> field_identifier) = (cast_expression "(char *)psVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "filevec[1].prefix_end = (char *)local_8c;" (assignment_expression "filevec[1].prefix_end = (char *)local_8c" (field_expression "filevec[1].prefix_end" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(char *)local_8c" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((local_80 < 2) ||\n     (local_70 = (size_t *)local_7c, psVar35 = local_84,\n     filevec->missing_newline == filevec[1].missing_newline)) {\n    psVar35 = (size_t *)((local_88 - uVar28) + (int)psVar31);\n    if (local_88 < uVar28) {\n      psVar35 = psVar31;\n    }\n    if ((psVar35 == local_84) || (*(byte *)((int)local_7c + -1) != *(byte *)((int)local_84 + -1))) {\n      local_80 = (char **)local_7c;\n      psVar20 = local_84;\n    }\n    else {\n      psVar36 = (size_t *)((int)local_7c + ((int)psVar35 - (int)local_84));\n      psVar35 = local_84;\n      peVar34 = local_7c;\n      do {\n        psVar24 = (size_t *)((int)peVar34 + -1);\n        psVar20 = (size_t *)((int)psVar35 + -1);\n        local_80 = (char **)psVar36;\n        if (psVar24 == psVar36) break;\n        pbVar32 = (byte *)((int)peVar34 + -2);\n        pbVar13 = (byte *)((int)psVar35 + -2);\n        psVar35 = psVar20;\n        local_80 = (char **)psVar24;\n        peVar34 = (equivclass *)psVar24;\n      } while (*pbVar13 == *pbVar32);\n    }\n    psVar35 = psVar20;\n    if ((psVar20 == local_90) || (*(byte *)((int)psVar20 + -1) == 10)) {\n      if ((char **)local_78 != local_80) {\n        lVar27 = lVar27 + (uint)(*(byte *)((int)local_80 + -1) != 10);\n      }\n    }\n    else {\n      lVar27 = lVar27 + 1;\n    }\n    for (; (psVar35 != local_84 && (lVar27 != 0)); lVar27 = lVar27 + -1) {\n      do {\n        psVar36 = (size_t *)((int)psVar35 + 1);\n        sVar11 = *psVar35;\n        psVar35 = psVar36;\n      } while ((byte)sVar11 != 10);\n    }\n    local_70 = (size_t *)(((int)psVar35 - (int)psVar20) + (int)local_80);\n  }" if (parenthesized_expression "((local_80 < 2) ||\n     (local_70 = (size_t *)local_7c, psVar35 = local_84,\n     filevec->missing_newline == filevec[1].missing_newline))" ( (binary_expression "(local_80 < 2) ||\n     (local_70 = (size_t *)local_7c, psVar35 = local_84,\n     filevec->missing_newline == filevec[1].missing_newline)" (parenthesized_expression "(local_80 < 2)" ( (binary_expression "local_80 < 2" identifier < number_literal) )) || (parenthesized_expression "(local_70 = (size_t *)local_7c, psVar35 = local_84,\n     filevec->missing_newline == filevec[1].missing_newline)" ( (comma_expression "local_70 = (size_t *)local_7c, psVar35 = local_84,\n     filevec->missing_newline == filevec[1].missing_newline" (assignment_expression "local_70 = (size_t *)local_7c" identifier = (cast_expression "(size_t *)local_7c" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "psVar35 = local_84,\n     filevec->missing_newline == filevec[1].missing_newline" (assignment_expression "psVar35 = local_84" identifier = identifier) , (binary_expression "filevec->missing_newline == filevec[1].missing_newline" (field_expression "filevec->missing_newline" identifier -> field_identifier) == (field_expression "filevec[1].missing_newline" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier)))) ))) )) (compound_statement "{\n    psVar35 = (size_t *)((local_88 - uVar28) + (int)psVar31);\n    if (local_88 < uVar28) {\n      psVar35 = psVar31;\n    }\n    if ((psVar35 == local_84) || (*(byte *)((int)local_7c + -1) != *(byte *)((int)local_84 + -1))) {\n      local_80 = (char **)local_7c;\n      psVar20 = local_84;\n    }\n    else {\n      psVar36 = (size_t *)((int)local_7c + ((int)psVar35 - (int)local_84));\n      psVar35 = local_84;\n      peVar34 = local_7c;\n      do {\n        psVar24 = (size_t *)((int)peVar34 + -1);\n        psVar20 = (size_t *)((int)psVar35 + -1);\n        local_80 = (char **)psVar36;\n        if (psVar24 == psVar36) break;\n        pbVar32 = (byte *)((int)peVar34 + -2);\n        pbVar13 = (byte *)((int)psVar35 + -2);\n        psVar35 = psVar20;\n        local_80 = (char **)psVar24;\n        peVar34 = (equivclass *)psVar24;\n      } while (*pbVar13 == *pbVar32);\n    }\n    psVar35 = psVar20;\n    if ((psVar20 == local_90) || (*(byte *)((int)psVar20 + -1) == 10)) {\n      if ((char **)local_78 != local_80) {\n        lVar27 = lVar27 + (uint)(*(byte *)((int)local_80 + -1) != 10);\n      }\n    }\n    else {\n      lVar27 = lVar27 + 1;\n    }\n    for (; (psVar35 != local_84 && (lVar27 != 0)); lVar27 = lVar27 + -1) {\n      do {\n        psVar36 = (size_t *)((int)psVar35 + 1);\n        sVar11 = *psVar35;\n        psVar35 = psVar36;\n      } while ((byte)sVar11 != 10);\n    }\n    local_70 = (size_t *)(((int)psVar35 - (int)psVar20) + (int)local_80);\n  }" { (expression_statement "psVar35 = (size_t *)((local_88 - uVar28) + (int)psVar31);" (assignment_expression "psVar35 = (size_t *)((local_88 - uVar28) + (int)psVar31)" identifier = (cast_expression "(size_t *)((local_88 - uVar28) + (int)psVar31)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((local_88 - uVar28) + (int)psVar31)" ( (binary_expression "(local_88 - uVar28) + (int)psVar31" (parenthesized_expression "(local_88 - uVar28)" ( (binary_expression "local_88 - uVar28" identifier - identifier) )) + (cast_expression "(int)psVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (local_88 < uVar28) {\n      psVar35 = psVar31;\n    }" if (parenthesized_expression "(local_88 < uVar28)" ( (binary_expression "local_88 < uVar28" identifier < identifier) )) (compound_statement "{\n      psVar35 = psVar31;\n    }" { (expression_statement "psVar35 = psVar31;" (assignment_expression "psVar35 = psVar31" identifier = identifier) ;) })) (if_statement "if ((psVar35 == local_84) || (*(byte *)((int)local_7c + -1) != *(byte *)((int)local_84 + -1))) {\n      local_80 = (char **)local_7c;\n      psVar20 = local_84;\n    }\n    else {\n      psVar36 = (size_t *)((int)local_7c + ((int)psVar35 - (int)local_84));\n      psVar35 = local_84;\n      peVar34 = local_7c;\n      do {\n        psVar24 = (size_t *)((int)peVar34 + -1);\n        psVar20 = (size_t *)((int)psVar35 + -1);\n        local_80 = (char **)psVar36;\n        if (psVar24 == psVar36) break;\n        pbVar32 = (byte *)((int)peVar34 + -2);\n        pbVar13 = (byte *)((int)psVar35 + -2);\n        psVar35 = psVar20;\n        local_80 = (char **)psVar24;\n        peVar34 = (equivclass *)psVar24;\n      } while (*pbVar13 == *pbVar32);\n    }" if (parenthesized_expression "((psVar35 == local_84) || (*(byte *)((int)local_7c + -1) != *(byte *)((int)local_84 + -1)))" ( (binary_expression "(psVar35 == local_84) || (*(byte *)((int)local_7c + -1) != *(byte *)((int)local_84 + -1))" (parenthesized_expression "(psVar35 == local_84)" ( (binary_expression "psVar35 == local_84" identifier == identifier) )) || (parenthesized_expression "(*(byte *)((int)local_7c + -1) != *(byte *)((int)local_84 + -1))" ( (binary_expression "*(byte *)((int)local_7c + -1) != *(byte *)((int)local_84 + -1)" (pointer_expression "*(byte *)((int)local_7c + -1)" * (cast_expression "(byte *)((int)local_7c + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + -1)" ( (binary_expression "(int)local_7c + -1" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (pointer_expression "*(byte *)((int)local_84 + -1)" * (cast_expression "(byte *)((int)local_84 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_84 + -1)" ( (binary_expression "(int)local_84 + -1" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) )) (compound_statement "{\n      local_80 = (char **)local_7c;\n      psVar20 = local_84;\n    }" { (expression_statement "local_80 = (char **)local_7c;" (assignment_expression "local_80 = (char **)local_7c" identifier = (cast_expression "(char **)local_7c" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "psVar20 = local_84;" (assignment_expression "psVar20 = local_84" identifier = identifier) ;) }) (else_clause "else {\n      psVar36 = (size_t *)((int)local_7c + ((int)psVar35 - (int)local_84));\n      psVar35 = local_84;\n      peVar34 = local_7c;\n      do {\n        psVar24 = (size_t *)((int)peVar34 + -1);\n        psVar20 = (size_t *)((int)psVar35 + -1);\n        local_80 = (char **)psVar36;\n        if (psVar24 == psVar36) break;\n        pbVar32 = (byte *)((int)peVar34 + -2);\n        pbVar13 = (byte *)((int)psVar35 + -2);\n        psVar35 = psVar20;\n        local_80 = (char **)psVar24;\n        peVar34 = (equivclass *)psVar24;\n      } while (*pbVar13 == *pbVar32);\n    }" else (compound_statement "{\n      psVar36 = (size_t *)((int)local_7c + ((int)psVar35 - (int)local_84));\n      psVar35 = local_84;\n      peVar34 = local_7c;\n      do {\n        psVar24 = (size_t *)((int)peVar34 + -1);\n        psVar20 = (size_t *)((int)psVar35 + -1);\n        local_80 = (char **)psVar36;\n        if (psVar24 == psVar36) break;\n        pbVar32 = (byte *)((int)peVar34 + -2);\n        pbVar13 = (byte *)((int)psVar35 + -2);\n        psVar35 = psVar20;\n        local_80 = (char **)psVar24;\n        peVar34 = (equivclass *)psVar24;\n      } while (*pbVar13 == *pbVar32);\n    }" { (expression_statement "psVar36 = (size_t *)((int)local_7c + ((int)psVar35 - (int)local_84));" (assignment_expression "psVar36 = (size_t *)((int)local_7c + ((int)psVar35 - (int)local_84))" identifier = (cast_expression "(size_t *)((int)local_7c + ((int)psVar35 - (int)local_84))" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + ((int)psVar35 - (int)local_84))" ( (binary_expression "(int)local_7c + ((int)psVar35 - (int)local_84)" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)psVar35 - (int)local_84)" ( (binary_expression "(int)psVar35 - (int)local_84" (cast_expression "(int)psVar35" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "psVar35 = local_84;" (assignment_expression "psVar35 = local_84" identifier = identifier) ;) (expression_statement "peVar34 = local_7c;" (assignment_expression "peVar34 = local_7c" identifier = identifier) ;) (do_statement "do {\n        psVar24 = (size_t *)((int)peVar34 + -1);\n        psVar20 = (size_t *)((int)psVar35 + -1);\n        local_80 = (char **)psVar36;\n        if (psVar24 == psVar36) break;\n        pbVar32 = (byte *)((int)peVar34 + -2);\n        pbVar13 = (byte *)((int)psVar35 + -2);\n        psVar35 = psVar20;\n        local_80 = (char **)psVar24;\n        peVar34 = (equivclass *)psVar24;\n      } while (*pbVar13 == *pbVar32);" do (compound_statement "{\n        psVar24 = (size_t *)((int)peVar34 + -1);\n        psVar20 = (size_t *)((int)psVar35 + -1);\n        local_80 = (char **)psVar36;\n        if (psVar24 == psVar36) break;\n        pbVar32 = (byte *)((int)peVar34 + -2);\n        pbVar13 = (byte *)((int)psVar35 + -2);\n        psVar35 = psVar20;\n        local_80 = (char **)psVar24;\n        peVar34 = (equivclass *)psVar24;\n      }" { (expression_statement "psVar24 = (size_t *)((int)peVar34 + -1);" (assignment_expression "psVar24 = (size_t *)((int)peVar34 + -1)" identifier = (cast_expression "(size_t *)((int)peVar34 + -1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)peVar34 + -1)" ( (binary_expression "(int)peVar34 + -1" (cast_expression "(int)peVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "psVar20 = (size_t *)((int)psVar35 + -1);" (assignment_expression "psVar20 = (size_t *)((int)psVar35 + -1)" identifier = (cast_expression "(size_t *)((int)psVar35 + -1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar35 + -1)" ( (binary_expression "(int)psVar35 + -1" (cast_expression "(int)psVar35" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_80 = (char **)psVar36;" (assignment_expression "local_80 = (char **)psVar36" identifier = (cast_expression "(char **)psVar36" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if (psVar24 == psVar36) break;" if (parenthesized_expression "(psVar24 == psVar36)" ( (binary_expression "psVar24 == psVar36" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar32 = (byte *)((int)peVar34 + -2);" (assignment_expression "pbVar32 = (byte *)((int)peVar34 + -2)" identifier = (cast_expression "(byte *)((int)peVar34 + -2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)peVar34 + -2)" ( (binary_expression "(int)peVar34 + -2" (cast_expression "(int)peVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar13 = (byte *)((int)psVar35 + -2);" (assignment_expression "pbVar13 = (byte *)((int)psVar35 + -2)" identifier = (cast_expression "(byte *)((int)psVar35 + -2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar35 + -2)" ( (binary_expression "(int)psVar35 + -2" (cast_expression "(int)psVar35" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "psVar35 = psVar20;" (assignment_expression "psVar35 = psVar20" identifier = identifier) ;) (expression_statement "local_80 = (char **)psVar24;" (assignment_expression "local_80 = (char **)psVar24" identifier = (cast_expression "(char **)psVar24" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "peVar34 = (equivclass *)psVar24;" (assignment_expression "peVar34 = (equivclass *)psVar24" identifier = (cast_expression "(equivclass *)psVar24" ( (type_descriptor "equivclass *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(*pbVar13 == *pbVar32)" ( (binary_expression "*pbVar13 == *pbVar32" (pointer_expression "*pbVar13" * identifier) == (pointer_expression "*pbVar32" * identifier)) )) ;) }))) (expression_statement "psVar35 = psVar20;" (assignment_expression "psVar35 = psVar20" identifier = identifier) ;) (if_statement "if ((psVar20 == local_90) || (*(byte *)((int)psVar20 + -1) == 10)) {\n      if ((char **)local_78 != local_80) {\n        lVar27 = lVar27 + (uint)(*(byte *)((int)local_80 + -1) != 10);\n      }\n    }\n    else {\n      lVar27 = lVar27 + 1;\n    }" if (parenthesized_expression "((psVar20 == local_90) || (*(byte *)((int)psVar20 + -1) == 10))" ( (binary_expression "(psVar20 == local_90) || (*(byte *)((int)psVar20 + -1) == 10)" (parenthesized_expression "(psVar20 == local_90)" ( (binary_expression "psVar20 == local_90" identifier == identifier) )) || (parenthesized_expression "(*(byte *)((int)psVar20 + -1) == 10)" ( (binary_expression "*(byte *)((int)psVar20 + -1) == 10" (pointer_expression "*(byte *)((int)psVar20 + -1)" * (cast_expression "(byte *)((int)psVar20 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar20 + -1)" ( (binary_expression "(int)psVar20 + -1" (cast_expression "(int)psVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      if ((char **)local_78 != local_80) {\n        lVar27 = lVar27 + (uint)(*(byte *)((int)local_80 + -1) != 10);\n      }\n    }" { (if_statement "if ((char **)local_78 != local_80) {\n        lVar27 = lVar27 + (uint)(*(byte *)((int)local_80 + -1) != 10);\n      }" if (parenthesized_expression "((char **)local_78 != local_80)" ( (binary_expression "(char **)local_78 != local_80" (cast_expression "(char **)local_78" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) != identifier) )) (compound_statement "{\n        lVar27 = lVar27 + (uint)(*(byte *)((int)local_80 + -1) != 10);\n      }" { (expression_statement "lVar27 = lVar27 + (uint)(*(byte *)((int)local_80 + -1) != 10);" (assignment_expression "lVar27 = lVar27 + (uint)(*(byte *)((int)local_80 + -1) != 10)" identifier = (binary_expression "lVar27 + (uint)(*(byte *)((int)local_80 + -1) != 10)" identifier + (call_expression "(uint)(*(byte *)((int)local_80 + -1) != 10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(*(byte *)((int)local_80 + -1) != 10)" ( (binary_expression "*(byte *)((int)local_80 + -1) != 10" (pointer_expression "*(byte *)((int)local_80 + -1)" * (cast_expression "(byte *)((int)local_80 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_80 + -1)" ( (binary_expression "(int)local_80 + -1" (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) ))))) ;) })) }) (else_clause "else {\n      lVar27 = lVar27 + 1;\n    }" else (compound_statement "{\n      lVar27 = lVar27 + 1;\n    }" { (expression_statement "lVar27 = lVar27 + 1;" (assignment_expression "lVar27 = lVar27 + 1" identifier = (binary_expression "lVar27 + 1" identifier + number_literal)) ;) }))) (for_statement "for (; (psVar35 != local_84 && (lVar27 != 0)); lVar27 = lVar27 + -1) {\n      do {\n        psVar36 = (size_t *)((int)psVar35 + 1);\n        sVar11 = *psVar35;\n        psVar35 = psVar36;\n      } while ((byte)sVar11 != 10);\n    }" for ( ; (parenthesized_expression "(psVar35 != local_84 && (lVar27 != 0))" ( (binary_expression "psVar35 != local_84 && (lVar27 != 0)" (binary_expression "psVar35 != local_84" identifier != identifier) && (parenthesized_expression "(lVar27 != 0)" ( (binary_expression "lVar27 != 0" identifier != number_literal) ))) )) ; (assignment_expression "lVar27 = lVar27 + -1" identifier = (binary_expression "lVar27 + -1" identifier + number_literal)) ) (compound_statement "{\n      do {\n        psVar36 = (size_t *)((int)psVar35 + 1);\n        sVar11 = *psVar35;\n        psVar35 = psVar36;\n      } while ((byte)sVar11 != 10);\n    }" { (do_statement "do {\n        psVar36 = (size_t *)((int)psVar35 + 1);\n        sVar11 = *psVar35;\n        psVar35 = psVar36;\n      } while ((byte)sVar11 != 10);" do (compound_statement "{\n        psVar36 = (size_t *)((int)psVar35 + 1);\n        sVar11 = *psVar35;\n        psVar35 = psVar36;\n      }" { (expression_statement "psVar36 = (size_t *)((int)psVar35 + 1);" (assignment_expression "psVar36 = (size_t *)((int)psVar35 + 1)" identifier = (cast_expression "(size_t *)((int)psVar35 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar35 + 1)" ( (binary_expression "(int)psVar35 + 1" (cast_expression "(int)psVar35" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "sVar11 = *psVar35;" (assignment_expression "sVar11 = *psVar35" identifier = (pointer_expression "*psVar35" * identifier)) ;) (expression_statement "psVar35 = psVar36;" (assignment_expression "psVar35 = psVar36" identifier = identifier) ;) }) while (parenthesized_expression "((byte)sVar11 != 10)" ( (binary_expression "(byte)sVar11 != 10" (cast_expression "(byte)sVar11" ( (type_descriptor "byte" type_identifier) ) identifier) != number_literal) )) ;) })) (expression_statement "local_70 = (size_t *)(((int)psVar35 - (int)psVar20) + (int)local_80);" (assignment_expression "local_70 = (size_t *)(((int)psVar35 - (int)psVar20) + (int)local_80)" identifier = (cast_expression "(size_t *)(((int)psVar35 - (int)psVar20) + (int)local_80)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)psVar35 - (int)psVar20) + (int)local_80)" ( (binary_expression "((int)psVar35 - (int)psVar20) + (int)local_80" (parenthesized_expression "((int)psVar35 - (int)psVar20)" ( (binary_expression "(int)psVar35 - (int)psVar20" (cast_expression "(int)psVar35" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)psVar20" ( (type_descriptor "int" primitive_type) ) identifier)) )) + (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "bVar18 = no_diff_means_no_output == false;" (assignment_expression "bVar18 = no_diff_means_no_output == false" identifier = (binary_expression "no_diff_means_no_output == false" identifier == false)) ;) (expression_statement "filevec->suffix_begin = (char *)psVar35;" (assignment_expression "filevec->suffix_begin = (char *)psVar35" (field_expression "filevec->suffix_begin" identifier -> field_identifier) = (cast_expression "(char *)psVar35" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "filevec[1].suffix_begin = (char *)local_70;" (assignment_expression "filevec[1].suffix_begin = (char *)local_70" (field_expression "filevec[1].suffix_begin" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(char *)local_70" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((((bVar18) || (function_regexp.fastmap != (char *)0x0)) || (0x1ffffffe < context)) ||\n     (local_88 <= (uint)context)) {\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar9 = uVar9 >> 5;\n    if (uVar9 == 0) {\n      uVar9 = 1;\n    }\n    local_84 = (size_t *)(uVar9 + 5);\n  }\n  else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar28 = (uint)((int)psVar35 - (int)psVar31) >> 5;\n    if (uVar28 == 0) {\n      uVar28 = 1;\n    }\n    uVar9 = (uint)((int)local_84 - (int)psVar35) >> 5;\n    if (uVar9 == 0) {\n      uVar9 = 1;\n    }\n    uVar25 = 1;\n    if (0 < context) {\n      do {\n        local_88 = uVar25 * 2;\n        iVar22 = uVar25 * -2;\n        uVar25 = local_88;\n      } while (SBORROW4(context,local_88) == context + iVar22 < 0);\n      local_74 = local_88 - 1;\n    }\n    iVar22 = uVar9 + 5;\n    if (context <= (int)(uVar9 + 5)) {\n      iVar22 = context;\n    }\n    local_84 = (size_t *)(iVar22 + local_88 + uVar28 + 5);\n  }" if (parenthesized_expression "((((bVar18) || (function_regexp.fastmap != (char *)0x0)) || (0x1ffffffe < context)) ||\n     (local_88 <= (uint)context))" ( (binary_expression "(((bVar18) || (function_regexp.fastmap != (char *)0x0)) || (0x1ffffffe < context)) ||\n     (local_88 <= (uint)context)" (parenthesized_expression "(((bVar18) || (function_regexp.fastmap != (char *)0x0)) || (0x1ffffffe < context))" ( (binary_expression "((bVar18) || (function_regexp.fastmap != (char *)0x0)) || (0x1ffffffe < context)" (parenthesized_expression "((bVar18) || (function_regexp.fastmap != (char *)0x0))" ( (binary_expression "(bVar18) || (function_regexp.fastmap != (char *)0x0)" (parenthesized_expression "(bVar18)" ( identifier )) || (parenthesized_expression "(function_regexp.fastmap != (char *)0x0)" ( (binary_expression "function_regexp.fastmap != (char *)0x0" (field_expression "function_regexp.fastmap" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "(0x1ffffffe < context)" ( (binary_expression "0x1ffffffe < context" number_literal < identifier) ))) )) || (parenthesized_expression "(local_88 <= (uint)context)" ( (binary_expression "local_88 <= (uint)context" identifier <= (cast_expression "(uint)context" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) )) (compound_statement "{\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar9 = uVar9 >> 5;\n    if (uVar9 == 0) {\n      uVar9 = 1;\n    }\n    local_84 = (size_t *)(uVar9 + 5);\n  }" { (expression_statement "local_74 = 0xffffffff;" (assignment_expression "local_74 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = uVar9 >> 5;" (assignment_expression "uVar9 = uVar9 >> 5" identifier = (binary_expression "uVar9 >> 5" identifier >> number_literal)) ;) (if_statement "if (uVar9 == 0) {\n      uVar9 = 1;\n    }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar9 = 1;\n    }" { (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" identifier = number_literal) ;) })) (expression_statement "local_84 = (size_t *)(uVar9 + 5);" (assignment_expression "local_84 = (size_t *)(uVar9 + 5)" identifier = (cast_expression "(size_t *)(uVar9 + 5)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 5)" ( (binary_expression "uVar9 + 5" identifier + number_literal) )))) ;) }) (else_clause "else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar28 = (uint)((int)psVar35 - (int)psVar31) >> 5;\n    if (uVar28 == 0) {\n      uVar28 = 1;\n    }\n    uVar9 = (uint)((int)local_84 - (int)psVar35) >> 5;\n    if (uVar9 == 0) {\n      uVar9 = 1;\n    }\n    uVar25 = 1;\n    if (0 < context) {\n      do {\n        local_88 = uVar25 * 2;\n        iVar22 = uVar25 * -2;\n        uVar25 = local_88;\n      } while (SBORROW4(context,local_88) == context + iVar22 < 0);\n      local_74 = local_88 - 1;\n    }\n    iVar22 = uVar9 + 5;\n    if (context <= (int)(uVar9 + 5)) {\n      iVar22 = context;\n    }\n    local_84 = (size_t *)(iVar22 + local_88 + uVar28 + 5);\n  }" else (compound_statement "{\n    local_74 = 0;\n    local_88 = 1;\n    uVar28 = (uint)((int)psVar35 - (int)psVar31) >> 5;\n    if (uVar28 == 0) {\n      uVar28 = 1;\n    }\n    uVar9 = (uint)((int)local_84 - (int)psVar35) >> 5;\n    if (uVar9 == 0) {\n      uVar9 = 1;\n    }\n    uVar25 = 1;\n    if (0 < context) {\n      do {\n        local_88 = uVar25 * 2;\n        iVar22 = uVar25 * -2;\n        uVar25 = local_88;\n      } while (SBORROW4(context,local_88) == context + iVar22 < 0);\n      local_74 = local_88 - 1;\n    }\n    iVar22 = uVar9 + 5;\n    if (context <= (int)(uVar9 + 5)) {\n      iVar22 = context;\n    }\n    local_84 = (size_t *)(iVar22 + local_88 + uVar28 + 5);\n  }" { (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) (expression_statement "local_88 = 1;" (assignment_expression "local_88 = 1" identifier = number_literal) ;) (expression_statement "uVar28 = (uint)((int)psVar35 - (int)psVar31) >> 5;" (assignment_expression "uVar28 = (uint)((int)psVar35 - (int)psVar31) >> 5" identifier = (binary_expression "(uint)((int)psVar35 - (int)psVar31) >> 5" (call_expression "(uint)((int)psVar35 - (int)psVar31)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)psVar35 - (int)psVar31)" ( (binary_expression "(int)psVar35 - (int)psVar31" (cast_expression "(int)psVar35" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)psVar31" ( (type_descriptor "int" primitive_type) ) identifier)) ))) >> number_literal)) ;) (if_statement "if (uVar28 == 0) {\n      uVar28 = 1;\n    }" if (parenthesized_expression "(uVar28 == 0)" ( (binary_expression "uVar28 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar28 = 1;\n    }" { (expression_statement "uVar28 = 1;" (assignment_expression "uVar28 = 1" identifier = number_literal) ;) })) (expression_statement "uVar9 = (uint)((int)local_84 - (int)psVar35) >> 5;" (assignment_expression "uVar9 = (uint)((int)local_84 - (int)psVar35) >> 5" identifier = (binary_expression "(uint)((int)local_84 - (int)psVar35) >> 5" (call_expression "(uint)((int)local_84 - (int)psVar35)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_84 - (int)psVar35)" ( (binary_expression "(int)local_84 - (int)psVar35" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)psVar35" ( (type_descriptor "int" primitive_type) ) identifier)) ))) >> number_literal)) ;) (if_statement "if (uVar9 == 0) {\n      uVar9 = 1;\n    }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar9 = 1;\n    }" { (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" identifier = number_literal) ;) })) (expression_statement "uVar25 = 1;" (assignment_expression "uVar25 = 1" identifier = number_literal) ;) (if_statement "if (0 < context) {\n      do {\n        local_88 = uVar25 * 2;\n        iVar22 = uVar25 * -2;\n        uVar25 = local_88;\n      } while (SBORROW4(context,local_88) == context + iVar22 < 0);\n      local_74 = local_88 - 1;\n    }" if (parenthesized_expression "(0 < context)" ( (binary_expression "0 < context" number_literal < identifier) )) (compound_statement "{\n      do {\n        local_88 = uVar25 * 2;\n        iVar22 = uVar25 * -2;\n        uVar25 = local_88;\n      } while (SBORROW4(context,local_88) == context + iVar22 < 0);\n      local_74 = local_88 - 1;\n    }" { (do_statement "do {\n        local_88 = uVar25 * 2;\n        iVar22 = uVar25 * -2;\n        uVar25 = local_88;\n      } while (SBORROW4(context,local_88) == context + iVar22 < 0);" do (compound_statement "{\n        local_88 = uVar25 * 2;\n        iVar22 = uVar25 * -2;\n        uVar25 = local_88;\n      }" { (expression_statement "local_88 = uVar25 * 2;" (assignment_expression "local_88 = uVar25 * 2" identifier = (binary_expression "uVar25 * 2" identifier * number_literal)) ;) (expression_statement "iVar22 = uVar25 * -2;" (assignment_expression "iVar22 = uVar25 * -2" identifier = (binary_expression "uVar25 * -2" identifier * number_literal)) ;) (expression_statement "uVar25 = local_88;" (assignment_expression "uVar25 = local_88" identifier = identifier) ;) }) while (parenthesized_expression "(SBORROW4(context,local_88) == context + iVar22 < 0)" ( (binary_expression "SBORROW4(context,local_88) == context + iVar22 < 0" (call_expression "SBORROW4(context,local_88)" identifier (argument_list "(context,local_88)" ( identifier , identifier ))) == (binary_expression "context + iVar22 < 0" (binary_expression "context + iVar22" identifier + identifier) < number_literal)) )) ;) (expression_statement "local_74 = local_88 - 1;" (assignment_expression "local_74 = local_88 - 1" identifier = (binary_expression "local_88 - 1" identifier - number_literal)) ;) })) (expression_statement "iVar22 = uVar9 + 5;" (assignment_expression "iVar22 = uVar9 + 5" identifier = (binary_expression "uVar9 + 5" identifier + number_literal)) ;) (if_statement "if (context <= (int)(uVar9 + 5)) {\n      iVar22 = context;\n    }" if (parenthesized_expression "(context <= (int)(uVar9 + 5))" ( (binary_expression "context <= (int)(uVar9 + 5)" identifier <= (cast_expression "(int)(uVar9 + 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar9 + 5)" ( (binary_expression "uVar9 + 5" identifier + number_literal) )))) )) (compound_statement "{\n      iVar22 = context;\n    }" { (expression_statement "iVar22 = context;" (assignment_expression "iVar22 = context" identifier = identifier) ;) })) (expression_statement "local_84 = (size_t *)(iVar22 + local_88 + uVar28 + 5);" (assignment_expression "local_84 = (size_t *)(iVar22 + local_88 + uVar28 + 5)" identifier = (cast_expression "(size_t *)(iVar22 + local_88 + uVar28 + 5)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + local_88 + uVar28 + 5)" ( (binary_expression "iVar22 + local_88 + uVar28 + 5" (binary_expression "iVar22 + local_88 + uVar28" (binary_expression "iVar22 + local_88" identifier + identifier) + identifier) + number_literal) )))) ;) }))) (expression_statement "p = (undefined4 *)xmalloc((int)local_84 << 2);" (assignment_expression "p = (undefined4 *)xmalloc((int)local_84 << 2)" identifier = (cast_expression "(undefined4 *)xmalloc((int)local_84 << 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((int)local_84 << 2)" identifier (argument_list "((int)local_84 << 2)" ( (binary_expression "(int)local_84 << 2" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))))) ;) (expression_statement "psVar31 = (size_t *)filevec->prefix_end;" (assignment_expression "psVar31 = (size_t *)filevec->prefix_end" identifier = (cast_expression "(size_t *)filevec->prefix_end" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "filevec->prefix_end" identifier -> field_identifier))) ;) (if_statement "if (((no_diff_means_no_output == false) || (psVar35 != psVar31)) ||\n     (psVar35 = (size_t *)filevec[1].prefix_end, local_70 != psVar35)) {\n    if (local_90 == psVar31) {\n      psVar35 = (size_t *)filevec[1].prefix_end;\n      goto LAB_0001a84f;\n    }\n    uVar28 = (uint)local_84;\n    local_8c = (size_t *)0;\n    psVar35 = local_90;\n    do {\n      uVar9 = (uint)local_8c;\n      local_8c = (size_t *)(uVar9 + 1);\n      local_84 = (size_t *)uVar28;\n      if ((local_74 & uVar9) == uVar28) {\n        if (0xffffffe < uVar28) goto LAB_0001a9c0;\n        local_84 = (size_t *)(uVar28 * 2);\n        p = (undefined4 *)xrealloc(p,uVar28 * 8);\n      }\n      p[local_74 & uVar9] = psVar35;\n      psVar20 = psVar35;\n      do {\n        psVar35 = (size_t *)((int)psVar20 + 1);\n        sVar11 = *psVar20;\n        psVar20 = psVar35;\n      } while ((byte)sVar11 != 10);\n      uVar28 = (uint)local_84;\n    } while (psVar35 != psVar31);\n    local_6c = (int)local_70 - (int)filevec[1].prefix_end;\n    bVar18 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar18) && (local_88 = context, (int)local_8c <= context)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar28 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar28 = (uint)((int)psVar31 - (int)local_90) / uVar9;\n    }\n  }\n  else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)psVar35;\n    if (local_88 == 0) {\n      local_8c = (size_t *)0x0;\n      uVar28 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar28 = 0x20;\n      local_8c = (size_t *)0x0;\n      if (context < 1) {\n        local_88 = context;\n      }\n    }\n  }" if (parenthesized_expression "(((no_diff_means_no_output == false) || (psVar35 != psVar31)) ||\n     (psVar35 = (size_t *)filevec[1].prefix_end, local_70 != psVar35))" ( (binary_expression "((no_diff_means_no_output == false) || (psVar35 != psVar31)) ||\n     (psVar35 = (size_t *)filevec[1].prefix_end, local_70 != psVar35)" (parenthesized_expression "((no_diff_means_no_output == false) || (psVar35 != psVar31))" ( (binary_expression "(no_diff_means_no_output == false) || (psVar35 != psVar31)" (parenthesized_expression "(no_diff_means_no_output == false)" ( (binary_expression "no_diff_means_no_output == false" identifier == false) )) || (parenthesized_expression "(psVar35 != psVar31)" ( (binary_expression "psVar35 != psVar31" identifier != identifier) ))) )) || (parenthesized_expression "(psVar35 = (size_t *)filevec[1].prefix_end, local_70 != psVar35)" ( (comma_expression "psVar35 = (size_t *)filevec[1].prefix_end, local_70 != psVar35" (assignment_expression "psVar35 = (size_t *)filevec[1].prefix_end" identifier = (cast_expression "(size_t *)filevec[1].prefix_end" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "filevec[1].prefix_end" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier))) , (binary_expression "local_70 != psVar35" identifier != identifier)) ))) )) (compound_statement "{\n    if (local_90 == psVar31) {\n      psVar35 = (size_t *)filevec[1].prefix_end;\n      goto LAB_0001a84f;\n    }\n    uVar28 = (uint)local_84;\n    local_8c = (size_t *)0;\n    psVar35 = local_90;\n    do {\n      uVar9 = (uint)local_8c;\n      local_8c = (size_t *)(uVar9 + 1);\n      local_84 = (size_t *)uVar28;\n      if ((local_74 & uVar9) == uVar28) {\n        if (0xffffffe < uVar28) goto LAB_0001a9c0;\n        local_84 = (size_t *)(uVar28 * 2);\n        p = (undefined4 *)xrealloc(p,uVar28 * 8);\n      }\n      p[local_74 & uVar9] = psVar35;\n      psVar20 = psVar35;\n      do {\n        psVar35 = (size_t *)((int)psVar20 + 1);\n        sVar11 = *psVar20;\n        psVar20 = psVar35;\n      } while ((byte)sVar11 != 10);\n      uVar28 = (uint)local_84;\n    } while (psVar35 != psVar31);\n    local_6c = (int)local_70 - (int)filevec[1].prefix_end;\n    bVar18 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar18) && (local_88 = context, (int)local_8c <= context)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar28 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar28 = (uint)((int)psVar31 - (int)local_90) / uVar9;\n    }\n  }" { (if_statement "if (local_90 == psVar31) {\n      psVar35 = (size_t *)filevec[1].prefix_end;\n      goto LAB_0001a84f;\n    }" if (parenthesized_expression "(local_90 == psVar31)" ( (binary_expression "local_90 == psVar31" identifier == identifier) )) (compound_statement "{\n      psVar35 = (size_t *)filevec[1].prefix_end;\n      goto LAB_0001a84f;\n    }" { (expression_statement "psVar35 = (size_t *)filevec[1].prefix_end;" (assignment_expression "psVar35 = (size_t *)filevec[1].prefix_end" identifier = (cast_expression "(size_t *)filevec[1].prefix_end" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "filevec[1].prefix_end" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier))) ;) (goto_statement "goto LAB_0001a84f;" goto statement_identifier ;) })) (expression_statement "uVar28 = (uint)local_84;" (assignment_expression "uVar28 = (uint)local_84" identifier = (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_8c = (size_t *)0;" (assignment_expression "local_8c = (size_t *)0" identifier = (cast_expression "(size_t *)0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar35 = local_90;" (assignment_expression "psVar35 = local_90" identifier = identifier) ;) (do_statement "do {\n      uVar9 = (uint)local_8c;\n      local_8c = (size_t *)(uVar9 + 1);\n      local_84 = (size_t *)uVar28;\n      if ((local_74 & uVar9) == uVar28) {\n        if (0xffffffe < uVar28) goto LAB_0001a9c0;\n        local_84 = (size_t *)(uVar28 * 2);\n        p = (undefined4 *)xrealloc(p,uVar28 * 8);\n      }\n      p[local_74 & uVar9] = psVar35;\n      psVar20 = psVar35;\n      do {\n        psVar35 = (size_t *)((int)psVar20 + 1);\n        sVar11 = *psVar20;\n        psVar20 = psVar35;\n      } while ((byte)sVar11 != 10);\n      uVar28 = (uint)local_84;\n    } while (psVar35 != psVar31);" do (compound_statement "{\n      uVar9 = (uint)local_8c;\n      local_8c = (size_t *)(uVar9 + 1);\n      local_84 = (size_t *)uVar28;\n      if ((local_74 & uVar9) == uVar28) {\n        if (0xffffffe < uVar28) goto LAB_0001a9c0;\n        local_84 = (size_t *)(uVar28 * 2);\n        p = (undefined4 *)xrealloc(p,uVar28 * 8);\n      }\n      p[local_74 & uVar9] = psVar35;\n      psVar20 = psVar35;\n      do {\n        psVar35 = (size_t *)((int)psVar20 + 1);\n        sVar11 = *psVar20;\n        psVar20 = psVar35;\n      } while ((byte)sVar11 != 10);\n      uVar28 = (uint)local_84;\n    }" { (expression_statement "uVar9 = (uint)local_8c;" (assignment_expression "uVar9 = (uint)local_8c" identifier = (cast_expression "(uint)local_8c" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_8c = (size_t *)(uVar9 + 1);" (assignment_expression "local_8c = (size_t *)(uVar9 + 1)" identifier = (cast_expression "(size_t *)(uVar9 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar9 + 1)" ( (binary_expression "uVar9 + 1" identifier + number_literal) )))) ;) (expression_statement "local_84 = (size_t *)uVar28;" (assignment_expression "local_84 = (size_t *)uVar28" identifier = (cast_expression "(size_t *)uVar28" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((local_74 & uVar9) == uVar28) {\n        if (0xffffffe < uVar28) goto LAB_0001a9c0;\n        local_84 = (size_t *)(uVar28 * 2);\n        p = (undefined4 *)xrealloc(p,uVar28 * 8);\n      }" if (parenthesized_expression "((local_74 & uVar9) == uVar28)" ( (binary_expression "(local_74 & uVar9) == uVar28" (parenthesized_expression "(local_74 & uVar9)" ( (binary_expression "local_74 & uVar9" identifier & identifier) )) == identifier) )) (compound_statement "{\n        if (0xffffffe < uVar28) goto LAB_0001a9c0;\n        local_84 = (size_t *)(uVar28 * 2);\n        p = (undefined4 *)xrealloc(p,uVar28 * 8);\n      }" { (if_statement "if (0xffffffe < uVar28) goto LAB_0001a9c0;" if (parenthesized_expression "(0xffffffe < uVar28)" ( (binary_expression "0xffffffe < uVar28" number_literal < identifier) )) (goto_statement "goto LAB_0001a9c0;" goto statement_identifier ;)) (expression_statement "local_84 = (size_t *)(uVar28 * 2);" (assignment_expression "local_84 = (size_t *)(uVar28 * 2)" identifier = (cast_expression "(size_t *)(uVar28 * 2)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar28 * 2)" ( (binary_expression "uVar28 * 2" identifier * number_literal) )))) ;) (expression_statement "p = (undefined4 *)xrealloc(p,uVar28 * 8);" (assignment_expression "p = (undefined4 *)xrealloc(p,uVar28 * 8)" identifier = (cast_expression "(undefined4 *)xrealloc(p,uVar28 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(p,uVar28 * 8)" identifier (argument_list "(p,uVar28 * 8)" ( identifier , (binary_expression "uVar28 * 8" identifier * number_literal) ))))) ;) })) (expression_statement "p[local_74 & uVar9] = psVar35;" (assignment_expression "p[local_74 & uVar9] = psVar35" (subscript_expression "p[local_74 & uVar9]" identifier [ (binary_expression "local_74 & uVar9" identifier & identifier) ]) = identifier) ;) (expression_statement "psVar20 = psVar35;" (assignment_expression "psVar20 = psVar35" identifier = identifier) ;) (do_statement "do {\n        psVar35 = (size_t *)((int)psVar20 + 1);\n        sVar11 = *psVar20;\n        psVar20 = psVar35;\n      } while ((byte)sVar11 != 10);" do (compound_statement "{\n        psVar35 = (size_t *)((int)psVar20 + 1);\n        sVar11 = *psVar20;\n        psVar20 = psVar35;\n      }" { (expression_statement "psVar35 = (size_t *)((int)psVar20 + 1);" (assignment_expression "psVar35 = (size_t *)((int)psVar20 + 1)" identifier = (cast_expression "(size_t *)((int)psVar20 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar20 + 1)" ( (binary_expression "(int)psVar20 + 1" (cast_expression "(int)psVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "sVar11 = *psVar20;" (assignment_expression "sVar11 = *psVar20" identifier = (pointer_expression "*psVar20" * identifier)) ;) (expression_statement "psVar20 = psVar35;" (assignment_expression "psVar20 = psVar35" identifier = identifier) ;) }) while (parenthesized_expression "((byte)sVar11 != 10)" ( (binary_expression "(byte)sVar11 != 10" (cast_expression "(byte)sVar11" ( (type_descriptor "byte" type_identifier) ) identifier) != number_literal) )) ;) (expression_statement "uVar28 = (uint)local_84;" (assignment_expression "uVar28 = (uint)local_84" identifier = (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(psVar35 != psVar31)" ( (binary_expression "psVar35 != psVar31" identifier != identifier) )) ;) (expression_statement "local_6c = (int)local_70 - (int)filevec[1].prefix_end;" (assignment_expression "local_6c = (int)local_70 - (int)filevec[1].prefix_end" identifier = (binary_expression "(int)local_70 - (int)filevec[1].prefix_end" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)filevec[1].prefix_end" ( (type_descriptor "int" primitive_type) ) (field_expression "filevec[1].prefix_end" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier)))) ;) (expression_statement "bVar18 = local_88 != 0;" (assignment_expression "bVar18 = local_88 != 0" identifier = (binary_expression "local_88 != 0" identifier != number_literal)) ;) (expression_statement "local_88 = (uint)local_8c;" (assignment_expression "local_88 = (uint)local_8c" identifier = (cast_expression "(uint)local_8c" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((bVar18) && (local_88 = context, (int)local_8c <= context)) {\n      local_88 = (uint)local_8c;\n    }" if (parenthesized_expression "((bVar18) && (local_88 = context, (int)local_8c <= context))" ( (binary_expression "(bVar18) && (local_88 = context, (int)local_8c <= context)" (parenthesized_expression "(bVar18)" ( identifier )) && (parenthesized_expression "(local_88 = context, (int)local_8c <= context)" ( (comma_expression "local_88 = context, (int)local_8c <= context" (assignment_expression "local_88 = context" identifier = identifier) , (binary_expression "(int)local_8c <= context" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier)) ))) )) (compound_statement "{\n      local_88 = (uint)local_8c;\n    }" { (expression_statement "local_88 = (uint)local_8c;" (assignment_expression "local_88 = (uint)local_8c" identifier = (cast_expression "(uint)local_8c" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) })) (expression_statement "uVar28 = 0x20;" (assignment_expression "uVar28 = 0x20" identifier = number_literal) ;) (if_statement "if (9 < (int)local_8c) {\n      uVar28 = (uint)((int)psVar31 - (int)local_90) / uVar9;\n    }" if (parenthesized_expression "(9 < (int)local_8c)" ( (binary_expression "9 < (int)local_8c" number_literal < (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      uVar28 = (uint)((int)psVar31 - (int)local_90) / uVar9;\n    }" { (expression_statement "uVar28 = (uint)((int)psVar31 - (int)local_90) / uVar9;" (assignment_expression "uVar28 = (uint)((int)psVar31 - (int)local_90) / uVar9" identifier = (binary_expression "(uint)((int)psVar31 - (int)local_90) / uVar9" (call_expression "(uint)((int)psVar31 - (int)local_90)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)psVar31 - (int)local_90)" ( (binary_expression "(int)psVar31 - (int)local_90" (cast_expression "(int)psVar31" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / identifier)) ;) })) }) (else_clause "else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)psVar35;\n    if (local_88 == 0) {\n      local_8c = (size_t *)0x0;\n      uVar28 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar28 = 0x20;\n      local_8c = (size_t *)0x0;\n      if (context < 1) {\n        local_88 = context;\n      }\n    }\n  }" else (compound_statement "{\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)psVar35;\n    if (local_88 == 0) {\n      local_8c = (size_t *)0x0;\n      uVar28 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar28 = 0x20;\n      local_8c = (size_t *)0x0;\n      if (context < 1) {\n        local_88 = context;\n      }\n    }\n  }" { (labeled_statement "LAB_0001a84f:\n    local_6c = (int)local_70 - (int)psVar35;" statement_identifier : (expression_statement "local_6c = (int)local_70 - (int)psVar35;" (assignment_expression "local_6c = (int)local_70 - (int)psVar35" identifier = (binary_expression "(int)local_70 - (int)psVar35" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)psVar35" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (if_statement "if (local_88 == 0) {\n      local_8c = (size_t *)0x0;\n      uVar28 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar28 = 0x20;\n      local_8c = (size_t *)0x0;\n      if (context < 1) {\n        local_88 = context;\n      }\n    }" if (parenthesized_expression "(local_88 == 0)" ( (binary_expression "local_88 == 0" identifier == number_literal) )) (compound_statement "{\n      local_8c = (size_t *)0x0;\n      uVar28 = 0x20;\n    }" { (expression_statement "local_8c = (size_t *)0x0;" (assignment_expression "local_8c = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar28 = 0x20;" (assignment_expression "uVar28 = 0x20" identifier = number_literal) ;) }) (else_clause "else {\n      local_88 = 0;\n      uVar28 = 0x20;\n      local_8c = (size_t *)0x0;\n      if (context < 1) {\n        local_88 = context;\n      }\n    }" else (compound_statement "{\n      local_88 = 0;\n      uVar28 = 0x20;\n      local_8c = (size_t *)0x0;\n      if (context < 1) {\n        local_88 = context;\n      }\n    }" { (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "uVar28 = 0x20;" (assignment_expression "uVar28 = 0x20" identifier = number_literal) ;) (expression_statement "local_8c = (size_t *)0x0;" (assignment_expression "local_8c = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (context < 1) {\n        local_88 = context;\n      }" if (parenthesized_expression "(context < 1)" ( (binary_expression "context < 1" identifier < number_literal) )) (compound_statement "{\n        local_88 = context;\n      }" { (expression_statement "local_88 = context;" (assignment_expression "local_88 = context" identifier = identifier) ;) })) }))) }))) (expression_statement "uVar9 = (uint)((int)local_7c - (int)local_70) / uVar28;" (assignment_expression "uVar9 = (uint)((int)local_7c - (int)local_70) / uVar28" identifier = (binary_expression "(uint)((int)local_7c - (int)local_70) / uVar28" (call_expression "(uint)((int)local_7c - (int)local_70)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_7c - (int)local_70)" ( (binary_expression "(int)local_7c - (int)local_70" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / identifier)) ;) (if_statement "if (uVar9 == 0) {\n    uVar9 = 1;\n  }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar9 = 1;\n  }" { (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" identifier = number_literal) ;) })) (if_statement "if (0xe38e389 < uVar9) {\n    uVar9 = 0xe38e389;\n  }" if (parenthesized_expression "(0xe38e389 < uVar9)" ( (binary_expression "0xe38e389 < uVar9" number_literal < identifier) )) (compound_statement "{\n    uVar9 = 0xe38e389;\n  }" { (expression_statement "uVar9 = 0xe38e389;" (assignment_expression "uVar9 = 0xe38e389" identifier = number_literal) ;) })) (expression_statement "iVar22 = uVar9 + 5;" (assignment_expression "iVar22 = uVar9 + 5" identifier = (binary_expression "uVar9 + 5" identifier + number_literal)) ;) (if_statement "if (context < (int)(uVar9 + 5)) {\n    iVar22 = context;\n  }" if (parenthesized_expression "(context < (int)(uVar9 + 5))" ( (binary_expression "context < (int)(uVar9 + 5)" identifier < (cast_expression "(int)(uVar9 + 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar9 + 5)" ( (binary_expression "uVar9 + 5" identifier + number_literal) )))) )) (compound_statement "{\n    iVar22 = context;\n  }" { (expression_statement "iVar22 = context;" (assignment_expression "iVar22 = context" identifier = identifier) ;) })) (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" identifier = number_literal) ;) (if_statement "if (local_6c / uVar28 != 0) {\n    uVar9 = local_6c / uVar28;\n  }" if (parenthesized_expression "(local_6c / uVar28 != 0)" ( (binary_expression "local_6c / uVar28 != 0" (binary_expression "local_6c / uVar28" identifier / identifier) != number_literal) )) (compound_statement "{\n    uVar9 = local_6c / uVar28;\n  }" { (expression_statement "uVar9 = local_6c / uVar28;" (assignment_expression "uVar9 = local_6c / uVar28" identifier = (binary_expression "local_6c / uVar28" identifier / identifier)) ;) })) (if_statement "if (0xe38e389 < uVar9) {\n    uVar9 = 0xe38e389;\n  }" if (parenthesized_expression "(0xe38e389 < uVar9)" ( (binary_expression "0xe38e389 < uVar9" number_literal < identifier) )) (compound_statement "{\n    uVar9 = 0xe38e389;\n  }" { (expression_statement "uVar9 = 0xe38e389;" (assignment_expression "uVar9 = 0xe38e389" identifier = number_literal) ;) })) (expression_statement "uVar28 = local_88 + 5 + uVar9 + iVar22;" (assignment_expression "uVar28 = local_88 + 5 + uVar9 + iVar22" identifier = (binary_expression "local_88 + 5 + uVar9 + iVar22" (binary_expression "local_88 + 5 + uVar9" (binary_expression "local_88 + 5" identifier + number_literal) + identifier) + identifier)) ;) (expression_statement "bVar18 = (int)uVar28 < (int)local_88 || 0x1ffffffe < uVar28;" (assignment_expression "bVar18 = (int)uVar28 < (int)local_88 || 0x1ffffffe < uVar28" identifier = (binary_expression "(int)uVar28 < (int)local_88 || 0x1ffffffe < uVar28" (binary_expression "(int)uVar28 < (int)local_88" (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_88" ( (type_descriptor "int" primitive_type) ) identifier)) || (binary_expression "0x1ffffffe < uVar28" number_literal < identifier))) ;) (if_statement "if (bVar18) goto LAB_0001a9c0;" if (parenthesized_expression "(bVar18)" ( identifier )) (goto_statement "goto LAB_0001a9c0;" goto statement_identifier ;)) (expression_statement "puVar10 = (undefined4 *)xmalloc(uVar28 * 4);" (assignment_expression "puVar10 = (undefined4 *)xmalloc(uVar28 * 4)" identifier = (cast_expression "(undefined4 *)xmalloc(uVar28 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar28 * 4)" identifier (argument_list "(uVar28 * 4)" ( (binary_expression "uVar28 * 4" identifier * number_literal) ))))) ;) (if_statement "if ((size_t *)local_88 == local_8c) {\n    if (local_88 != 0) goto LAB_00019df3;\n  }\n  else if (0 < (int)local_88) {\n    uVar25 = (int)local_8c - context;\n    uVar9 = uVar25;\n    do {\n      puVar10[uVar9 - uVar25] = p[uVar9 & local_74];\n      uVar9 = uVar9 + 1;\n    } while (local_88 + uVar25 != uVar9);\n    puVar21 = p;\n    puVar26 = puVar10;\n    do {\n      uVar3 = *puVar26;\n      puVar26 = puVar26 + 1;\n      *puVar21 = uVar3;\n      puVar21 = puVar21 + 1;\n    } while (puVar10 + local_88 != puVar26);\nLAB_00019df3:\n    iVar22 = 0;\n    do {\n      puVar10[iVar22] = (byte *)((p[iVar22] - (int)local_90) + (int)local_78);\n      iVar22 = iVar22 + 1;\n    } while (iVar22 < (int)local_88);\n  }" if (parenthesized_expression "((size_t *)local_88 == local_8c)" ( (binary_expression "(size_t *)local_88 == local_8c" (cast_expression "(size_t *)local_88" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) (compound_statement "{\n    if (local_88 != 0) goto LAB_00019df3;\n  }" { (if_statement "if (local_88 != 0) goto LAB_00019df3;" if (parenthesized_expression "(local_88 != 0)" ( (binary_expression "local_88 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00019df3;" goto statement_identifier ;)) }) (else_clause "else if (0 < (int)local_88) {\n    uVar25 = (int)local_8c - context;\n    uVar9 = uVar25;\n    do {\n      puVar10[uVar9 - uVar25] = p[uVar9 & local_74];\n      uVar9 = uVar9 + 1;\n    } while (local_88 + uVar25 != uVar9);\n    puVar21 = p;\n    puVar26 = puVar10;\n    do {\n      uVar3 = *puVar26;\n      puVar26 = puVar26 + 1;\n      *puVar21 = uVar3;\n      puVar21 = puVar21 + 1;\n    } while (puVar10 + local_88 != puVar26);\nLAB_00019df3:\n    iVar22 = 0;\n    do {\n      puVar10[iVar22] = (byte *)((p[iVar22] - (int)local_90) + (int)local_78);\n      iVar22 = iVar22 + 1;\n    } while (iVar22 < (int)local_88);\n  }" else (if_statement "if (0 < (int)local_88) {\n    uVar25 = (int)local_8c - context;\n    uVar9 = uVar25;\n    do {\n      puVar10[uVar9 - uVar25] = p[uVar9 & local_74];\n      uVar9 = uVar9 + 1;\n    } while (local_88 + uVar25 != uVar9);\n    puVar21 = p;\n    puVar26 = puVar10;\n    do {\n      uVar3 = *puVar26;\n      puVar26 = puVar26 + 1;\n      *puVar21 = uVar3;\n      puVar21 = puVar21 + 1;\n    } while (puVar10 + local_88 != puVar26);\nLAB_00019df3:\n    iVar22 = 0;\n    do {\n      puVar10[iVar22] = (byte *)((p[iVar22] - (int)local_90) + (int)local_78);\n      iVar22 = iVar22 + 1;\n    } while (iVar22 < (int)local_88);\n  }" if (parenthesized_expression "(0 < (int)local_88)" ( (binary_expression "0 < (int)local_88" number_literal < (cast_expression "(int)local_88" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    uVar25 = (int)local_8c - context;\n    uVar9 = uVar25;\n    do {\n      puVar10[uVar9 - uVar25] = p[uVar9 & local_74];\n      uVar9 = uVar9 + 1;\n    } while (local_88 + uVar25 != uVar9);\n    puVar21 = p;\n    puVar26 = puVar10;\n    do {\n      uVar3 = *puVar26;\n      puVar26 = puVar26 + 1;\n      *puVar21 = uVar3;\n      puVar21 = puVar21 + 1;\n    } while (puVar10 + local_88 != puVar26);\nLAB_00019df3:\n    iVar22 = 0;\n    do {\n      puVar10[iVar22] = (byte *)((p[iVar22] - (int)local_90) + (int)local_78);\n      iVar22 = iVar22 + 1;\n    } while (iVar22 < (int)local_88);\n  }" { (expression_statement "uVar25 = (int)local_8c - context;" (assignment_expression "uVar25 = (int)local_8c - context" identifier = (binary_expression "(int)local_8c - context" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "uVar9 = uVar25;" (assignment_expression "uVar9 = uVar25" identifier = identifier) ;) (do_statement "do {\n      puVar10[uVar9 - uVar25] = p[uVar9 & local_74];\n      uVar9 = uVar9 + 1;\n    } while (local_88 + uVar25 != uVar9);" do (compound_statement "{\n      puVar10[uVar9 - uVar25] = p[uVar9 & local_74];\n      uVar9 = uVar9 + 1;\n    }" { (expression_statement "puVar10[uVar9 - uVar25] = p[uVar9 & local_74];" (assignment_expression "puVar10[uVar9 - uVar25] = p[uVar9 & local_74]" (subscript_expression "puVar10[uVar9 - uVar25]" identifier [ (binary_expression "uVar9 - uVar25" identifier - identifier) ]) = (subscript_expression "p[uVar9 & local_74]" identifier [ (binary_expression "uVar9 & local_74" identifier & identifier) ])) ;) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_88 + uVar25 != uVar9)" ( (binary_expression "local_88 + uVar25 != uVar9" (binary_expression "local_88 + uVar25" identifier + identifier) != identifier) )) ;) (expression_statement "puVar21 = p;" (assignment_expression "puVar21 = p" identifier = identifier) ;) (expression_statement "puVar26 = puVar10;" (assignment_expression "puVar26 = puVar10" identifier = identifier) ;) (do_statement "do {\n      uVar3 = *puVar26;\n      puVar26 = puVar26 + 1;\n      *puVar21 = uVar3;\n      puVar21 = puVar21 + 1;\n    } while (puVar10 + local_88 != puVar26);" do (compound_statement "{\n      uVar3 = *puVar26;\n      puVar26 = puVar26 + 1;\n      *puVar21 = uVar3;\n      puVar21 = puVar21 + 1;\n    }" { (expression_statement "uVar3 = *puVar26;" (assignment_expression "uVar3 = *puVar26" identifier = (pointer_expression "*puVar26" * identifier)) ;) (expression_statement "puVar26 = puVar26 + 1;" (assignment_expression "puVar26 = puVar26 + 1" identifier = (binary_expression "puVar26 + 1" identifier + number_literal)) ;) (expression_statement "*puVar21 = uVar3;" (assignment_expression "*puVar21 = uVar3" (pointer_expression "*puVar21" * identifier) = identifier) ;) (expression_statement "puVar21 = puVar21 + 1;" (assignment_expression "puVar21 = puVar21 + 1" identifier = (binary_expression "puVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar10 + local_88 != puVar26)" ( (binary_expression "puVar10 + local_88 != puVar26" (binary_expression "puVar10 + local_88" identifier + identifier) != identifier) )) ;) (labeled_statement "LAB_00019df3:\n    iVar22 = 0;" statement_identifier : (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;)) (do_statement "do {\n      puVar10[iVar22] = (byte *)((p[iVar22] - (int)local_90) + (int)local_78);\n      iVar22 = iVar22 + 1;\n    } while (iVar22 < (int)local_88);" do (compound_statement "{\n      puVar10[iVar22] = (byte *)((p[iVar22] - (int)local_90) + (int)local_78);\n      iVar22 = iVar22 + 1;\n    }" { (expression_statement "puVar10[iVar22] = (byte *)((p[iVar22] - (int)local_90) + (int)local_78);" (assignment_expression "puVar10[iVar22] = (byte *)((p[iVar22] - (int)local_90) + (int)local_78)" (subscript_expression "puVar10[iVar22]" identifier [ identifier ]) = (cast_expression "(byte *)((p[iVar22] - (int)local_90) + (int)local_78)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((p[iVar22] - (int)local_90) + (int)local_78)" ( (binary_expression "(p[iVar22] - (int)local_90) + (int)local_78" (parenthesized_expression "(p[iVar22] - (int)local_90)" ( (binary_expression "p[iVar22] - (int)local_90" (subscript_expression "p[iVar22]" identifier [ identifier ]) - (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier)) )) + (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar22 = iVar22 + 1;" (assignment_expression "iVar22 = iVar22 + 1" identifier = (binary_expression "iVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar22 < (int)local_88)" ( (binary_expression "iVar22 < (int)local_88" identifier < (cast_expression "(int)local_88" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })))) (expression_statement "filevec[1].linbuf = (char **)(puVar10 + local_88);" (assignment_expression "filevec[1].linbuf = (char **)(puVar10 + local_88)" (field_expression "filevec[1].linbuf" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(char **)(puVar10 + local_88)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + local_88)" ( (binary_expression "puVar10 + local_88" identifier + identifier) )))) ;) (expression_statement "filevec->linbuf = (char **)(p + local_88);" (assignment_expression "filevec->linbuf = (char **)(p + local_88)" (field_expression "filevec->linbuf" identifier -> field_identifier) = (cast_expression "(char **)(p + local_88)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p + local_88)" ( (binary_expression "p + local_88" identifier + identifier) )))) ;) (expression_statement "filevec[1].linbuf_base = -local_88;" (assignment_expression "filevec[1].linbuf_base = -local_88" (field_expression "filevec[1].linbuf_base" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier) = (unary_expression "-local_88" - identifier)) ;) (expression_statement "filevec->linbuf_base = -local_88;" (assignment_expression "filevec->linbuf_base = -local_88" (field_expression "filevec->linbuf_base" identifier -> field_identifier) = (unary_expression "-local_88" - identifier)) ;) (expression_statement "filevec->alloc_lines = (int)local_84 - local_88;" (assignment_expression "filevec->alloc_lines = (int)local_84 - local_88" (field_expression "filevec->alloc_lines" identifier -> field_identifier) = (binary_expression "(int)local_84 - local_88" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "uVar9 = ((int)local_84 - local_88) + 1 + (uVar28 - local_88);" (assignment_expression "uVar9 = ((int)local_84 - local_88) + 1 + (uVar28 - local_88)" identifier = (binary_expression "((int)local_84 - local_88) + 1 + (uVar28 - local_88)" (binary_expression "((int)local_84 - local_88) + 1" (parenthesized_expression "((int)local_84 - local_88)" ( (binary_expression "(int)local_84 - local_88" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )) + number_literal) + (parenthesized_expression "(uVar28 - local_88)" ( (binary_expression "uVar28 - local_88" identifier - identifier) )))) ;) (expression_statement "filevec[1].alloc_lines = uVar28 - local_88;" (assignment_expression "filevec[1].alloc_lines = uVar28 - local_88" (field_expression "filevec[1].alloc_lines" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier) = (binary_expression "uVar28 - local_88" identifier - identifier)) ;) (expression_statement "equivs_alloc = uVar9;" (assignment_expression "equivs_alloc = uVar9" identifier = identifier) ;) (expression_statement "filevec[1].prefix_lines = (lin)local_8c;" (assignment_expression "filevec[1].prefix_lines = (lin)local_8c" (field_expression "filevec[1].prefix_lines" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(lin)local_8c" ( (type_descriptor "lin" type_identifier) ) identifier)) ;) (expression_statement "filevec->prefix_lines = (lin)local_8c;" (assignment_expression "filevec->prefix_lines = (lin)local_8c" (field_expression "filevec->prefix_lines" identifier -> field_identifier) = (cast_expression "(lin)local_8c" ( (type_descriptor "lin" type_identifier) ) identifier)) ;) (if_statement "if (0x7fffffe < uVar9) {\nLAB_0001a9c0:\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }" if (parenthesized_expression "(0x7fffffe < uVar9)" ( (binary_expression "0x7fffffe < uVar9" number_literal < identifier) )) (compound_statement "{\nLAB_0001a9c0:\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }" { (labeled_statement "LAB_0001a9c0:\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();" statement_identifier : comment (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "equivs = (equivclass *)xmalloc(uVar9 * 0x10);" (assignment_expression "equivs = (equivclass *)xmalloc(uVar9 * 0x10)" identifier = (cast_expression "(equivclass *)xmalloc(uVar9 * 0x10)" ( (type_descriptor "equivclass *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(uVar9 * 0x10)" identifier (argument_list "(uVar9 * 0x10)" ( (binary_expression "uVar9 * 0x10" identifier * number_literal) ))))) ;) (expression_statement "equivs_index = 1;" (assignment_expression "equivs_index = 1" identifier = number_literal) ;) (if_statement "if ((uint)(equivs_alloc / 3) < 0x201) {\n    nbuckets = 0x1fd;\n    sVar11 = 0x7f8;\n  }\n  else {\n    iVar22 = 9;\n    do {\n      iVar37 = iVar22;\n      iVar22 = iVar37 + 1;\n      uVar28 = 1 << ((byte)iVar22 & 0x1f);\n    } while (uVar28 < (uint)(equivs_alloc / 3));\n    nbuckets = uVar28 - ""[iVar37 + 1];\n    if (0x1ffffffe < nbuckets) goto LAB_0001a9c0;\n    sVar11 = nbuckets * 4 + 4;\n  }" if (parenthesized_expression "((uint)(equivs_alloc / 3) < 0x201)" ( (binary_expression "(uint)(equivs_alloc / 3) < 0x201" (call_expression "(uint)(equivs_alloc / 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(equivs_alloc / 3)" ( (binary_expression "equivs_alloc / 3" identifier / number_literal) ))) < number_literal) )) (compound_statement "{\n    nbuckets = 0x1fd;\n    sVar11 = 0x7f8;\n  }" { (expression_statement "nbuckets = 0x1fd;" (assignment_expression "nbuckets = 0x1fd" identifier = number_literal) ;) (expression_statement "sVar11 = 0x7f8;" (assignment_expression "sVar11 = 0x7f8" identifier = number_literal) ;) }) (else_clause "else {\n    iVar22 = 9;\n    do {\n      iVar37 = iVar22;\n      iVar22 = iVar37 + 1;\n      uVar28 = 1 << ((byte)iVar22 & 0x1f);\n    } while (uVar28 < (uint)(equivs_alloc / 3));\n    nbuckets = uVar28 - ""[iVar37 + 1];\n    if (0x1ffffffe < nbuckets) goto LAB_0001a9c0;\n    sVar11 = nbuckets * 4 + 4;\n  }" else (compound_statement "{\n    iVar22 = 9;\n    do {\n      iVar37 = iVar22;\n      iVar22 = iVar37 + 1;\n      uVar28 = 1 << ((byte)iVar22 & 0x1f);\n    } while (uVar28 < (uint)(equivs_alloc / 3));\n    nbuckets = uVar28 - ""[iVar37 + 1];\n    if (0x1ffffffe < nbuckets) goto LAB_0001a9c0;\n    sVar11 = nbuckets * 4 + 4;\n  }" { (expression_statement "iVar22 = 9;" (assignment_expression "iVar22 = 9" identifier = number_literal) ;) (do_statement "do {\n      iVar37 = iVar22;\n      iVar22 = iVar37 + 1;\n      uVar28 = 1 << ((byte)iVar22 & 0x1f);\n    } while (uVar28 < (uint)(equivs_alloc / 3));" do (compound_statement "{\n      iVar37 = iVar22;\n      iVar22 = iVar37 + 1;\n      uVar28 = 1 << ((byte)iVar22 & 0x1f);\n    }" { (expression_statement "iVar37 = iVar22;" (assignment_expression "iVar37 = iVar22" identifier = identifier) ;) (expression_statement "iVar22 = iVar37 + 1;" (assignment_expression "iVar22 = iVar37 + 1" identifier = (binary_expression "iVar37 + 1" identifier + number_literal)) ;) (expression_statement "uVar28 = 1 << ((byte)iVar22 & 0x1f);" (assignment_expression "uVar28 = 1 << ((byte)iVar22 & 0x1f)" identifier = (binary_expression "1 << ((byte)iVar22 & 0x1f)" number_literal << (parenthesized_expression "((byte)iVar22 & 0x1f)" ( (binary_expression "(byte)iVar22 & 0x1f" (cast_expression "(byte)iVar22" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) }) while (parenthesized_expression "(uVar28 < (uint)(equivs_alloc / 3))" ( (binary_expression "uVar28 < (uint)(equivs_alloc / 3)" identifier < (call_expression "(uint)(equivs_alloc / 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(equivs_alloc / 3)" ( (binary_expression "equivs_alloc / 3" identifier / number_literal) )))) )) ;) (expression_statement "nbuckets = uVar28 - ""[iVar37 + 1];" (assignment_expression "nbuckets = uVar28 - ""[iVar37 + 1]" identifier = (binary_expression "uVar28 - ""[iVar37 + 1]" identifier - (subscript_expression """[iVar37 + 1]" (string_literal """" " ") [ (binary_expression "iVar37 + 1" identifier + number_literal) ]))) ;) (if_statement "if (0x1ffffffe < nbuckets) goto LAB_0001a9c0;" if (parenthesized_expression "(0x1ffffffe < nbuckets)" ( (binary_expression "0x1ffffffe < nbuckets" number_literal < identifier) )) (goto_statement "goto LAB_0001a9c0;" goto statement_identifier ;)) (expression_statement "sVar11 = nbuckets * 4 + 4;" (assignment_expression "sVar11 = nbuckets * 4 + 4" identifier = (binary_expression "nbuckets * 4 + 4" (binary_expression "nbuckets * 4" identifier * number_literal) + number_literal)) ;) }))) (expression_statement "pvVar12 = zalloc(sVar11);" (assignment_expression "pvVar12 = zalloc(sVar11)" identifier = (call_expression "zalloc(sVar11)" identifier (argument_list "(sVar11)" ( identifier )))) ;) (expression_statement "buckets = (lin *)((int)pvVar12 + 4);" (assignment_expression "buckets = (lin *)((int)pvVar12 + 4)" identifier = (cast_expression "(lin *)((int)pvVar12 + 4)" ( (type_descriptor "lin *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar12 + 4)" ( (binary_expression "(int)pvVar12 + 4" (cast_expression "(int)pvVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_5c = &filevec->buffer;" (assignment_expression "local_5c = &filevec->buffer" identifier = (pointer_expression "&filevec->buffer" & (field_expression "filevec->buffer" identifier -> field_identifier))) ;) (do_statement "do {\n    local_80 = (char **)local_5c[3];\n    iVar22 = (int)local_5c[4];\n    psVar31 = local_5c[8];\n    local_6c = (uint)local_5c[7];\n    local_68 = (lin *)xmalloc(local_6c << 2);\n    _Var8 = ignore_case;\n    DVar6 = ignore_white_space;\n    pbVar32 = (byte *)local_5c[10];\n    local_7c = equivs;\n    local_64 = equivs_index;\n    local_60 = equivs_alloc;\n    pbVar13 = (byte *)((int)local_5c[2] + (int)*local_5c);\n    bVar39 = ignore_white_space == IGNORE_NO_WHITE_SPACE;\n    if (psVar31 < pbVar32) {\n      local_8c = (size_t *)0x0;\n      local_90 = psVar31;\n      do {\n        sVar11 = tabsize;\n        bVar2 = (byte)*local_90;\n        uVar28 = (uint)bVar2;\n        psVar31 = (size_t *)((int)local_90 + 1);\n        if (DVar6 == IGNORE_SPACE_CHANGE) {\n          if (bVar2 != 10) {\n            ppuVar14 = __ctype_b_loc();\n            uVar9 = 0;\n            puVar4 = *ppuVar14;\n            do {\n              pbVar33 = (byte *)psVar31;\n              if ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0) {\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;\n              }\n              uVar25 = uVar28;\n              if (_Var8 != false) {\n                pp_Var15 = __ctype_tolower_loc();\n                uVar25 = (*pp_Var15)[uVar28];\n              }\n              bVar2 = *(byte *)psVar31;\n              uVar28 = (uint)bVar2;\n              psVar31 = (size_t *)((int)psVar31 + 1);\n              uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar25;\n            } while (bVar2 != 10);\n            goto LAB_0001a0a0;\n          }\nLAB_0001a500:\n          pbVar33 = (byte *)0x0;\n          uVar9 = 0;\n        }\n        else {\n          if (DVar6 < IGNORE_ALL_SPACE) {\n            if (DVar6 == IGNORE_NO_WHITE_SPACE) {\nLAB_0001a398:\n              if (_Var8 == false) {\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n              else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n            }\n            else {\n              uVar9 = 0;\n              psVar31 = (size_t *)((int)local_90 + 1);\n              if (bVar2 != 10) {\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }\n            }\n          }\n          else {\n            if (DVar6 != IGNORE_ALL_SPACE) goto LAB_0001a398;\n            uVar9 = 0;\n            psVar31 = local_90;\n            while (psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n') {\n              ppuVar14 = __ctype_b_loc();\n              if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }\n              uVar28 = (uint)*(byte *)psVar31;\n            }\n          }\nLAB_0001a0a0:\n          pbVar33 = (byte *)((int)psVar31 + (-1 - (int)local_90));\n        }\nLAB_0001a0a9:\n        puVar1 = (uint *)(buckets + uVar9 % nbuckets);\n        local_84 = puVar1;\n        if (((((size_t *)pbVar13 == psVar31) && (*(_Bool *)(local_5c + 0x10) != false)) &&\n            (1 < output_style - OUTPUT_ED)) &&\n           (local_84 = (size_t *)(buckets + -1), IGNORE_TAB_EXPANSION < DVar6)) {\n          local_84 = puVar1;\n        }\n        uVar28 = *local_84;\n        local_78 = (size_t *)uVar28;\njoined_r0x0001a0d6:\n        if (local_78 != (size_t *)0x0) {\n          do {\n            peVar34 = local_7c + (int)local_78;\n            if (uVar9 == peVar34->hash) {\n              s1 = peVar34->line;\n              if ((byte *)peVar34->length == pbVar33) {\n                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);\n                if (iVar37 == 0) goto joined_r0x0001a144;\n                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;\n              }\n              else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;\n              _Var7 = lines_differ(s1,(char *)local_90);\n              if (!_Var7) goto joined_r0x0001a144;\n            }\nLAB_0001a0f0:\n            local_78 = (size_t *)peVar34->next;\n            if (local_78 == (size_t *)0x0) break;\n          } while( true );\n        }\n        if (local_60 == local_64) {\n          if (0x3fffffe < local_60) goto LAB_0001a9c0;\n          local_7c = (equivclass *)xrealloc(local_7c,local_60 << 5);\n          uVar28 = *local_84;\n          local_60 = local_60 * 2;\n        }\n        peVar34 = local_7c + local_64;\n        peVar34->next = uVar28;\n        peVar34->hash = uVar9;\n        peVar34->line = (char *)local_90;\n        peVar34->length = (size_t)pbVar33;\n        *local_84 = local_64;\n        local_78 = (size_t *)local_64;\n        local_64 = local_64 + 1;\njoined_r0x0001a144:\n        if (local_8c == (size_t *)local_6c) {\n          if (((0x2aaaaaa9 < (int)local_8c) ||\n              (local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c)) ||\n             (0x1ffffffe < (uint)((int)local_8c - iVar22))) goto LAB_0001a9c0;\n          local_68 = (lin *)xrealloc(local_68,local_6c * 4);\n          pvVar12 = xrealloc(local_80 + iVar22,(local_6c - iVar22) * 4);\n          local_80 = (char **)((int)pvVar12 + iVar22 * -4);\n        }\n        local_80[(int)local_8c] = (char *)local_90;\n        local_68[(int)local_8c] = (lin)local_78;\n        local_8c = (size_t *)((int)local_8c + 1);\n        local_90 = psVar31;\n        if (pbVar32 <= psVar31) goto LAB_0001a520;\n      } while( true );\n    }\n    local_8c = (size_t *)0x0;\nLAB_0001a520:\n    local_5c[5] = local_8c;\n    iVar37 = 0;\n    while ((size_t *)local_6c != local_8c) {\n      ppcVar16 = local_80 + (int)local_8c;\n      *ppcVar16 = (char *)psVar31;\n      if ((size_t *)pbVar13 == psVar31) goto LAB_0001a5e6;\nLAB_0001a553:\n      if ((context <= iVar37) && (no_diff_means_no_output != false)) goto LAB_0001a618;\n      local_8c = (size_t *)((int)local_8c + 1);\n      pbVar32 = (byte *)psVar31;\n      do {\n        psVar31 = (size_t *)(pbVar32 + 1);\n        bVar2 = *pbVar32;\n        pbVar32 = (byte *)psVar31;\n      } while (bVar2 != 10);\n      iVar37 = iVar37 + 1;\n    }\n    if (((0x2aaaaaa9 < (int)local_6c) || (uVar28 = local_6c * 2 - iVar22, 0x1ffffffe < uVar28)) ||\n       (0x1ffffffe < local_6c - iVar22)) goto LAB_0001a9c0;\n    pvVar12 = xrealloc(local_80 + iVar22,(uVar28 - iVar22) * 4);\n    local_80 = (char **)(iVar22 * -4 + (int)pvVar12);\n    ppcVar16 = local_80 + (int)local_8c;\n    *ppcVar16 = (char *)psVar31;\n    local_6c = uVar28;\n    if ((size_t *)pbVar13 != psVar31) goto LAB_0001a553;\nLAB_0001a5e6:\n    if ((*(_Bool *)(local_5c + 0x10) != false) && (1 < output_style - OUTPUT_ED)) {\n      *ppcVar16 = (char *)(pbVar13 + -1);\n    }\nLAB_0001a618:\n    local_5c[3] = (size_t *)local_80;\n    ppsVar17 = local_5c + 0x2c;\n    equivs = local_7c;\n    local_5c[6] = local_8c;\n    local_5c[7] = (size_t *)local_6c;\n    local_5c[0xb] = (size_t *)local_68;\n    equivs_alloc = local_60;\n    equivs_index = local_64;\n    local_5c = ppsVar17;\n    if (&filevec[2].buffer == ppsVar17) {\n      filevec[1].equiv_max = local_64;\n      filevec->equiv_max = local_64;\n      free(local_7c);\n      free(buckets + -1);\n      return bVar18;\n    }\n  } while( true );" do (compound_statement "{\n    local_80 = (char **)local_5c[3];\n    iVar22 = (int)local_5c[4];\n    psVar31 = local_5c[8];\n    local_6c = (uint)local_5c[7];\n    local_68 = (lin *)xmalloc(local_6c << 2);\n    _Var8 = ignore_case;\n    DVar6 = ignore_white_space;\n    pbVar32 = (byte *)local_5c[10];\n    local_7c = equivs;\n    local_64 = equivs_index;\n    local_60 = equivs_alloc;\n    pbVar13 = (byte *)((int)local_5c[2] + (int)*local_5c);\n    bVar39 = ignore_white_space == IGNORE_NO_WHITE_SPACE;\n    if (psVar31 < pbVar32) {\n      local_8c = (size_t *)0x0;\n      local_90 = psVar31;\n      do {\n        sVar11 = tabsize;\n        bVar2 = (byte)*local_90;\n        uVar28 = (uint)bVar2;\n        psVar31 = (size_t *)((int)local_90 + 1);\n        if (DVar6 == IGNORE_SPACE_CHANGE) {\n          if (bVar2 != 10) {\n            ppuVar14 = __ctype_b_loc();\n            uVar9 = 0;\n            puVar4 = *ppuVar14;\n            do {\n              pbVar33 = (byte *)psVar31;\n              if ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0) {\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;\n              }\n              uVar25 = uVar28;\n              if (_Var8 != false) {\n                pp_Var15 = __ctype_tolower_loc();\n                uVar25 = (*pp_Var15)[uVar28];\n              }\n              bVar2 = *(byte *)psVar31;\n              uVar28 = (uint)bVar2;\n              psVar31 = (size_t *)((int)psVar31 + 1);\n              uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar25;\n            } while (bVar2 != 10);\n            goto LAB_0001a0a0;\n          }\nLAB_0001a500:\n          pbVar33 = (byte *)0x0;\n          uVar9 = 0;\n        }\n        else {\n          if (DVar6 < IGNORE_ALL_SPACE) {\n            if (DVar6 == IGNORE_NO_WHITE_SPACE) {\nLAB_0001a398:\n              if (_Var8 == false) {\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n              else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n            }\n            else {\n              uVar9 = 0;\n              psVar31 = (size_t *)((int)local_90 + 1);\n              if (bVar2 != 10) {\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }\n            }\n          }\n          else {\n            if (DVar6 != IGNORE_ALL_SPACE) goto LAB_0001a398;\n            uVar9 = 0;\n            psVar31 = local_90;\n            while (psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n') {\n              ppuVar14 = __ctype_b_loc();\n              if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }\n              uVar28 = (uint)*(byte *)psVar31;\n            }\n          }\nLAB_0001a0a0:\n          pbVar33 = (byte *)((int)psVar31 + (-1 - (int)local_90));\n        }\nLAB_0001a0a9:\n        puVar1 = (uint *)(buckets + uVar9 % nbuckets);\n        local_84 = puVar1;\n        if (((((size_t *)pbVar13 == psVar31) && (*(_Bool *)(local_5c + 0x10) != false)) &&\n            (1 < output_style - OUTPUT_ED)) &&\n           (local_84 = (size_t *)(buckets + -1), IGNORE_TAB_EXPANSION < DVar6)) {\n          local_84 = puVar1;\n        }\n        uVar28 = *local_84;\n        local_78 = (size_t *)uVar28;\njoined_r0x0001a0d6:\n        if (local_78 != (size_t *)0x0) {\n          do {\n            peVar34 = local_7c + (int)local_78;\n            if (uVar9 == peVar34->hash) {\n              s1 = peVar34->line;\n              if ((byte *)peVar34->length == pbVar33) {\n                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);\n                if (iVar37 == 0) goto joined_r0x0001a144;\n                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;\n              }\n              else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;\n              _Var7 = lines_differ(s1,(char *)local_90);\n              if (!_Var7) goto joined_r0x0001a144;\n            }\nLAB_0001a0f0:\n            local_78 = (size_t *)peVar34->next;\n            if (local_78 == (size_t *)0x0) break;\n          } while( true );\n        }\n        if (local_60 == local_64) {\n          if (0x3fffffe < local_60) goto LAB_0001a9c0;\n          local_7c = (equivclass *)xrealloc(local_7c,local_60 << 5);\n          uVar28 = *local_84;\n          local_60 = local_60 * 2;\n        }\n        peVar34 = local_7c + local_64;\n        peVar34->next = uVar28;\n        peVar34->hash = uVar9;\n        peVar34->line = (char *)local_90;\n        peVar34->length = (size_t)pbVar33;\n        *local_84 = local_64;\n        local_78 = (size_t *)local_64;\n        local_64 = local_64 + 1;\njoined_r0x0001a144:\n        if (local_8c == (size_t *)local_6c) {\n          if (((0x2aaaaaa9 < (int)local_8c) ||\n              (local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c)) ||\n             (0x1ffffffe < (uint)((int)local_8c - iVar22))) goto LAB_0001a9c0;\n          local_68 = (lin *)xrealloc(local_68,local_6c * 4);\n          pvVar12 = xrealloc(local_80 + iVar22,(local_6c - iVar22) * 4);\n          local_80 = (char **)((int)pvVar12 + iVar22 * -4);\n        }\n        local_80[(int)local_8c] = (char *)local_90;\n        local_68[(int)local_8c] = (lin)local_78;\n        local_8c = (size_t *)((int)local_8c + 1);\n        local_90 = psVar31;\n        if (pbVar32 <= psVar31) goto LAB_0001a520;\n      } while( true );\n    }\n    local_8c = (size_t *)0x0;\nLAB_0001a520:\n    local_5c[5] = local_8c;\n    iVar37 = 0;\n    while ((size_t *)local_6c != local_8c) {\n      ppcVar16 = local_80 + (int)local_8c;\n      *ppcVar16 = (char *)psVar31;\n      if ((size_t *)pbVar13 == psVar31) goto LAB_0001a5e6;\nLAB_0001a553:\n      if ((context <= iVar37) && (no_diff_means_no_output != false)) goto LAB_0001a618;\n      local_8c = (size_t *)((int)local_8c + 1);\n      pbVar32 = (byte *)psVar31;\n      do {\n        psVar31 = (size_t *)(pbVar32 + 1);\n        bVar2 = *pbVar32;\n        pbVar32 = (byte *)psVar31;\n      } while (bVar2 != 10);\n      iVar37 = iVar37 + 1;\n    }\n    if (((0x2aaaaaa9 < (int)local_6c) || (uVar28 = local_6c * 2 - iVar22, 0x1ffffffe < uVar28)) ||\n       (0x1ffffffe < local_6c - iVar22)) goto LAB_0001a9c0;\n    pvVar12 = xrealloc(local_80 + iVar22,(uVar28 - iVar22) * 4);\n    local_80 = (char **)(iVar22 * -4 + (int)pvVar12);\n    ppcVar16 = local_80 + (int)local_8c;\n    *ppcVar16 = (char *)psVar31;\n    local_6c = uVar28;\n    if ((size_t *)pbVar13 != psVar31) goto LAB_0001a553;\nLAB_0001a5e6:\n    if ((*(_Bool *)(local_5c + 0x10) != false) && (1 < output_style - OUTPUT_ED)) {\n      *ppcVar16 = (char *)(pbVar13 + -1);\n    }\nLAB_0001a618:\n    local_5c[3] = (size_t *)local_80;\n    ppsVar17 = local_5c + 0x2c;\n    equivs = local_7c;\n    local_5c[6] = local_8c;\n    local_5c[7] = (size_t *)local_6c;\n    local_5c[0xb] = (size_t *)local_68;\n    equivs_alloc = local_60;\n    equivs_index = local_64;\n    local_5c = ppsVar17;\n    if (&filevec[2].buffer == ppsVar17) {\n      filevec[1].equiv_max = local_64;\n      filevec->equiv_max = local_64;\n      free(local_7c);\n      free(buckets + -1);\n      return bVar18;\n    }\n  }" { (expression_statement "local_80 = (char **)local_5c[3];" (assignment_expression "local_80 = (char **)local_5c[3]" identifier = (cast_expression "(char **)local_5c[3]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "local_5c[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar22 = (int)local_5c[4];" (assignment_expression "iVar22 = (int)local_5c[4]" identifier = (cast_expression "(int)local_5c[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_5c[4]" identifier [ number_literal ]))) ;) (expression_statement "psVar31 = local_5c[8];" (assignment_expression "psVar31 = local_5c[8]" identifier = (subscript_expression "local_5c[8]" identifier [ number_literal ])) ;) (expression_statement "local_6c = (uint)local_5c[7];" (assignment_expression "local_6c = (uint)local_5c[7]" identifier = (cast_expression "(uint)local_5c[7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_5c[7]" identifier [ number_literal ]))) ;) (expression_statement "local_68 = (lin *)xmalloc(local_6c << 2);" (assignment_expression "local_68 = (lin *)xmalloc(local_6c << 2)" identifier = (cast_expression "(lin *)xmalloc(local_6c << 2)" ( (type_descriptor "lin *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(local_6c << 2)" identifier (argument_list "(local_6c << 2)" ( (binary_expression "local_6c << 2" identifier << number_literal) ))))) ;) (expression_statement "_Var8 = ignore_case;" (assignment_expression "_Var8 = ignore_case" identifier = identifier) ;) (expression_statement "DVar6 = ignore_white_space;" (assignment_expression "DVar6 = ignore_white_space" identifier = identifier) ;) (expression_statement "pbVar32 = (byte *)local_5c[10];" (assignment_expression "pbVar32 = (byte *)local_5c[10]" identifier = (cast_expression "(byte *)local_5c[10]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[10]" identifier [ number_literal ]))) ;) (expression_statement "local_7c = equivs;" (assignment_expression "local_7c = equivs" identifier = identifier) ;) (expression_statement "local_64 = equivs_index;" (assignment_expression "local_64 = equivs_index" identifier = identifier) ;) (expression_statement "local_60 = equivs_alloc;" (assignment_expression "local_60 = equivs_alloc" identifier = identifier) ;) (expression_statement "pbVar13 = (byte *)((int)local_5c[2] + (int)*local_5c);" (assignment_expression "pbVar13 = (byte *)((int)local_5c[2] + (int)*local_5c)" identifier = (cast_expression "(byte *)((int)local_5c[2] + (int)*local_5c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_5c[2] + (int)*local_5c)" ( (binary_expression "(int)local_5c[2] + (int)*local_5c" (cast_expression "(int)local_5c[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_5c[2]" identifier [ number_literal ])) + (cast_expression "(int)*local_5c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*local_5c" * identifier))) )))) ;) (expression_statement "bVar39 = ignore_white_space == IGNORE_NO_WHITE_SPACE;" (assignment_expression "bVar39 = ignore_white_space == IGNORE_NO_WHITE_SPACE" identifier = (binary_expression "ignore_white_space == IGNORE_NO_WHITE_SPACE" identifier == identifier)) ;) (if_statement "if (psVar31 < pbVar32) {\n      local_8c = (size_t *)0x0;\n      local_90 = psVar31;\n      do {\n        sVar11 = tabsize;\n        bVar2 = (byte)*local_90;\n        uVar28 = (uint)bVar2;\n        psVar31 = (size_t *)((int)local_90 + 1);\n        if (DVar6 == IGNORE_SPACE_CHANGE) {\n          if (bVar2 != 10) {\n            ppuVar14 = __ctype_b_loc();\n            uVar9 = 0;\n            puVar4 = *ppuVar14;\n            do {\n              pbVar33 = (byte *)psVar31;\n              if ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0) {\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;\n              }\n              uVar25 = uVar28;\n              if (_Var8 != false) {\n                pp_Var15 = __ctype_tolower_loc();\n                uVar25 = (*pp_Var15)[uVar28];\n              }\n              bVar2 = *(byte *)psVar31;\n              uVar28 = (uint)bVar2;\n              psVar31 = (size_t *)((int)psVar31 + 1);\n              uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar25;\n            } while (bVar2 != 10);\n            goto LAB_0001a0a0;\n          }\nLAB_0001a500:\n          pbVar33 = (byte *)0x0;\n          uVar9 = 0;\n        }\n        else {\n          if (DVar6 < IGNORE_ALL_SPACE) {\n            if (DVar6 == IGNORE_NO_WHITE_SPACE) {\nLAB_0001a398:\n              if (_Var8 == false) {\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n              else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n            }\n            else {\n              uVar9 = 0;\n              psVar31 = (size_t *)((int)local_90 + 1);\n              if (bVar2 != 10) {\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }\n            }\n          }\n          else {\n            if (DVar6 != IGNORE_ALL_SPACE) goto LAB_0001a398;\n            uVar9 = 0;\n            psVar31 = local_90;\n            while (psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n') {\n              ppuVar14 = __ctype_b_loc();\n              if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }\n              uVar28 = (uint)*(byte *)psVar31;\n            }\n          }\nLAB_0001a0a0:\n          pbVar33 = (byte *)((int)psVar31 + (-1 - (int)local_90));\n        }\nLAB_0001a0a9:\n        puVar1 = (uint *)(buckets + uVar9 % nbuckets);\n        local_84 = puVar1;\n        if (((((size_t *)pbVar13 == psVar31) && (*(_Bool *)(local_5c + 0x10) != false)) &&\n            (1 < output_style - OUTPUT_ED)) &&\n           (local_84 = (size_t *)(buckets + -1), IGNORE_TAB_EXPANSION < DVar6)) {\n          local_84 = puVar1;\n        }\n        uVar28 = *local_84;\n        local_78 = (size_t *)uVar28;\njoined_r0x0001a0d6:\n        if (local_78 != (size_t *)0x0) {\n          do {\n            peVar34 = local_7c + (int)local_78;\n            if (uVar9 == peVar34->hash) {\n              s1 = peVar34->line;\n              if ((byte *)peVar34->length == pbVar33) {\n                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);\n                if (iVar37 == 0) goto joined_r0x0001a144;\n                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;\n              }\n              else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;\n              _Var7 = lines_differ(s1,(char *)local_90);\n              if (!_Var7) goto joined_r0x0001a144;\n            }\nLAB_0001a0f0:\n            local_78 = (size_t *)peVar34->next;\n            if (local_78 == (size_t *)0x0) break;\n          } while( true );\n        }\n        if (local_60 == local_64) {\n          if (0x3fffffe < local_60) goto LAB_0001a9c0;\n          local_7c = (equivclass *)xrealloc(local_7c,local_60 << 5);\n          uVar28 = *local_84;\n          local_60 = local_60 * 2;\n        }\n        peVar34 = local_7c + local_64;\n        peVar34->next = uVar28;\n        peVar34->hash = uVar9;\n        peVar34->line = (char *)local_90;\n        peVar34->length = (size_t)pbVar33;\n        *local_84 = local_64;\n        local_78 = (size_t *)local_64;\n        local_64 = local_64 + 1;\njoined_r0x0001a144:\n        if (local_8c == (size_t *)local_6c) {\n          if (((0x2aaaaaa9 < (int)local_8c) ||\n              (local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c)) ||\n             (0x1ffffffe < (uint)((int)local_8c - iVar22))) goto LAB_0001a9c0;\n          local_68 = (lin *)xrealloc(local_68,local_6c * 4);\n          pvVar12 = xrealloc(local_80 + iVar22,(local_6c - iVar22) * 4);\n          local_80 = (char **)((int)pvVar12 + iVar22 * -4);\n        }\n        local_80[(int)local_8c] = (char *)local_90;\n        local_68[(int)local_8c] = (lin)local_78;\n        local_8c = (size_t *)((int)local_8c + 1);\n        local_90 = psVar31;\n        if (pbVar32 <= psVar31) goto LAB_0001a520;\n      } while( true );\n    }" if (parenthesized_expression "(psVar31 < pbVar32)" ( (binary_expression "psVar31 < pbVar32" identifier < identifier) )) (compound_statement "{\n      local_8c = (size_t *)0x0;\n      local_90 = psVar31;\n      do {\n        sVar11 = tabsize;\n        bVar2 = (byte)*local_90;\n        uVar28 = (uint)bVar2;\n        psVar31 = (size_t *)((int)local_90 + 1);\n        if (DVar6 == IGNORE_SPACE_CHANGE) {\n          if (bVar2 != 10) {\n            ppuVar14 = __ctype_b_loc();\n            uVar9 = 0;\n            puVar4 = *ppuVar14;\n            do {\n              pbVar33 = (byte *)psVar31;\n              if ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0) {\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;\n              }\n              uVar25 = uVar28;\n              if (_Var8 != false) {\n                pp_Var15 = __ctype_tolower_loc();\n                uVar25 = (*pp_Var15)[uVar28];\n              }\n              bVar2 = *(byte *)psVar31;\n              uVar28 = (uint)bVar2;\n              psVar31 = (size_t *)((int)psVar31 + 1);\n              uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar25;\n            } while (bVar2 != 10);\n            goto LAB_0001a0a0;\n          }\nLAB_0001a500:\n          pbVar33 = (byte *)0x0;\n          uVar9 = 0;\n        }\n        else {\n          if (DVar6 < IGNORE_ALL_SPACE) {\n            if (DVar6 == IGNORE_NO_WHITE_SPACE) {\nLAB_0001a398:\n              if (_Var8 == false) {\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n              else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n            }\n            else {\n              uVar9 = 0;\n              psVar31 = (size_t *)((int)local_90 + 1);\n              if (bVar2 != 10) {\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }\n            }\n          }\n          else {\n            if (DVar6 != IGNORE_ALL_SPACE) goto LAB_0001a398;\n            uVar9 = 0;\n            psVar31 = local_90;\n            while (psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n') {\n              ppuVar14 = __ctype_b_loc();\n              if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }\n              uVar28 = (uint)*(byte *)psVar31;\n            }\n          }\nLAB_0001a0a0:\n          pbVar33 = (byte *)((int)psVar31 + (-1 - (int)local_90));\n        }\nLAB_0001a0a9:\n        puVar1 = (uint *)(buckets + uVar9 % nbuckets);\n        local_84 = puVar1;\n        if (((((size_t *)pbVar13 == psVar31) && (*(_Bool *)(local_5c + 0x10) != false)) &&\n            (1 < output_style - OUTPUT_ED)) &&\n           (local_84 = (size_t *)(buckets + -1), IGNORE_TAB_EXPANSION < DVar6)) {\n          local_84 = puVar1;\n        }\n        uVar28 = *local_84;\n        local_78 = (size_t *)uVar28;\njoined_r0x0001a0d6:\n        if (local_78 != (size_t *)0x0) {\n          do {\n            peVar34 = local_7c + (int)local_78;\n            if (uVar9 == peVar34->hash) {\n              s1 = peVar34->line;\n              if ((byte *)peVar34->length == pbVar33) {\n                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);\n                if (iVar37 == 0) goto joined_r0x0001a144;\n                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;\n              }\n              else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;\n              _Var7 = lines_differ(s1,(char *)local_90);\n              if (!_Var7) goto joined_r0x0001a144;\n            }\nLAB_0001a0f0:\n            local_78 = (size_t *)peVar34->next;\n            if (local_78 == (size_t *)0x0) break;\n          } while( true );\n        }\n        if (local_60 == local_64) {\n          if (0x3fffffe < local_60) goto LAB_0001a9c0;\n          local_7c = (equivclass *)xrealloc(local_7c,local_60 << 5);\n          uVar28 = *local_84;\n          local_60 = local_60 * 2;\n        }\n        peVar34 = local_7c + local_64;\n        peVar34->next = uVar28;\n        peVar34->hash = uVar9;\n        peVar34->line = (char *)local_90;\n        peVar34->length = (size_t)pbVar33;\n        *local_84 = local_64;\n        local_78 = (size_t *)local_64;\n        local_64 = local_64 + 1;\njoined_r0x0001a144:\n        if (local_8c == (size_t *)local_6c) {\n          if (((0x2aaaaaa9 < (int)local_8c) ||\n              (local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c)) ||\n             (0x1ffffffe < (uint)((int)local_8c - iVar22))) goto LAB_0001a9c0;\n          local_68 = (lin *)xrealloc(local_68,local_6c * 4);\n          pvVar12 = xrealloc(local_80 + iVar22,(local_6c - iVar22) * 4);\n          local_80 = (char **)((int)pvVar12 + iVar22 * -4);\n        }\n        local_80[(int)local_8c] = (char *)local_90;\n        local_68[(int)local_8c] = (lin)local_78;\n        local_8c = (size_t *)((int)local_8c + 1);\n        local_90 = psVar31;\n        if (pbVar32 <= psVar31) goto LAB_0001a520;\n      } while( true );\n    }" { (expression_statement "local_8c = (size_t *)0x0;" (assignment_expression "local_8c = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_90 = psVar31;" (assignment_expression "local_90 = psVar31" identifier = identifier) ;) (do_statement "do {\n        sVar11 = tabsize;\n        bVar2 = (byte)*local_90;\n        uVar28 = (uint)bVar2;\n        psVar31 = (size_t *)((int)local_90 + 1);\n        if (DVar6 == IGNORE_SPACE_CHANGE) {\n          if (bVar2 != 10) {\n            ppuVar14 = __ctype_b_loc();\n            uVar9 = 0;\n            puVar4 = *ppuVar14;\n            do {\n              pbVar33 = (byte *)psVar31;\n              if ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0) {\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;\n              }\n              uVar25 = uVar28;\n              if (_Var8 != false) {\n                pp_Var15 = __ctype_tolower_loc();\n                uVar25 = (*pp_Var15)[uVar28];\n              }\n              bVar2 = *(byte *)psVar31;\n              uVar28 = (uint)bVar2;\n              psVar31 = (size_t *)((int)psVar31 + 1);\n              uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar25;\n            } while (bVar2 != 10);\n            goto LAB_0001a0a0;\n          }\nLAB_0001a500:\n          pbVar33 = (byte *)0x0;\n          uVar9 = 0;\n        }\n        else {\n          if (DVar6 < IGNORE_ALL_SPACE) {\n            if (DVar6 == IGNORE_NO_WHITE_SPACE) {\nLAB_0001a398:\n              if (_Var8 == false) {\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n              else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n            }\n            else {\n              uVar9 = 0;\n              psVar31 = (size_t *)((int)local_90 + 1);\n              if (bVar2 != 10) {\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }\n            }\n          }\n          else {\n            if (DVar6 != IGNORE_ALL_SPACE) goto LAB_0001a398;\n            uVar9 = 0;\n            psVar31 = local_90;\n            while (psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n') {\n              ppuVar14 = __ctype_b_loc();\n              if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }\n              uVar28 = (uint)*(byte *)psVar31;\n            }\n          }\nLAB_0001a0a0:\n          pbVar33 = (byte *)((int)psVar31 + (-1 - (int)local_90));\n        }\nLAB_0001a0a9:\n        puVar1 = (uint *)(buckets + uVar9 % nbuckets);\n        local_84 = puVar1;\n        if (((((size_t *)pbVar13 == psVar31) && (*(_Bool *)(local_5c + 0x10) != false)) &&\n            (1 < output_style - OUTPUT_ED)) &&\n           (local_84 = (size_t *)(buckets + -1), IGNORE_TAB_EXPANSION < DVar6)) {\n          local_84 = puVar1;\n        }\n        uVar28 = *local_84;\n        local_78 = (size_t *)uVar28;\njoined_r0x0001a0d6:\n        if (local_78 != (size_t *)0x0) {\n          do {\n            peVar34 = local_7c + (int)local_78;\n            if (uVar9 == peVar34->hash) {\n              s1 = peVar34->line;\n              if ((byte *)peVar34->length == pbVar33) {\n                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);\n                if (iVar37 == 0) goto joined_r0x0001a144;\n                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;\n              }\n              else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;\n              _Var7 = lines_differ(s1,(char *)local_90);\n              if (!_Var7) goto joined_r0x0001a144;\n            }\nLAB_0001a0f0:\n            local_78 = (size_t *)peVar34->next;\n            if (local_78 == (size_t *)0x0) break;\n          } while( true );\n        }\n        if (local_60 == local_64) {\n          if (0x3fffffe < local_60) goto LAB_0001a9c0;\n          local_7c = (equivclass *)xrealloc(local_7c,local_60 << 5);\n          uVar28 = *local_84;\n          local_60 = local_60 * 2;\n        }\n        peVar34 = local_7c + local_64;\n        peVar34->next = uVar28;\n        peVar34->hash = uVar9;\n        peVar34->line = (char *)local_90;\n        peVar34->length = (size_t)pbVar33;\n        *local_84 = local_64;\n        local_78 = (size_t *)local_64;\n        local_64 = local_64 + 1;\njoined_r0x0001a144:\n        if (local_8c == (size_t *)local_6c) {\n          if (((0x2aaaaaa9 < (int)local_8c) ||\n              (local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c)) ||\n             (0x1ffffffe < (uint)((int)local_8c - iVar22))) goto LAB_0001a9c0;\n          local_68 = (lin *)xrealloc(local_68,local_6c * 4);\n          pvVar12 = xrealloc(local_80 + iVar22,(local_6c - iVar22) * 4);\n          local_80 = (char **)((int)pvVar12 + iVar22 * -4);\n        }\n        local_80[(int)local_8c] = (char *)local_90;\n        local_68[(int)local_8c] = (lin)local_78;\n        local_8c = (size_t *)((int)local_8c + 1);\n        local_90 = psVar31;\n        if (pbVar32 <= psVar31) goto LAB_0001a520;\n      } while( true );" do (compound_statement "{\n        sVar11 = tabsize;\n        bVar2 = (byte)*local_90;\n        uVar28 = (uint)bVar2;\n        psVar31 = (size_t *)((int)local_90 + 1);\n        if (DVar6 == IGNORE_SPACE_CHANGE) {\n          if (bVar2 != 10) {\n            ppuVar14 = __ctype_b_loc();\n            uVar9 = 0;\n            puVar4 = *ppuVar14;\n            do {\n              pbVar33 = (byte *)psVar31;\n              if ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0) {\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;\n              }\n              uVar25 = uVar28;\n              if (_Var8 != false) {\n                pp_Var15 = __ctype_tolower_loc();\n                uVar25 = (*pp_Var15)[uVar28];\n              }\n              bVar2 = *(byte *)psVar31;\n              uVar28 = (uint)bVar2;\n              psVar31 = (size_t *)((int)psVar31 + 1);\n              uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar25;\n            } while (bVar2 != 10);\n            goto LAB_0001a0a0;\n          }\nLAB_0001a500:\n          pbVar33 = (byte *)0x0;\n          uVar9 = 0;\n        }\n        else {\n          if (DVar6 < IGNORE_ALL_SPACE) {\n            if (DVar6 == IGNORE_NO_WHITE_SPACE) {\nLAB_0001a398:\n              if (_Var8 == false) {\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n              else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n            }\n            else {\n              uVar9 = 0;\n              psVar31 = (size_t *)((int)local_90 + 1);\n              if (bVar2 != 10) {\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }\n            }\n          }\n          else {\n            if (DVar6 != IGNORE_ALL_SPACE) goto LAB_0001a398;\n            uVar9 = 0;\n            psVar31 = local_90;\n            while (psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n') {\n              ppuVar14 = __ctype_b_loc();\n              if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }\n              uVar28 = (uint)*(byte *)psVar31;\n            }\n          }\nLAB_0001a0a0:\n          pbVar33 = (byte *)((int)psVar31 + (-1 - (int)local_90));\n        }\nLAB_0001a0a9:\n        puVar1 = (uint *)(buckets + uVar9 % nbuckets);\n        local_84 = puVar1;\n        if (((((size_t *)pbVar13 == psVar31) && (*(_Bool *)(local_5c + 0x10) != false)) &&\n            (1 < output_style - OUTPUT_ED)) &&\n           (local_84 = (size_t *)(buckets + -1), IGNORE_TAB_EXPANSION < DVar6)) {\n          local_84 = puVar1;\n        }\n        uVar28 = *local_84;\n        local_78 = (size_t *)uVar28;\njoined_r0x0001a0d6:\n        if (local_78 != (size_t *)0x0) {\n          do {\n            peVar34 = local_7c + (int)local_78;\n            if (uVar9 == peVar34->hash) {\n              s1 = peVar34->line;\n              if ((byte *)peVar34->length == pbVar33) {\n                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);\n                if (iVar37 == 0) goto joined_r0x0001a144;\n                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;\n              }\n              else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;\n              _Var7 = lines_differ(s1,(char *)local_90);\n              if (!_Var7) goto joined_r0x0001a144;\n            }\nLAB_0001a0f0:\n            local_78 = (size_t *)peVar34->next;\n            if (local_78 == (size_t *)0x0) break;\n          } while( true );\n        }\n        if (local_60 == local_64) {\n          if (0x3fffffe < local_60) goto LAB_0001a9c0;\n          local_7c = (equivclass *)xrealloc(local_7c,local_60 << 5);\n          uVar28 = *local_84;\n          local_60 = local_60 * 2;\n        }\n        peVar34 = local_7c + local_64;\n        peVar34->next = uVar28;\n        peVar34->hash = uVar9;\n        peVar34->line = (char *)local_90;\n        peVar34->length = (size_t)pbVar33;\n        *local_84 = local_64;\n        local_78 = (size_t *)local_64;\n        local_64 = local_64 + 1;\njoined_r0x0001a144:\n        if (local_8c == (size_t *)local_6c) {\n          if (((0x2aaaaaa9 < (int)local_8c) ||\n              (local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c)) ||\n             (0x1ffffffe < (uint)((int)local_8c - iVar22))) goto LAB_0001a9c0;\n          local_68 = (lin *)xrealloc(local_68,local_6c * 4);\n          pvVar12 = xrealloc(local_80 + iVar22,(local_6c - iVar22) * 4);\n          local_80 = (char **)((int)pvVar12 + iVar22 * -4);\n        }\n        local_80[(int)local_8c] = (char *)local_90;\n        local_68[(int)local_8c] = (lin)local_78;\n        local_8c = (size_t *)((int)local_8c + 1);\n        local_90 = psVar31;\n        if (pbVar32 <= psVar31) goto LAB_0001a520;\n      }" { (expression_statement "sVar11 = tabsize;" (assignment_expression "sVar11 = tabsize" identifier = identifier) ;) (expression_statement "bVar2 = (byte)*local_90;" (assignment_expression "bVar2 = (byte)*local_90" identifier = (binary_expression "(byte)*local_90" (parenthesized_expression "(byte)" ( identifier )) * identifier)) ;) (expression_statement "uVar28 = (uint)bVar2;" (assignment_expression "uVar28 = (uint)bVar2" identifier = (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "psVar31 = (size_t *)((int)local_90 + 1);" (assignment_expression "psVar31 = (size_t *)((int)local_90 + 1)" identifier = (cast_expression "(size_t *)((int)local_90 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 1)" ( (binary_expression "(int)local_90 + 1" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (DVar6 == IGNORE_SPACE_CHANGE) {\n          if (bVar2 != 10) {\n            ppuVar14 = __ctype_b_loc();\n            uVar9 = 0;\n            puVar4 = *ppuVar14;\n            do {\n              pbVar33 = (byte *)psVar31;\n              if ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0) {\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;\n              }\n              uVar25 = uVar28;\n              if (_Var8 != false) {\n                pp_Var15 = __ctype_tolower_loc();\n                uVar25 = (*pp_Var15)[uVar28];\n              }\n              bVar2 = *(byte *)psVar31;\n              uVar28 = (uint)bVar2;\n              psVar31 = (size_t *)((int)psVar31 + 1);\n              uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar25;\n            } while (bVar2 != 10);\n            goto LAB_0001a0a0;\n          }\nLAB_0001a500:\n          pbVar33 = (byte *)0x0;\n          uVar9 = 0;\n        }\n        else {\n          if (DVar6 < IGNORE_ALL_SPACE) {\n            if (DVar6 == IGNORE_NO_WHITE_SPACE) {\nLAB_0001a398:\n              if (_Var8 == false) {\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n              else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n            }\n            else {\n              uVar9 = 0;\n              psVar31 = (size_t *)((int)local_90 + 1);\n              if (bVar2 != 10) {\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }\n            }\n          }\n          else {\n            if (DVar6 != IGNORE_ALL_SPACE) goto LAB_0001a398;\n            uVar9 = 0;\n            psVar31 = local_90;\n            while (psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n') {\n              ppuVar14 = __ctype_b_loc();\n              if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }\n              uVar28 = (uint)*(byte *)psVar31;\n            }\n          }\nLAB_0001a0a0:\n          pbVar33 = (byte *)((int)psVar31 + (-1 - (int)local_90));\n        }" if (parenthesized_expression "(DVar6 == IGNORE_SPACE_CHANGE)" ( (binary_expression "DVar6 == IGNORE_SPACE_CHANGE" identifier == identifier) )) (compound_statement "{\n          if (bVar2 != 10) {\n            ppuVar14 = __ctype_b_loc();\n            uVar9 = 0;\n            puVar4 = *ppuVar14;\n            do {\n              pbVar33 = (byte *)psVar31;\n              if ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0) {\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;\n              }\n              uVar25 = uVar28;\n              if (_Var8 != false) {\n                pp_Var15 = __ctype_tolower_loc();\n                uVar25 = (*pp_Var15)[uVar28];\n              }\n              bVar2 = *(byte *)psVar31;\n              uVar28 = (uint)bVar2;\n              psVar31 = (size_t *)((int)psVar31 + 1);\n              uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar25;\n            } while (bVar2 != 10);\n            goto LAB_0001a0a0;\n          }\nLAB_0001a500:\n          pbVar33 = (byte *)0x0;\n          uVar9 = 0;\n        }" { (if_statement "if (bVar2 != 10) {\n            ppuVar14 = __ctype_b_loc();\n            uVar9 = 0;\n            puVar4 = *ppuVar14;\n            do {\n              pbVar33 = (byte *)psVar31;\n              if ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0) {\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;\n              }\n              uVar25 = uVar28;\n              if (_Var8 != false) {\n                pp_Var15 = __ctype_tolower_loc();\n                uVar25 = (*pp_Var15)[uVar28];\n              }\n              bVar2 = *(byte *)psVar31;\n              uVar28 = (uint)bVar2;\n              psVar31 = (size_t *)((int)psVar31 + 1);\n              uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar25;\n            } while (bVar2 != 10);\n            goto LAB_0001a0a0;\n          }" if (parenthesized_expression "(bVar2 != 10)" ( (binary_expression "bVar2 != 10" identifier != number_literal) )) (compound_statement "{\n            ppuVar14 = __ctype_b_loc();\n            uVar9 = 0;\n            puVar4 = *ppuVar14;\n            do {\n              pbVar33 = (byte *)psVar31;\n              if ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0) {\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;\n              }\n              uVar25 = uVar28;\n              if (_Var8 != false) {\n                pp_Var15 = __ctype_tolower_loc();\n                uVar25 = (*pp_Var15)[uVar28];\n              }\n              bVar2 = *(byte *)psVar31;\n              uVar28 = (uint)bVar2;\n              psVar31 = (size_t *)((int)psVar31 + 1);\n              uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar25;\n            } while (bVar2 != 10);\n            goto LAB_0001a0a0;\n          }" { (expression_statement "ppuVar14 = __ctype_b_loc();" (assignment_expression "ppuVar14 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar4 = *ppuVar14;" (assignment_expression "puVar4 = *ppuVar14" identifier = (pointer_expression "*ppuVar14" * identifier)) ;) (do_statement "do {\n              pbVar33 = (byte *)psVar31;\n              if ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0) {\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;\n              }\n              uVar25 = uVar28;\n              if (_Var8 != false) {\n                pp_Var15 = __ctype_tolower_loc();\n                uVar25 = (*pp_Var15)[uVar28];\n              }\n              bVar2 = *(byte *)psVar31;\n              uVar28 = (uint)bVar2;\n              psVar31 = (size_t *)((int)psVar31 + 1);\n              uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar25;\n            } while (bVar2 != 10);" do (compound_statement "{\n              pbVar33 = (byte *)psVar31;\n              if ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0) {\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;\n              }\n              uVar25 = uVar28;\n              if (_Var8 != false) {\n                pp_Var15 = __ctype_tolower_loc();\n                uVar25 = (*pp_Var15)[uVar28];\n              }\n              bVar2 = *(byte *)psVar31;\n              uVar28 = (uint)bVar2;\n              psVar31 = (size_t *)((int)psVar31 + 1);\n              uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar25;\n            }" { (expression_statement "pbVar33 = (byte *)psVar31;" (assignment_expression "pbVar33 = (byte *)psVar31" identifier = (cast_expression "(byte *)psVar31" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0) {\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;\n              }" if (parenthesized_expression "((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)puVar4 + uVar28 * 2 + 1)" * (cast_expression "(byte *)((int)puVar4 + uVar28 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + uVar28 * 2 + 1)" ( (binary_expression "(int)puVar4 + uVar28 * 2 + 1" (binary_expression "(int)puVar4 + uVar28 * 2" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar28 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;\n              }" { (do_statement "do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                } while ((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0);" do (compound_statement "{\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  if (*pbVar33 == 10) goto LAB_0001a0a0;\n                  uVar28 = (uint)*pbVar33;\n                  pbVar33 = (byte *)psVar31;\n                }" { (expression_statement "psVar31 = (size_t *)(pbVar33 + 1);" (assignment_expression "psVar31 = (size_t *)(pbVar33 + 1)" identifier = (cast_expression "(size_t *)(pbVar33 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar33 + 1)" ( (binary_expression "pbVar33 + 1" identifier + number_literal) )))) ;) (if_statement "if (*pbVar33 == 10) goto LAB_0001a0a0;" if (parenthesized_expression "(*pbVar33 == 10)" ( (binary_expression "*pbVar33 == 10" (pointer_expression "*pbVar33" * identifier) == number_literal) )) (goto_statement "goto LAB_0001a0a0;" goto statement_identifier ;)) (expression_statement "uVar28 = (uint)*pbVar33;" (assignment_expression "uVar28 = (uint)*pbVar33" identifier = (binary_expression "(uint)*pbVar33" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar33 = (byte *)psVar31;" (assignment_expression "pbVar33 = (byte *)psVar31" identifier = (cast_expression "(byte *)psVar31" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "((*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)puVar4 + uVar28 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)puVar4 + uVar28 * 2 + 1)" * (cast_expression "(byte *)((int)puVar4 + uVar28 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar4 + uVar28 * 2 + 1)" ( (binary_expression "(int)puVar4 + uVar28 * 2 + 1" (binary_expression "(int)puVar4 + uVar28 * 2" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar28 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) ;) (expression_statement "uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20;" (assignment_expression "uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + 0x20" identifier = (binary_expression "(uVar9 << 7 | uVar9 >> 0x19) + 0x20" (parenthesized_expression "(uVar9 << 7 | uVar9 >> 0x19)" ( (binary_expression "uVar9 << 7 | uVar9 >> 0x19" (binary_expression "uVar9 << 7" identifier << number_literal) | (binary_expression "uVar9 >> 0x19" identifier >> number_literal)) )) + number_literal)) ;) })) (expression_statement "uVar25 = uVar28;" (assignment_expression "uVar25 = uVar28" identifier = identifier) ;) (if_statement "if (_Var8 != false) {\n                pp_Var15 = __ctype_tolower_loc();\n                uVar25 = (*pp_Var15)[uVar28];\n              }" if (parenthesized_expression "(_Var8 != false)" ( (binary_expression "_Var8 != false" identifier != false) )) (compound_statement "{\n                pp_Var15 = __ctype_tolower_loc();\n                uVar25 = (*pp_Var15)[uVar28];\n              }" { (expression_statement "pp_Var15 = __ctype_tolower_loc();" (assignment_expression "pp_Var15 = __ctype_tolower_loc()" identifier = (call_expression "__ctype_tolower_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar25 = (*pp_Var15)[uVar28];" (assignment_expression "uVar25 = (*pp_Var15)[uVar28]" identifier = (subscript_expression "(*pp_Var15)[uVar28]" (parenthesized_expression "(*pp_Var15)" ( (pointer_expression "*pp_Var15" * identifier) )) [ identifier ])) ;) })) (expression_statement "bVar2 = *(byte *)psVar31;" (assignment_expression "bVar2 = *(byte *)psVar31" identifier = (pointer_expression "*(byte *)psVar31" * (cast_expression "(byte *)psVar31" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar28 = (uint)bVar2;" (assignment_expression "uVar28 = (uint)bVar2" identifier = (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "psVar31 = (size_t *)((int)psVar31 + 1);" (assignment_expression "psVar31 = (size_t *)((int)psVar31 + 1)" identifier = (cast_expression "(size_t *)((int)psVar31 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar31 + 1)" ( (binary_expression "(int)psVar31 + 1" (cast_expression "(int)psVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar25;" (assignment_expression "uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar25" identifier = (binary_expression "(uVar9 << 7 | uVar9 >> 0x19) + uVar25" (parenthesized_expression "(uVar9 << 7 | uVar9 >> 0x19)" ( (binary_expression "uVar9 << 7 | uVar9 >> 0x19" (binary_expression "uVar9 << 7" identifier << number_literal) | (binary_expression "uVar9 >> 0x19" identifier >> number_literal)) )) + identifier)) ;) }) while (parenthesized_expression "(bVar2 != 10)" ( (binary_expression "bVar2 != 10" identifier != number_literal) )) ;) (goto_statement "goto LAB_0001a0a0;" goto statement_identifier ;) })) (labeled_statement "LAB_0001a500:\n          pbVar33 = (byte *)0x0;" statement_identifier : (expression_statement "pbVar33 = (byte *)0x0;" (assignment_expression "pbVar33 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          if (DVar6 < IGNORE_ALL_SPACE) {\n            if (DVar6 == IGNORE_NO_WHITE_SPACE) {\nLAB_0001a398:\n              if (_Var8 == false) {\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n              else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n            }\n            else {\n              uVar9 = 0;\n              psVar31 = (size_t *)((int)local_90 + 1);\n              if (bVar2 != 10) {\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }\n            }\n          }\n          else {\n            if (DVar6 != IGNORE_ALL_SPACE) goto LAB_0001a398;\n            uVar9 = 0;\n            psVar31 = local_90;\n            while (psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n') {\n              ppuVar14 = __ctype_b_loc();\n              if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }\n              uVar28 = (uint)*(byte *)psVar31;\n            }\n          }\nLAB_0001a0a0:\n          pbVar33 = (byte *)((int)psVar31 + (-1 - (int)local_90));\n        }" else (compound_statement "{\n          if (DVar6 < IGNORE_ALL_SPACE) {\n            if (DVar6 == IGNORE_NO_WHITE_SPACE) {\nLAB_0001a398:\n              if (_Var8 == false) {\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n              else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n            }\n            else {\n              uVar9 = 0;\n              psVar31 = (size_t *)((int)local_90 + 1);\n              if (bVar2 != 10) {\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }\n            }\n          }\n          else {\n            if (DVar6 != IGNORE_ALL_SPACE) goto LAB_0001a398;\n            uVar9 = 0;\n            psVar31 = local_90;\n            while (psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n') {\n              ppuVar14 = __ctype_b_loc();\n              if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }\n              uVar28 = (uint)*(byte *)psVar31;\n            }\n          }\nLAB_0001a0a0:\n          pbVar33 = (byte *)((int)psVar31 + (-1 - (int)local_90));\n        }" { (if_statement "if (DVar6 < IGNORE_ALL_SPACE) {\n            if (DVar6 == IGNORE_NO_WHITE_SPACE) {\nLAB_0001a398:\n              if (_Var8 == false) {\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n              else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n            }\n            else {\n              uVar9 = 0;\n              psVar31 = (size_t *)((int)local_90 + 1);\n              if (bVar2 != 10) {\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }\n            }\n          }\n          else {\n            if (DVar6 != IGNORE_ALL_SPACE) goto LAB_0001a398;\n            uVar9 = 0;\n            psVar31 = local_90;\n            while (psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n') {\n              ppuVar14 = __ctype_b_loc();\n              if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }\n              uVar28 = (uint)*(byte *)psVar31;\n            }\n          }" if (parenthesized_expression "(DVar6 < IGNORE_ALL_SPACE)" ( (binary_expression "DVar6 < IGNORE_ALL_SPACE" identifier < identifier) )) (compound_statement "{\n            if (DVar6 == IGNORE_NO_WHITE_SPACE) {\nLAB_0001a398:\n              if (_Var8 == false) {\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n              else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n            }\n            else {\n              uVar9 = 0;\n              psVar31 = (size_t *)((int)local_90 + 1);\n              if (bVar2 != 10) {\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }\n            }\n          }" { (if_statement "if (DVar6 == IGNORE_NO_WHITE_SPACE) {\nLAB_0001a398:\n              if (_Var8 == false) {\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n              else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n            }\n            else {\n              uVar9 = 0;\n              psVar31 = (size_t *)((int)local_90 + 1);\n              if (bVar2 != 10) {\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }\n            }" if (parenthesized_expression "(DVar6 == IGNORE_NO_WHITE_SPACE)" ( (binary_expression "DVar6 == IGNORE_NO_WHITE_SPACE" identifier == identifier) )) (compound_statement "{\nLAB_0001a398:\n              if (_Var8 == false) {\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n              else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n            }" { (labeled_statement "LAB_0001a398:\n              if (_Var8 == false) {\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n              else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }" statement_identifier : (if_statement "if (_Var8 == false) {\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }\n              else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }" if (parenthesized_expression "(_Var8 == false)" ( (binary_expression "_Var8 == false" identifier == false) )) (compound_statement "{\n                uVar9 = 0;\n                pbVar33 = (byte *)0x0;\n                pbVar30 = (byte *)psVar31;\n                if (bVar2 == 10) goto LAB_0001a0a9;\n                do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "pbVar33 = (byte *)0x0;" (assignment_expression "pbVar33 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar30 = (byte *)psVar31;" (assignment_expression "pbVar30 = (byte *)psVar31" identifier = (cast_expression "(byte *)psVar31" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (bVar2 == 10) goto LAB_0001a0a9;" if (parenthesized_expression "(bVar2 == 10)" ( (binary_expression "bVar2 == 10" identifier == number_literal) )) (goto_statement "goto LAB_0001a0a9;" goto statement_identifier ;)) (do_statement "do {\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                } while (bVar2 != 10);" do (compound_statement "{\n                  psVar31 = (size_t *)(pbVar30 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                  bVar2 = *pbVar30;\n                  uVar28 = (uint)bVar2;\n                  pbVar30 = (byte *)psVar31;\n                }" { (expression_statement "psVar31 = (size_t *)(pbVar30 + 1);" (assignment_expression "psVar31 = (size_t *)(pbVar30 + 1)" identifier = (cast_expression "(size_t *)(pbVar30 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar30 + 1)" ( (binary_expression "pbVar30 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;" (assignment_expression "uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28" identifier = (binary_expression "(uVar9 << 7 | uVar9 >> 0x19) + uVar28" (parenthesized_expression "(uVar9 << 7 | uVar9 >> 0x19)" ( (binary_expression "uVar9 << 7 | uVar9 >> 0x19" (binary_expression "uVar9 << 7" identifier << number_literal) | (binary_expression "uVar9 >> 0x19" identifier >> number_literal)) )) + identifier)) ;) (expression_statement "bVar2 = *pbVar30;" (assignment_expression "bVar2 = *pbVar30" identifier = (pointer_expression "*pbVar30" * identifier)) ;) (expression_statement "uVar28 = (uint)bVar2;" (assignment_expression "uVar28 = (uint)bVar2" identifier = (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar30 = (byte *)psVar31;" (assignment_expression "pbVar30 = (byte *)psVar31" identifier = (cast_expression "(byte *)psVar31" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(bVar2 != 10)" ( (binary_expression "bVar2 != 10" identifier != number_literal) )) ;) }) (else_clause "else {\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }" else (compound_statement "{\n                if (bVar2 == 10) goto LAB_0001a500;\n                pp_Var15 = __ctype_tolower_loc();\n                uVar9 = 0;\n                pbVar33 = (byte *)psVar31;\n                do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);\n              }" { (if_statement "if (bVar2 == 10) goto LAB_0001a500;" if (parenthesized_expression "(bVar2 == 10)" ( (binary_expression "bVar2 == 10" identifier == number_literal) )) (goto_statement "goto LAB_0001a500;" goto statement_identifier ;)) (expression_statement "pp_Var15 = __ctype_tolower_loc();" (assignment_expression "pp_Var15 = __ctype_tolower_loc()" identifier = (call_expression "__ctype_tolower_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "pbVar33 = (byte *)psVar31;" (assignment_expression "pbVar33 = (byte *)psVar31" identifier = (cast_expression "(byte *)psVar31" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                } while (bVar2 != 10);" do (compound_statement "{\n                  psVar31 = (size_t *)(pbVar33 + 1);\n                  uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];\n                  bVar2 = *pbVar33;\n                  uVar28 = (uint)bVar2;\n                  pbVar33 = (byte *)psVar31;\n                }" { (expression_statement "psVar31 = (size_t *)(pbVar33 + 1);" (assignment_expression "psVar31 = (size_t *)(pbVar33 + 1)" identifier = (cast_expression "(size_t *)(pbVar33 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar33 + 1)" ( (binary_expression "pbVar33 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28];" (assignment_expression "uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28]" identifier = (binary_expression "(uVar9 << 7 | uVar9 >> 0x19) + (*pp_Var15)[uVar28]" (parenthesized_expression "(uVar9 << 7 | uVar9 >> 0x19)" ( (binary_expression "uVar9 << 7 | uVar9 >> 0x19" (binary_expression "uVar9 << 7" identifier << number_literal) | (binary_expression "uVar9 >> 0x19" identifier >> number_literal)) )) + (subscript_expression "(*pp_Var15)[uVar28]" (parenthesized_expression "(*pp_Var15)" ( (pointer_expression "*pp_Var15" * identifier) )) [ identifier ]))) ;) (expression_statement "bVar2 = *pbVar33;" (assignment_expression "bVar2 = *pbVar33" identifier = (pointer_expression "*pbVar33" * identifier)) ;) (expression_statement "uVar28 = (uint)bVar2;" (assignment_expression "uVar28 = (uint)bVar2" identifier = (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar33 = (byte *)psVar31;" (assignment_expression "pbVar33 = (byte *)psVar31" identifier = (cast_expression "(byte *)psVar31" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(bVar2 != 10)" ( (binary_expression "bVar2 != 10" identifier != number_literal) )) ;) })))) }) (else_clause "else {\n              uVar9 = 0;\n              psVar31 = (size_t *)((int)local_90 + 1);\n              if (bVar2 != 10) {\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }\n            }" else (compound_statement "{\n              uVar9 = 0;\n              psVar31 = (size_t *)((int)local_90 + 1);\n              if (bVar2 != 10) {\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }\n            }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "psVar31 = (size_t *)((int)local_90 + 1);" (assignment_expression "psVar31 = (size_t *)((int)local_90 + 1)" identifier = (cast_expression "(size_t *)((int)local_90 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_90 + 1)" ( (binary_expression "(int)local_90 + 1" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (bVar2 != 10) {\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }" if (parenthesized_expression "(bVar2 != 10)" ( (binary_expression "bVar2 != 10" identifier != number_literal) )) (compound_statement "{\n                uVar25 = 0;\n                local_84 = psVar31;\n                do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);\n              }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) (expression_statement "local_84 = psVar31;" (assignment_expression "local_84 = psVar31" identifier = identifier) ;) (do_statement "do {\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                } while ((byte)sVar5 != 10);" do (compound_statement "{\n                  cVar23 = (char)uVar28;\n                  if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }\n                  DVar29 = DVar6 & IGNORE_TAB_EXPANSION;\n                  if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }\n                  if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }\n                  do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);\n                  psVar31 = (size_t *)((int)local_84 + 1);\n                  sVar5 = *local_84;\n                  uVar28 = (uint)(byte)sVar5;\n                  local_84 = psVar31;\n                }" { (expression_statement "cVar23 = (char)uVar28;" (assignment_expression "cVar23 = (char)uVar28" identifier = (cast_expression "(char)uVar28" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if ((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE) {\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }" if (parenthesized_expression "((DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE)" ( (binary_expression "(DVar6 & IGNORE_TRAILING_SPACE) != IGNORE_NO_WHITE_SPACE" (parenthesized_expression "(DVar6 & IGNORE_TRAILING_SPACE)" ( (binary_expression "DVar6 & IGNORE_TRAILING_SPACE" identifier & identifier) )) != identifier) )) (compound_statement "{\n                    ppuVar14 = __ctype_b_loc();\n                    bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);\n                    psVar35 = local_84;\n                    while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }\n                  }" { (expression_statement "ppuVar14 = __ctype_b_loc();" (assignment_expression "ppuVar14 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1);" (assignment_expression "bVar2 = *(byte *)((int)*ppuVar14 + uVar28 * 2 + 1)" identifier = (pointer_expression "*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar14 + uVar28 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar14 + uVar28 * 2 + 1)" ( (binary_expression "(int)*ppuVar14 + uVar28 * 2 + 1" (binary_expression "(int)*ppuVar14 + uVar28 * 2" (cast_expression "(int)*ppuVar14" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar14" * identifier)) + (binary_expression "uVar28 * 2" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "psVar35 = local_84;" (assignment_expression "psVar35 = local_84" identifier = identifier) ;) (while_statement "while ((bVar2 & 0x20) != 0) {\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }" while (parenthesized_expression "((bVar2 & 0x20) != 0)" ( (binary_expression "(bVar2 & 0x20) != 0" (parenthesized_expression "(bVar2 & 0x20)" ( (binary_expression "bVar2 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                      psVar31 = (size_t *)((int)psVar35 + 1);\n                      if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;\n                      bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);\n                      psVar35 = psVar31;\n                    }" { (expression_statement "psVar31 = (size_t *)((int)psVar35 + 1);" (assignment_expression "psVar31 = (size_t *)((int)psVar35 + 1)" identifier = (cast_expression "(size_t *)((int)psVar35 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar35 + 1)" ( (binary_expression "(int)psVar35 + 1" (cast_expression "(int)psVar35" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(byte *)psVar35 == 10) goto LAB_0001a0a0;" if (parenthesized_expression "(*(byte *)psVar35 == 10)" ( (binary_expression "*(byte *)psVar35 == 10" (pointer_expression "*(byte *)psVar35" * (cast_expression "(byte *)psVar35" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (goto_statement "goto LAB_0001a0a0;" goto statement_identifier ;)) (expression_statement "bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1);" (assignment_expression "bVar2 = *(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1)" identifier = (pointer_expression "*(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1)" ( (binary_expression "(int)*ppuVar14 + (uint)*(byte *)psVar35 * 2 + 1" (binary_expression "(int)*ppuVar14 + (uint)*(byte *)psVar35 * 2" (cast_expression "(int)*ppuVar14" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar14" * identifier)) + (binary_expression "(uint)*(byte *)psVar35 * 2" (binary_expression "(uint)*(byte *)psVar35" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)psVar35" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) * number_literal)) + number_literal) ))))) ;) (expression_statement "psVar35 = psVar31;" (assignment_expression "psVar35 = psVar31" identifier = identifier) ;) })) })) (expression_statement "DVar29 = DVar6 & IGNORE_TAB_EXPANSION;" (assignment_expression "DVar29 = DVar6 & IGNORE_TAB_EXPANSION" identifier = (binary_expression "DVar6 & IGNORE_TAB_EXPANSION" identifier & identifier)) ;) (if_statement "if (DVar29 == IGNORE_NO_WHITE_SPACE) {\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }\n                  else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }" if (parenthesized_expression "(DVar29 == IGNORE_NO_WHITE_SPACE)" ( (binary_expression "DVar29 == IGNORE_NO_WHITE_SPACE" identifier == identifier) )) (compound_statement "{\n                    DVar29 = IGNORE_TAB_EXPANSION;\n                  }" { (expression_statement "DVar29 = IGNORE_TAB_EXPANSION;" (assignment_expression "DVar29 = IGNORE_TAB_EXPANSION" identifier = identifier) ;) }) (else_clause "else if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }" else (if_statement "if (cVar23 == '\t') {\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }\n                  else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }" if (parenthesized_expression "(cVar23 == '\t')" ( (binary_expression "cVar23 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) )) (compound_statement "{\n                    DVar29 = sVar11 - uVar25 % sVar11;\n                    uVar28 = 0x20;\n                    bVar38 = CARRY4(uVar25,DVar29);\n                    uVar25 = uVar25 + DVar29;\n                    if (bVar38) {\n                      uVar25 = 0;\n                    }\n                  }" { (expression_statement "DVar29 = sVar11 - uVar25 % sVar11;" (assignment_expression "DVar29 = sVar11 - uVar25 % sVar11" identifier = (binary_expression "sVar11 - uVar25 % sVar11" identifier - (binary_expression "uVar25 % sVar11" identifier % identifier))) ;) (expression_statement "uVar28 = 0x20;" (assignment_expression "uVar28 = 0x20" identifier = number_literal) ;) (expression_statement "bVar38 = CARRY4(uVar25,DVar29);" (assignment_expression "bVar38 = CARRY4(uVar25,DVar29)" identifier = (call_expression "CARRY4(uVar25,DVar29)" identifier (argument_list "(uVar25,DVar29)" ( identifier , identifier )))) ;) (expression_statement "uVar25 = uVar25 + DVar29;" (assignment_expression "uVar25 = uVar25 + DVar29" identifier = (binary_expression "uVar25 + DVar29" identifier + identifier)) ;) (if_statement "if (bVar38) {\n                      uVar25 = 0;\n                    }" if (parenthesized_expression "(bVar38)" ( identifier )) (compound_statement "{\n                      uVar25 = 0;\n                    }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) })) }) (else_clause "else if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }" else (if_statement "if (cVar23 == '\r') {\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }\n                  else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }" if (parenthesized_expression "(cVar23 == '\r')" ( (binary_expression "cVar23 == '\r'" identifier == (char_literal "'\r'" ' escape_sequence ')) )) (compound_statement "{\n                    uVar28 = 0xd;\n                    uVar25 = 0;\n                  }" { (expression_statement "uVar28 = 0xd;" (assignment_expression "uVar28 = 0xd" identifier = number_literal) ;) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) }) (else_clause "else if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }" else (if_statement "if (cVar23 == '\b') {\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }\n                  else {\n                    uVar25 = uVar25 + 1;\n                  }" if (parenthesized_expression "(cVar23 == '\b')" ( (binary_expression "cVar23 == '\b'" identifier == (char_literal "'\b'" ' escape_sequence ')) )) (compound_statement "{\n                    uVar28 = 8;\n                    uVar25 = uVar25 - (uVar25 != 0);\n                  }" { (expression_statement "uVar28 = 8;" (assignment_expression "uVar28 = 8" identifier = number_literal) ;) (expression_statement "uVar25 = uVar25 - (uVar25 != 0);" (assignment_expression "uVar25 = uVar25 - (uVar25 != 0)" identifier = (binary_expression "uVar25 - (uVar25 != 0)" identifier - (parenthesized_expression "(uVar25 != 0)" ( (binary_expression "uVar25 != 0" identifier != number_literal) )))) ;) }) (else_clause "else {\n                    uVar25 = uVar25 + 1;\n                  }" else (compound_statement "{\n                    uVar25 = uVar25 + 1;\n                  }" { (expression_statement "uVar25 = uVar25 + 1;" (assignment_expression "uVar25 = uVar25 + 1" identifier = (binary_expression "uVar25 + 1" identifier + number_literal)) ;) }))))))))) (if_statement "if (_Var8 != false) {\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }" if (parenthesized_expression "(_Var8 != false)" ( (binary_expression "_Var8 != false" identifier != false) )) (compound_statement "{\n                    pp_Var15 = __ctype_tolower_loc();\n                    uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);\n                  }" { (expression_statement "pp_Var15 = __ctype_tolower_loc();" (assignment_expression "pp_Var15 = __ctype_tolower_loc()" identifier = (call_expression "__ctype_tolower_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28);" (assignment_expression "uVar28 = (uint)*(byte *)(*pp_Var15 + uVar28)" identifier = (binary_expression "(uint)*(byte *)(*pp_Var15 + uVar28)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*pp_Var15 + uVar28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*pp_Var15 + uVar28)" ( (binary_expression "*pp_Var15 + uVar28" (pointer_expression "*pp_Var15" * identifier) + identifier) ))))) ;) })) (do_statement "do {\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  } while (DVar29 != IGNORE_NO_WHITE_SPACE);" do (compound_statement "{\n                    uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n                    DVar29 = DVar29 - IGNORE_TAB_EXPANSION;\n                  }" { (expression_statement "uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;" (assignment_expression "uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28" identifier = (binary_expression "(uVar9 << 7 | uVar9 >> 0x19) + uVar28" (parenthesized_expression "(uVar9 << 7 | uVar9 >> 0x19)" ( (binary_expression "uVar9 << 7 | uVar9 >> 0x19" (binary_expression "uVar9 << 7" identifier << number_literal) | (binary_expression "uVar9 >> 0x19" identifier >> number_literal)) )) + identifier)) ;) (expression_statement "DVar29 = DVar29 - IGNORE_TAB_EXPANSION;" (assignment_expression "DVar29 = DVar29 - IGNORE_TAB_EXPANSION" identifier = (binary_expression "DVar29 - IGNORE_TAB_EXPANSION" identifier - identifier)) ;) }) while (parenthesized_expression "(DVar29 != IGNORE_NO_WHITE_SPACE)" ( (binary_expression "DVar29 != IGNORE_NO_WHITE_SPACE" identifier != identifier) )) ;) (expression_statement "psVar31 = (size_t *)((int)local_84 + 1);" (assignment_expression "psVar31 = (size_t *)((int)local_84 + 1)" identifier = (cast_expression "(size_t *)((int)local_84 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_84 + 1)" ( (binary_expression "(int)local_84 + 1" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "sVar5 = *local_84;" (assignment_expression "sVar5 = *local_84" identifier = (pointer_expression "*local_84" * identifier)) ;) (expression_statement "uVar28 = (uint)(byte)sVar5;" (assignment_expression "uVar28 = (uint)(byte)sVar5" identifier = (cast_expression "(uint)(byte)sVar5" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)sVar5" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (expression_statement "local_84 = psVar31;" (assignment_expression "local_84 = psVar31" identifier = identifier) ;) }) while (parenthesized_expression "((byte)sVar5 != 10)" ( (binary_expression "(byte)sVar5 != 10" (cast_expression "(byte)sVar5" ( (type_descriptor "byte" type_identifier) ) identifier) != number_literal) )) ;) })) }))) }) (else_clause "else {\n            if (DVar6 != IGNORE_ALL_SPACE) goto LAB_0001a398;\n            uVar9 = 0;\n            psVar31 = local_90;\n            while (psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n') {\n              ppuVar14 = __ctype_b_loc();\n              if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }\n              uVar28 = (uint)*(byte *)psVar31;\n            }\n          }" else (compound_statement "{\n            if (DVar6 != IGNORE_ALL_SPACE) goto LAB_0001a398;\n            uVar9 = 0;\n            psVar31 = local_90;\n            while (psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n') {\n              ppuVar14 = __ctype_b_loc();\n              if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }\n              uVar28 = (uint)*(byte *)psVar31;\n            }\n          }" { (if_statement "if (DVar6 != IGNORE_ALL_SPACE) goto LAB_0001a398;" if (parenthesized_expression "(DVar6 != IGNORE_ALL_SPACE)" ( (binary_expression "DVar6 != IGNORE_ALL_SPACE" identifier != identifier) )) (goto_statement "goto LAB_0001a398;" goto statement_identifier ;)) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "psVar31 = local_90;" (assignment_expression "psVar31 = local_90" identifier = identifier) ;) (while_statement "while (psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n') {\n              ppuVar14 = __ctype_b_loc();\n              if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }\n              uVar28 = (uint)*(byte *)psVar31;\n            }" while (parenthesized_expression "(psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n')" ( (comma_expression "psVar31 = (size_t *)((int)psVar31 + 1), (char)uVar28 != '\n'" (assignment_expression "psVar31 = (size_t *)((int)psVar31 + 1)" identifier = (cast_expression "(size_t *)((int)psVar31 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar31 + 1)" ( (binary_expression "(int)psVar31 + 1" (cast_expression "(int)psVar31" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (binary_expression "(char)uVar28 != '\n'" (cast_expression "(char)uVar28" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\n'" ' escape_sequence '))) )) (compound_statement "{\n              ppuVar14 = __ctype_b_loc();\n              if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }\n              uVar28 = (uint)*(byte *)psVar31;\n            }" { (expression_statement "ppuVar14 = __ctype_b_loc();" (assignment_expression "ppuVar14 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0) {\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }" if (parenthesized_expression "((*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)*ppuVar14 + uVar28 * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar14 + uVar28 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar14 + uVar28 * 2 + 1)" ( (binary_expression "(int)*ppuVar14 + uVar28 * 2 + 1" (binary_expression "(int)*ppuVar14 + uVar28 * 2" (cast_expression "(int)*ppuVar14" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar14" * identifier)) + (binary_expression "uVar28 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }\n                uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;\n              }" { (if_statement "if (_Var8 != false) {\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }" if (parenthesized_expression "(_Var8 != false)" ( (binary_expression "_Var8 != false" identifier != false) )) (compound_statement "{\n                  pp_Var15 = __ctype_tolower_loc();\n                  uVar28 = (*pp_Var15)[uVar28];\n                }" { (expression_statement "pp_Var15 = __ctype_tolower_loc();" (assignment_expression "pp_Var15 = __ctype_tolower_loc()" identifier = (call_expression "__ctype_tolower_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar28 = (*pp_Var15)[uVar28];" (assignment_expression "uVar28 = (*pp_Var15)[uVar28]" identifier = (subscript_expression "(*pp_Var15)[uVar28]" (parenthesized_expression "(*pp_Var15)" ( (pointer_expression "*pp_Var15" * identifier) )) [ identifier ])) ;) })) (expression_statement "uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28;" (assignment_expression "uVar9 = (uVar9 << 7 | uVar9 >> 0x19) + uVar28" identifier = (binary_expression "(uVar9 << 7 | uVar9 >> 0x19) + uVar28" (parenthesized_expression "(uVar9 << 7 | uVar9 >> 0x19)" ( (binary_expression "uVar9 << 7 | uVar9 >> 0x19" (binary_expression "uVar9 << 7" identifier << number_literal) | (binary_expression "uVar9 >> 0x19" identifier >> number_literal)) )) + identifier)) ;) })) (expression_statement "uVar28 = (uint)*(byte *)psVar31;" (assignment_expression "uVar28 = (uint)*(byte *)psVar31" identifier = (binary_expression "(uint)*(byte *)psVar31" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)psVar31" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) })) }))) (labeled_statement "LAB_0001a0a0:\n          pbVar33 = (byte *)((int)psVar31 + (-1 - (int)local_90));" statement_identifier : (expression_statement "pbVar33 = (byte *)((int)psVar31 + (-1 - (int)local_90));" (assignment_expression "pbVar33 = (byte *)((int)psVar31 + (-1 - (int)local_90))" identifier = (cast_expression "(byte *)((int)psVar31 + (-1 - (int)local_90))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar31 + (-1 - (int)local_90))" ( (binary_expression "(int)psVar31 + (-1 - (int)local_90)" (cast_expression "(int)psVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-1 - (int)local_90)" ( (binary_expression "-1 - (int)local_90" number_literal - (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;)) }))) (labeled_statement "LAB_0001a0a9:\n        puVar1 = (uint *)(buckets + uVar9 % nbuckets);" statement_identifier : (expression_statement "puVar1 = (uint *)(buckets + uVar9 % nbuckets);" (assignment_expression "puVar1 = (uint *)(buckets + uVar9 % nbuckets)" identifier = (cast_expression "(uint *)(buckets + uVar9 % nbuckets)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(buckets + uVar9 % nbuckets)" ( (binary_expression "buckets + uVar9 % nbuckets" identifier + (binary_expression "uVar9 % nbuckets" identifier % identifier)) )))) ;)) (expression_statement "local_84 = puVar1;" (assignment_expression "local_84 = puVar1" identifier = identifier) ;) (if_statement "if (((((size_t *)pbVar13 == psVar31) && (*(_Bool *)(local_5c + 0x10) != false)) &&\n            (1 < output_style - OUTPUT_ED)) &&\n           (local_84 = (size_t *)(buckets + -1), IGNORE_TAB_EXPANSION < DVar6)) {\n          local_84 = puVar1;\n        }" if (parenthesized_expression "(((((size_t *)pbVar13 == psVar31) && (*(_Bool *)(local_5c + 0x10) != false)) &&\n            (1 < output_style - OUTPUT_ED)) &&\n           (local_84 = (size_t *)(buckets + -1), IGNORE_TAB_EXPANSION < DVar6))" ( (binary_expression "((((size_t *)pbVar13 == psVar31) && (*(_Bool *)(local_5c + 0x10) != false)) &&\n            (1 < output_style - OUTPUT_ED)) &&\n           (local_84 = (size_t *)(buckets + -1), IGNORE_TAB_EXPANSION < DVar6)" (parenthesized_expression "((((size_t *)pbVar13 == psVar31) && (*(_Bool *)(local_5c + 0x10) != false)) &&\n            (1 < output_style - OUTPUT_ED))" ( (binary_expression "(((size_t *)pbVar13 == psVar31) && (*(_Bool *)(local_5c + 0x10) != false)) &&\n            (1 < output_style - OUTPUT_ED)" (parenthesized_expression "(((size_t *)pbVar13 == psVar31) && (*(_Bool *)(local_5c + 0x10) != false))" ( (binary_expression "((size_t *)pbVar13 == psVar31) && (*(_Bool *)(local_5c + 0x10) != false)" (parenthesized_expression "((size_t *)pbVar13 == psVar31)" ( (binary_expression "(size_t *)pbVar13 == psVar31" (cast_expression "(size_t *)pbVar13" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) && (parenthesized_expression "(*(_Bool *)(local_5c + 0x10) != false)" ( (binary_expression "*(_Bool *)(local_5c + 0x10) != false" (pointer_expression "*(_Bool *)(local_5c + 0x10)" * (cast_expression "(_Bool *)(local_5c + 0x10)" ( (type_descriptor "_Bool *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5c + 0x10)" ( (binary_expression "local_5c + 0x10" identifier + number_literal) )))) != false) ))) )) && (parenthesized_expression "(1 < output_style - OUTPUT_ED)" ( (binary_expression "1 < output_style - OUTPUT_ED" number_literal < (binary_expression "output_style - OUTPUT_ED" identifier - identifier)) ))) )) && (parenthesized_expression "(local_84 = (size_t *)(buckets + -1), IGNORE_TAB_EXPANSION < DVar6)" ( (comma_expression "local_84 = (size_t *)(buckets + -1), IGNORE_TAB_EXPANSION < DVar6" (assignment_expression "local_84 = (size_t *)(buckets + -1)" identifier = (cast_expression "(size_t *)(buckets + -1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(buckets + -1)" ( (binary_expression "buckets + -1" identifier + number_literal) )))) , (binary_expression "IGNORE_TAB_EXPANSION < DVar6" identifier < identifier)) ))) )) (compound_statement "{\n          local_84 = puVar1;\n        }" { (expression_statement "local_84 = puVar1;" (assignment_expression "local_84 = puVar1" identifier = identifier) ;) })) (expression_statement "uVar28 = *local_84;" (assignment_expression "uVar28 = *local_84" identifier = (pointer_expression "*local_84" * identifier)) ;) (expression_statement "local_78 = (size_t *)uVar28;" (assignment_expression "local_78 = (size_t *)uVar28" identifier = (cast_expression "(size_t *)uVar28" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "joined_r0x0001a0d6:\n        if (local_78 != (size_t *)0x0) {\n          do {\n            peVar34 = local_7c + (int)local_78;\n            if (uVar9 == peVar34->hash) {\n              s1 = peVar34->line;\n              if ((byte *)peVar34->length == pbVar33) {\n                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);\n                if (iVar37 == 0) goto joined_r0x0001a144;\n                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;\n              }\n              else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;\n              _Var7 = lines_differ(s1,(char *)local_90);\n              if (!_Var7) goto joined_r0x0001a144;\n            }\nLAB_0001a0f0:\n            local_78 = (size_t *)peVar34->next;\n            if (local_78 == (size_t *)0x0) break;\n          } while( true );\n        }" statement_identifier : (if_statement "if (local_78 != (size_t *)0x0) {\n          do {\n            peVar34 = local_7c + (int)local_78;\n            if (uVar9 == peVar34->hash) {\n              s1 = peVar34->line;\n              if ((byte *)peVar34->length == pbVar33) {\n                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);\n                if (iVar37 == 0) goto joined_r0x0001a144;\n                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;\n              }\n              else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;\n              _Var7 = lines_differ(s1,(char *)local_90);\n              if (!_Var7) goto joined_r0x0001a144;\n            }\nLAB_0001a0f0:\n            local_78 = (size_t *)peVar34->next;\n            if (local_78 == (size_t *)0x0) break;\n          } while( true );\n        }" if (parenthesized_expression "(local_78 != (size_t *)0x0)" ( (binary_expression "local_78 != (size_t *)0x0" identifier != (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          do {\n            peVar34 = local_7c + (int)local_78;\n            if (uVar9 == peVar34->hash) {\n              s1 = peVar34->line;\n              if ((byte *)peVar34->length == pbVar33) {\n                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);\n                if (iVar37 == 0) goto joined_r0x0001a144;\n                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;\n              }\n              else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;\n              _Var7 = lines_differ(s1,(char *)local_90);\n              if (!_Var7) goto joined_r0x0001a144;\n            }\nLAB_0001a0f0:\n            local_78 = (size_t *)peVar34->next;\n            if (local_78 == (size_t *)0x0) break;\n          } while( true );\n        }" { (do_statement "do {\n            peVar34 = local_7c + (int)local_78;\n            if (uVar9 == peVar34->hash) {\n              s1 = peVar34->line;\n              if ((byte *)peVar34->length == pbVar33) {\n                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);\n                if (iVar37 == 0) goto joined_r0x0001a144;\n                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;\n              }\n              else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;\n              _Var7 = lines_differ(s1,(char *)local_90);\n              if (!_Var7) goto joined_r0x0001a144;\n            }\nLAB_0001a0f0:\n            local_78 = (size_t *)peVar34->next;\n            if (local_78 == (size_t *)0x0) break;\n          } while( true );" do (compound_statement "{\n            peVar34 = local_7c + (int)local_78;\n            if (uVar9 == peVar34->hash) {\n              s1 = peVar34->line;\n              if ((byte *)peVar34->length == pbVar33) {\n                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);\n                if (iVar37 == 0) goto joined_r0x0001a144;\n                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;\n              }\n              else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;\n              _Var7 = lines_differ(s1,(char *)local_90);\n              if (!_Var7) goto joined_r0x0001a144;\n            }\nLAB_0001a0f0:\n            local_78 = (size_t *)peVar34->next;\n            if (local_78 == (size_t *)0x0) break;\n          }" { (expression_statement "peVar34 = local_7c + (int)local_78;" (assignment_expression "peVar34 = local_7c + (int)local_78" identifier = (binary_expression "local_7c + (int)local_78" identifier + (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar9 == peVar34->hash) {\n              s1 = peVar34->line;\n              if ((byte *)peVar34->length == pbVar33) {\n                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);\n                if (iVar37 == 0) goto joined_r0x0001a144;\n                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;\n              }\n              else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;\n              _Var7 = lines_differ(s1,(char *)local_90);\n              if (!_Var7) goto joined_r0x0001a144;\n            }" if (parenthesized_expression "(uVar9 == peVar34->hash)" ( (binary_expression "uVar9 == peVar34->hash" identifier == (field_expression "peVar34->hash" identifier -> field_identifier)) )) (compound_statement "{\n              s1 = peVar34->line;\n              if ((byte *)peVar34->length == pbVar33) {\n                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);\n                if (iVar37 == 0) goto joined_r0x0001a144;\n                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;\n              }\n              else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;\n              _Var7 = lines_differ(s1,(char *)local_90);\n              if (!_Var7) goto joined_r0x0001a144;\n            }" { (expression_statement "s1 = peVar34->line;" (assignment_expression "s1 = peVar34->line" identifier = (field_expression "peVar34->line" identifier -> field_identifier)) ;) (if_statement "if ((byte *)peVar34->length == pbVar33) {\n                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);\n                if (iVar37 == 0) goto joined_r0x0001a144;\n                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;\n              }\n              else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;" if (parenthesized_expression "((byte *)peVar34->length == pbVar33)" ( (binary_expression "(byte *)peVar34->length == pbVar33" (cast_expression "(byte *)peVar34->length" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "peVar34->length" identifier -> field_identifier)) == identifier) )) (compound_statement "{\n                iVar37 = memcmp(s1,local_90,(size_t)pbVar33);\n                if (iVar37 == 0) goto joined_r0x0001a144;\n                if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;\n              }" { (expression_statement "iVar37 = memcmp(s1,local_90,(size_t)pbVar33);" (assignment_expression "iVar37 = memcmp(s1,local_90,(size_t)pbVar33)" identifier = (call_expression "memcmp(s1,local_90,(size_t)pbVar33)" identifier (argument_list "(s1,local_90,(size_t)pbVar33)" ( identifier , identifier , (cast_expression "(size_t)pbVar33" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (if_statement "if (iVar37 == 0) goto joined_r0x0001a144;" if (parenthesized_expression "(iVar37 == 0)" ( (binary_expression "iVar37 == 0" identifier == number_literal) )) (goto_statement "goto joined_r0x0001a144;" goto statement_identifier ;)) (if_statement "if (bVar39 && _Var8 == false) goto code_r0x0001a1dc;" if (parenthesized_expression "(bVar39 && _Var8 == false)" ( (binary_expression "bVar39 && _Var8 == false" identifier && (binary_expression "_Var8 == false" identifier == false)) )) (goto_statement "goto code_r0x0001a1dc;" goto statement_identifier ;)) }) (else_clause "else if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;" else (if_statement "if (DVar6 == IGNORE_NO_WHITE_SPACE) goto LAB_0001a0f0;" if (parenthesized_expression "(DVar6 == IGNORE_NO_WHITE_SPACE)" ( (binary_expression "DVar6 == IGNORE_NO_WHITE_SPACE" identifier == identifier) )) (goto_statement "goto LAB_0001a0f0;" goto statement_identifier ;)))) (expression_statement "_Var7 = lines_differ(s1,(char *)local_90);" (assignment_expression "_Var7 = lines_differ(s1,(char *)local_90)" identifier = (call_expression "lines_differ(s1,(char *)local_90)" identifier (argument_list "(s1,(char *)local_90)" ( identifier , (cast_expression "(char *)local_90" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (!_Var7) goto joined_r0x0001a144;" if (parenthesized_expression "(!_Var7)" ( (unary_expression "!_Var7" ! identifier) )) (goto_statement "goto joined_r0x0001a144;" goto statement_identifier ;)) })) (labeled_statement "LAB_0001a0f0:\n            local_78 = (size_t *)peVar34->next;" statement_identifier : (expression_statement "local_78 = (size_t *)peVar34->next;" (assignment_expression "local_78 = (size_t *)peVar34->next" identifier = (cast_expression "(size_t *)peVar34->next" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "peVar34->next" identifier -> field_identifier))) ;)) (if_statement "if (local_78 == (size_t *)0x0) break;" if (parenthesized_expression "(local_78 == (size_t *)0x0)" ( (binary_expression "local_78 == (size_t *)0x0" identifier == (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (if_statement "if (local_60 == local_64) {\n          if (0x3fffffe < local_60) goto LAB_0001a9c0;\n          local_7c = (equivclass *)xrealloc(local_7c,local_60 << 5);\n          uVar28 = *local_84;\n          local_60 = local_60 * 2;\n        }" if (parenthesized_expression "(local_60 == local_64)" ( (binary_expression "local_60 == local_64" identifier == identifier) )) (compound_statement "{\n          if (0x3fffffe < local_60) goto LAB_0001a9c0;\n          local_7c = (equivclass *)xrealloc(local_7c,local_60 << 5);\n          uVar28 = *local_84;\n          local_60 = local_60 * 2;\n        }" { (if_statement "if (0x3fffffe < local_60) goto LAB_0001a9c0;" if (parenthesized_expression "(0x3fffffe < local_60)" ( (binary_expression "0x3fffffe < local_60" number_literal < identifier) )) (goto_statement "goto LAB_0001a9c0;" goto statement_identifier ;)) (expression_statement "local_7c = (equivclass *)xrealloc(local_7c,local_60 << 5);" (assignment_expression "local_7c = (equivclass *)xrealloc(local_7c,local_60 << 5)" identifier = (cast_expression "(equivclass *)xrealloc(local_7c,local_60 << 5)" ( (type_descriptor "equivclass *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_7c,local_60 << 5)" identifier (argument_list "(local_7c,local_60 << 5)" ( identifier , (binary_expression "local_60 << 5" identifier << number_literal) ))))) ;) (expression_statement "uVar28 = *local_84;" (assignment_expression "uVar28 = *local_84" identifier = (pointer_expression "*local_84" * identifier)) ;) (expression_statement "local_60 = local_60 * 2;" (assignment_expression "local_60 = local_60 * 2" identifier = (binary_expression "local_60 * 2" identifier * number_literal)) ;) })) (expression_statement "peVar34 = local_7c + local_64;" (assignment_expression "peVar34 = local_7c + local_64" identifier = (binary_expression "local_7c + local_64" identifier + identifier)) ;) (expression_statement "peVar34->next = uVar28;" (assignment_expression "peVar34->next = uVar28" (field_expression "peVar34->next" identifier -> field_identifier) = identifier) ;) (expression_statement "peVar34->hash = uVar9;" (assignment_expression "peVar34->hash = uVar9" (field_expression "peVar34->hash" identifier -> field_identifier) = identifier) ;) (expression_statement "peVar34->line = (char *)local_90;" (assignment_expression "peVar34->line = (char *)local_90" (field_expression "peVar34->line" identifier -> field_identifier) = (cast_expression "(char *)local_90" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "peVar34->length = (size_t)pbVar33;" (assignment_expression "peVar34->length = (size_t)pbVar33" (field_expression "peVar34->length" identifier -> field_identifier) = (cast_expression "(size_t)pbVar33" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "*local_84 = local_64;" (assignment_expression "*local_84 = local_64" (pointer_expression "*local_84" * identifier) = identifier) ;) (expression_statement "local_78 = (size_t *)local_64;" (assignment_expression "local_78 = (size_t *)local_64" identifier = (cast_expression "(size_t *)local_64" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (labeled_statement "joined_r0x0001a144:\n        if (local_8c == (size_t *)local_6c) {\n          if (((0x2aaaaaa9 < (int)local_8c) ||\n              (local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c)) ||\n             (0x1ffffffe < (uint)((int)local_8c - iVar22))) goto LAB_0001a9c0;\n          local_68 = (lin *)xrealloc(local_68,local_6c * 4);\n          pvVar12 = xrealloc(local_80 + iVar22,(local_6c - iVar22) * 4);\n          local_80 = (char **)((int)pvVar12 + iVar22 * -4);\n        }" statement_identifier : (if_statement "if (local_8c == (size_t *)local_6c) {\n          if (((0x2aaaaaa9 < (int)local_8c) ||\n              (local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c)) ||\n             (0x1ffffffe < (uint)((int)local_8c - iVar22))) goto LAB_0001a9c0;\n          local_68 = (lin *)xrealloc(local_68,local_6c * 4);\n          pvVar12 = xrealloc(local_80 + iVar22,(local_6c - iVar22) * 4);\n          local_80 = (char **)((int)pvVar12 + iVar22 * -4);\n        }" if (parenthesized_expression "(local_8c == (size_t *)local_6c)" ( (binary_expression "local_8c == (size_t *)local_6c" identifier == (cast_expression "(size_t *)local_6c" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          if (((0x2aaaaaa9 < (int)local_8c) ||\n              (local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c)) ||\n             (0x1ffffffe < (uint)((int)local_8c - iVar22))) goto LAB_0001a9c0;\n          local_68 = (lin *)xrealloc(local_68,local_6c * 4);\n          pvVar12 = xrealloc(local_80 + iVar22,(local_6c - iVar22) * 4);\n          local_80 = (char **)((int)pvVar12 + iVar22 * -4);\n        }" { (if_statement "if (((0x2aaaaaa9 < (int)local_8c) ||\n              (local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c)) ||\n             (0x1ffffffe < (uint)((int)local_8c - iVar22))) goto LAB_0001a9c0;" if (parenthesized_expression "(((0x2aaaaaa9 < (int)local_8c) ||\n              (local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c)) ||\n             (0x1ffffffe < (uint)((int)local_8c - iVar22)))" ( (binary_expression "((0x2aaaaaa9 < (int)local_8c) ||\n              (local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c)) ||\n             (0x1ffffffe < (uint)((int)local_8c - iVar22))" (parenthesized_expression "((0x2aaaaaa9 < (int)local_8c) ||\n              (local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c))" ( (binary_expression "(0x2aaaaaa9 < (int)local_8c) ||\n              (local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c)" (parenthesized_expression "(0x2aaaaaa9 < (int)local_8c)" ( (binary_expression "0x2aaaaaa9 < (int)local_8c" number_literal < (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c)" ( (comma_expression "local_6c = (int)local_8c * 2 - iVar22, 0x1ffffffe < local_6c" (assignment_expression "local_6c = (int)local_8c * 2 - iVar22" identifier = (binary_expression "(int)local_8c * 2 - iVar22" (binary_expression "(int)local_8c * 2" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - identifier)) , (binary_expression "0x1ffffffe < local_6c" number_literal < identifier)) ))) )) || (parenthesized_expression "(0x1ffffffe < (uint)((int)local_8c - iVar22))" ( (binary_expression "0x1ffffffe < (uint)((int)local_8c - iVar22)" number_literal < (call_expression "(uint)((int)local_8c - iVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_8c - iVar22)" ( (binary_expression "(int)local_8c - iVar22" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ))) )) (goto_statement "goto LAB_0001a9c0;" goto statement_identifier ;)) (expression_statement "local_68 = (lin *)xrealloc(local_68,local_6c * 4);" (assignment_expression "local_68 = (lin *)xrealloc(local_68,local_6c * 4)" identifier = (cast_expression "(lin *)xrealloc(local_68,local_6c * 4)" ( (type_descriptor "lin *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_68,local_6c * 4)" identifier (argument_list "(local_68,local_6c * 4)" ( identifier , (binary_expression "local_6c * 4" identifier * number_literal) ))))) ;) (expression_statement "pvVar12 = xrealloc(local_80 + iVar22,(local_6c - iVar22) * 4);" (assignment_expression "pvVar12 = xrealloc(local_80 + iVar22,(local_6c - iVar22) * 4)" identifier = (call_expression "xrealloc(local_80 + iVar22,(local_6c - iVar22) * 4)" identifier (argument_list "(local_80 + iVar22,(local_6c - iVar22) * 4)" ( (binary_expression "local_80 + iVar22" identifier + identifier) , (binary_expression "(local_6c - iVar22) * 4" (parenthesized_expression "(local_6c - iVar22)" ( (binary_expression "local_6c - iVar22" identifier - identifier) )) * number_literal) )))) ;) (expression_statement "local_80 = (char **)((int)pvVar12 + iVar22 * -4);" (assignment_expression "local_80 = (char **)((int)pvVar12 + iVar22 * -4)" identifier = (cast_expression "(char **)((int)pvVar12 + iVar22 * -4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pvVar12 + iVar22 * -4)" ( (binary_expression "(int)pvVar12 + iVar22 * -4" (cast_expression "(int)pvVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar22 * -4" identifier * number_literal)) )))) ;) }))) (expression_statement "local_80[(int)local_8c] = (char *)local_90;" (assignment_expression "local_80[(int)local_8c] = (char *)local_90" (subscript_expression "local_80[(int)local_8c]" identifier [ (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (cast_expression "(char *)local_90" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_68[(int)local_8c] = (lin)local_78;" (assignment_expression "local_68[(int)local_8c] = (lin)local_78" (subscript_expression "local_68[(int)local_8c]" identifier [ (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) ]) = (cast_expression "(lin)local_78" ( (type_descriptor "lin" type_identifier) ) identifier)) ;) (expression_statement "local_8c = (size_t *)((int)local_8c + 1);" (assignment_expression "local_8c = (size_t *)((int)local_8c + 1)" identifier = (cast_expression "(size_t *)((int)local_8c + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + 1)" ( (binary_expression "(int)local_8c + 1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_90 = psVar31;" (assignment_expression "local_90 = psVar31" identifier = identifier) ;) (if_statement "if (pbVar32 <= psVar31) goto LAB_0001a520;" if (parenthesized_expression "(pbVar32 <= psVar31)" ( (binary_expression "pbVar32 <= psVar31" identifier <= identifier) )) (goto_statement "goto LAB_0001a520;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "local_8c = (size_t *)0x0;" (assignment_expression "local_8c = (size_t *)0x0" identifier = (cast_expression "(size_t *)0x0" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0001a520:\n    local_5c[5] = local_8c;" statement_identifier : (expression_statement "local_5c[5] = local_8c;" (assignment_expression "local_5c[5] = local_8c" (subscript_expression "local_5c[5]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "iVar37 = 0;" (assignment_expression "iVar37 = 0" identifier = number_literal) ;) (while_statement "while ((size_t *)local_6c != local_8c) {\n      ppcVar16 = local_80 + (int)local_8c;\n      *ppcVar16 = (char *)psVar31;\n      if ((size_t *)pbVar13 == psVar31) goto LAB_0001a5e6;\nLAB_0001a553:\n      if ((context <= iVar37) && (no_diff_means_no_output != false)) goto LAB_0001a618;\n      local_8c = (size_t *)((int)local_8c + 1);\n      pbVar32 = (byte *)psVar31;\n      do {\n        psVar31 = (size_t *)(pbVar32 + 1);\n        bVar2 = *pbVar32;\n        pbVar32 = (byte *)psVar31;\n      } while (bVar2 != 10);\n      iVar37 = iVar37 + 1;\n    }" while (parenthesized_expression "((size_t *)local_6c != local_8c)" ( (binary_expression "(size_t *)local_6c != local_8c" (cast_expression "(size_t *)local_6c" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (compound_statement "{\n      ppcVar16 = local_80 + (int)local_8c;\n      *ppcVar16 = (char *)psVar31;\n      if ((size_t *)pbVar13 == psVar31) goto LAB_0001a5e6;\nLAB_0001a553:\n      if ((context <= iVar37) && (no_diff_means_no_output != false)) goto LAB_0001a618;\n      local_8c = (size_t *)((int)local_8c + 1);\n      pbVar32 = (byte *)psVar31;\n      do {\n        psVar31 = (size_t *)(pbVar32 + 1);\n        bVar2 = *pbVar32;\n        pbVar32 = (byte *)psVar31;\n      } while (bVar2 != 10);\n      iVar37 = iVar37 + 1;\n    }" { (expression_statement "ppcVar16 = local_80 + (int)local_8c;" (assignment_expression "ppcVar16 = local_80 + (int)local_8c" identifier = (binary_expression "local_80 + (int)local_8c" identifier + (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*ppcVar16 = (char *)psVar31;" (assignment_expression "*ppcVar16 = (char *)psVar31" (pointer_expression "*ppcVar16" * identifier) = (cast_expression "(char *)psVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((size_t *)pbVar13 == psVar31) goto LAB_0001a5e6;" if (parenthesized_expression "((size_t *)pbVar13 == psVar31)" ( (binary_expression "(size_t *)pbVar13 == psVar31" (cast_expression "(size_t *)pbVar13" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) (goto_statement "goto LAB_0001a5e6;" goto statement_identifier ;)) (labeled_statement "LAB_0001a553:\n      if ((context <= iVar37) && (no_diff_means_no_output != false)) goto LAB_0001a618;" statement_identifier : (if_statement "if ((context <= iVar37) && (no_diff_means_no_output != false)) goto LAB_0001a618;" if (parenthesized_expression "((context <= iVar37) && (no_diff_means_no_output != false))" ( (binary_expression "(context <= iVar37) && (no_diff_means_no_output != false)" (parenthesized_expression "(context <= iVar37)" ( (binary_expression "context <= iVar37" identifier <= identifier) )) && (parenthesized_expression "(no_diff_means_no_output != false)" ( (binary_expression "no_diff_means_no_output != false" identifier != false) ))) )) (goto_statement "goto LAB_0001a618;" goto statement_identifier ;))) (expression_statement "local_8c = (size_t *)((int)local_8c + 1);" (assignment_expression "local_8c = (size_t *)((int)local_8c + 1)" identifier = (cast_expression "(size_t *)((int)local_8c + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + 1)" ( (binary_expression "(int)local_8c + 1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar32 = (byte *)psVar31;" (assignment_expression "pbVar32 = (byte *)psVar31" identifier = (cast_expression "(byte *)psVar31" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n        psVar31 = (size_t *)(pbVar32 + 1);\n        bVar2 = *pbVar32;\n        pbVar32 = (byte *)psVar31;\n      } while (bVar2 != 10);" do (compound_statement "{\n        psVar31 = (size_t *)(pbVar32 + 1);\n        bVar2 = *pbVar32;\n        pbVar32 = (byte *)psVar31;\n      }" { (expression_statement "psVar31 = (size_t *)(pbVar32 + 1);" (assignment_expression "psVar31 = (size_t *)(pbVar32 + 1)" identifier = (cast_expression "(size_t *)(pbVar32 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar32 + 1)" ( (binary_expression "pbVar32 + 1" identifier + number_literal) )))) ;) (expression_statement "bVar2 = *pbVar32;" (assignment_expression "bVar2 = *pbVar32" identifier = (pointer_expression "*pbVar32" * identifier)) ;) (expression_statement "pbVar32 = (byte *)psVar31;" (assignment_expression "pbVar32 = (byte *)psVar31" identifier = (cast_expression "(byte *)psVar31" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(bVar2 != 10)" ( (binary_expression "bVar2 != 10" identifier != number_literal) )) ;) (expression_statement "iVar37 = iVar37 + 1;" (assignment_expression "iVar37 = iVar37 + 1" identifier = (binary_expression "iVar37 + 1" identifier + number_literal)) ;) })) (if_statement "if (((0x2aaaaaa9 < (int)local_6c) || (uVar28 = local_6c * 2 - iVar22, 0x1ffffffe < uVar28)) ||\n       (0x1ffffffe < local_6c - iVar22)) goto LAB_0001a9c0;" if (parenthesized_expression "(((0x2aaaaaa9 < (int)local_6c) || (uVar28 = local_6c * 2 - iVar22, 0x1ffffffe < uVar28)) ||\n       (0x1ffffffe < local_6c - iVar22))" ( (binary_expression "((0x2aaaaaa9 < (int)local_6c) || (uVar28 = local_6c * 2 - iVar22, 0x1ffffffe < uVar28)) ||\n       (0x1ffffffe < local_6c - iVar22)" (parenthesized_expression "((0x2aaaaaa9 < (int)local_6c) || (uVar28 = local_6c * 2 - iVar22, 0x1ffffffe < uVar28))" ( (binary_expression "(0x2aaaaaa9 < (int)local_6c) || (uVar28 = local_6c * 2 - iVar22, 0x1ffffffe < uVar28)" (parenthesized_expression "(0x2aaaaaa9 < (int)local_6c)" ( (binary_expression "0x2aaaaaa9 < (int)local_6c" number_literal < (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(uVar28 = local_6c * 2 - iVar22, 0x1ffffffe < uVar28)" ( (comma_expression "uVar28 = local_6c * 2 - iVar22, 0x1ffffffe < uVar28" (assignment_expression "uVar28 = local_6c * 2 - iVar22" identifier = (binary_expression "local_6c * 2 - iVar22" (binary_expression "local_6c * 2" identifier * number_literal) - identifier)) , (binary_expression "0x1ffffffe < uVar28" number_literal < identifier)) ))) )) || (parenthesized_expression "(0x1ffffffe < local_6c - iVar22)" ( (binary_expression "0x1ffffffe < local_6c - iVar22" number_literal < (binary_expression "local_6c - iVar22" identifier - identifier)) ))) )) (goto_statement "goto LAB_0001a9c0;" goto statement_identifier ;)) (expression_statement "pvVar12 = xrealloc(local_80 + iVar22,(uVar28 - iVar22) * 4);" (assignment_expression "pvVar12 = xrealloc(local_80 + iVar22,(uVar28 - iVar22) * 4)" identifier = (call_expression "xrealloc(local_80 + iVar22,(uVar28 - iVar22) * 4)" identifier (argument_list "(local_80 + iVar22,(uVar28 - iVar22) * 4)" ( (binary_expression "local_80 + iVar22" identifier + identifier) , (binary_expression "(uVar28 - iVar22) * 4" (parenthesized_expression "(uVar28 - iVar22)" ( (binary_expression "uVar28 - iVar22" identifier - identifier) )) * number_literal) )))) ;) (expression_statement "local_80 = (char **)(iVar22 * -4 + (int)pvVar12);" (assignment_expression "local_80 = (char **)(iVar22 * -4 + (int)pvVar12)" identifier = (cast_expression "(char **)(iVar22 * -4 + (int)pvVar12)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 * -4 + (int)pvVar12)" ( (binary_expression "iVar22 * -4 + (int)pvVar12" (binary_expression "iVar22 * -4" identifier * number_literal) + (cast_expression "(int)pvVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "ppcVar16 = local_80 + (int)local_8c;" (assignment_expression "ppcVar16 = local_80 + (int)local_8c" identifier = (binary_expression "local_80 + (int)local_8c" identifier + (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*ppcVar16 = (char *)psVar31;" (assignment_expression "*ppcVar16 = (char *)psVar31" (pointer_expression "*ppcVar16" * identifier) = (cast_expression "(char *)psVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_6c = uVar28;" (assignment_expression "local_6c = uVar28" identifier = identifier) ;) (if_statement "if ((size_t *)pbVar13 != psVar31) goto LAB_0001a553;" if (parenthesized_expression "((size_t *)pbVar13 != psVar31)" ( (binary_expression "(size_t *)pbVar13 != psVar31" (cast_expression "(size_t *)pbVar13" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (goto_statement "goto LAB_0001a553;" goto statement_identifier ;)) (labeled_statement "LAB_0001a5e6:\n    if ((*(_Bool *)(local_5c + 0x10) != false) && (1 < output_style - OUTPUT_ED)) {\n      *ppcVar16 = (char *)(pbVar13 + -1);\n    }" statement_identifier : (if_statement "if ((*(_Bool *)(local_5c + 0x10) != false) && (1 < output_style - OUTPUT_ED)) {\n      *ppcVar16 = (char *)(pbVar13 + -1);\n    }" if (parenthesized_expression "((*(_Bool *)(local_5c + 0x10) != false) && (1 < output_style - OUTPUT_ED))" ( (binary_expression "(*(_Bool *)(local_5c + 0x10) != false) && (1 < output_style - OUTPUT_ED)" (parenthesized_expression "(*(_Bool *)(local_5c + 0x10) != false)" ( (binary_expression "*(_Bool *)(local_5c + 0x10) != false" (pointer_expression "*(_Bool *)(local_5c + 0x10)" * (cast_expression "(_Bool *)(local_5c + 0x10)" ( (type_descriptor "_Bool *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5c + 0x10)" ( (binary_expression "local_5c + 0x10" identifier + number_literal) )))) != false) )) && (parenthesized_expression "(1 < output_style - OUTPUT_ED)" ( (binary_expression "1 < output_style - OUTPUT_ED" number_literal < (binary_expression "output_style - OUTPUT_ED" identifier - identifier)) ))) )) (compound_statement "{\n      *ppcVar16 = (char *)(pbVar13 + -1);\n    }" { (expression_statement "*ppcVar16 = (char *)(pbVar13 + -1);" (assignment_expression "*ppcVar16 = (char *)(pbVar13 + -1)" (pointer_expression "*ppcVar16" * identifier) = (cast_expression "(char *)(pbVar13 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + -1)" ( (binary_expression "pbVar13 + -1" identifier + number_literal) )))) ;) }))) (labeled_statement "LAB_0001a618:\n    local_5c[3] = (size_t *)local_80;" statement_identifier : (expression_statement "local_5c[3] = (size_t *)local_80;" (assignment_expression "local_5c[3] = (size_t *)local_80" (subscript_expression "local_5c[3]" identifier [ number_literal ]) = (cast_expression "(size_t *)local_80" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "ppsVar17 = local_5c + 0x2c;" (assignment_expression "ppsVar17 = local_5c + 0x2c" identifier = (binary_expression "local_5c + 0x2c" identifier + number_literal)) ;) (expression_statement "equivs = local_7c;" (assignment_expression "equivs = local_7c" identifier = identifier) ;) (expression_statement "local_5c[6] = local_8c;" (assignment_expression "local_5c[6] = local_8c" (subscript_expression "local_5c[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_5c[7] = (size_t *)local_6c;" (assignment_expression "local_5c[7] = (size_t *)local_6c" (subscript_expression "local_5c[7]" identifier [ number_literal ]) = (cast_expression "(size_t *)local_6c" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_5c[0xb] = (size_t *)local_68;" (assignment_expression "local_5c[0xb] = (size_t *)local_68" (subscript_expression "local_5c[0xb]" identifier [ number_literal ]) = (cast_expression "(size_t *)local_68" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "equivs_alloc = local_60;" (assignment_expression "equivs_alloc = local_60" identifier = identifier) ;) (expression_statement "equivs_index = local_64;" (assignment_expression "equivs_index = local_64" identifier = identifier) ;) (expression_statement "local_5c = ppsVar17;" (assignment_expression "local_5c = ppsVar17" identifier = identifier) ;) (if_statement "if (&filevec[2].buffer == ppsVar17) {\n      filevec[1].equiv_max = local_64;\n      filevec->equiv_max = local_64;\n      free(local_7c);\n      free(buckets + -1);\n      return bVar18;\n    }" if (parenthesized_expression "(&filevec[2].buffer == ppsVar17)" ( (binary_expression "&filevec[2].buffer == ppsVar17" (pointer_expression "&filevec[2].buffer" & (field_expression "filevec[2].buffer" (subscript_expression "filevec[2]" identifier [ number_literal ]) . field_identifier)) == identifier) )) (compound_statement "{\n      filevec[1].equiv_max = local_64;\n      filevec->equiv_max = local_64;\n      free(local_7c);\n      free(buckets + -1);\n      return bVar18;\n    }" { (expression_statement "filevec[1].equiv_max = local_64;" (assignment_expression "filevec[1].equiv_max = local_64" (field_expression "filevec[1].equiv_max" (subscript_expression "filevec[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "filevec->equiv_max = local_64;" (assignment_expression "filevec->equiv_max = local_64" (field_expression "filevec->equiv_max" identifier -> field_identifier) = identifier) ;) (expression_statement "free(local_7c);" (call_expression "free(local_7c)" identifier (argument_list "(local_7c)" ( identifier ))) ;) (expression_statement "free(buckets + -1);" (call_expression "free(buckets + -1)" identifier (argument_list "(buckets + -1)" ( (binary_expression "buckets + -1" identifier + number_literal) ))) ;) (return_statement "return bVar18;" return identifier ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "code_r0x0001a1dc:\n  local_78 = (size_t *)peVar34->next;" statement_identifier : (expression_statement "local_78 = (size_t *)peVar34->next;" (assignment_expression "local_78 = (size_t *)peVar34->next" identifier = (cast_expression "(size_t *)peVar34->next" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "peVar34->next" identifier -> field_identifier))) ;)) (goto_statement "goto joined_r0x0001a0d6;" goto statement_identifier ;) })))
(translation_unit "byte FUN_000198d0(int *param_1,byte param_2)\n\n{\n  byte *pbVar1;\n  undefined4 uVar2;\n  void *__s1;\n  ushort *puVar3;\n  char cVar4;\n  byte bVar5;\n  byte bVar6;\n  char cVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  ushort **ppuVar12;\n  __int32_t **pp_Var13;\n  int iVar14;\n  int *piVar15;\n  uint *puVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  undefined4 *puVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  uint uVar25;\n  byte *pbVar26;\n  uint *puVar27;\n  byte *pbVar28;\n  uint uVar29;\n  int iVar30;\n  bool bVar31;\n  bool bVar32;\n  bool bVar33;\n  byte *local_90;\n  byte *local_8c;\n  uint local_88;\n  uint *local_84;\n  byte *local_80;\n  byte *local_7c;\n  byte *local_78;\n  uint local_74;\n  byte *local_70;\n  uint local_6c;\n  int local_68;\n  uint local_64;\n  uint local_60;\n  int *local_5c;\n  \n  bVar5 = FUN_000197e0();\n  bVar5 = bVar5 | param_2;\n  if (*param_1 == param_1[0x2c]) {\n    param_1[0x46] = param_1[0x1a];\n    param_1[0x47] = param_1[0x1b];\n    param_1[0x48] = param_1[0x1c];\n  }\n  else {\n    bVar6 = FUN_000197e0();\n    bVar5 = bVar5 | bVar6;\n  }\n  if (bVar5 != 0) {\n    return bVar5;\n  }\n  FUN_00019690();\n  FUN_00019560();\n  if (*param_1 == param_1[0x2c]) {\n    local_78 = (byte *)param_1[0x1a];\n    param_1[0x46] = (int)local_78;\n    param_1[0x47] = param_1[0x1b];\n    uVar20 = param_1[0x1c];\n    param_1[0x48] = uVar20;\n    *(char *)(param_1 + 0x56) = (char)param_1[0x2a];\n    local_88 = uVar20;\nLAB_000199ff:\n    pbVar24 = local_78 + uVar20;\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    local_90 = local_78;\n    local_84 = (uint *)(local_78 + local_88);\n    local_8c = pbVar24;\n    iVar18 = DAT_0004d698;\n    local_7c = pbVar24;\n  }\n  else {\n    FUN_00019690();\n    FUN_00019560();\n    local_88 = param_1[0x1c];\n    local_90 = (byte *)param_1[0x1a];\n    local_78 = (byte *)param_1[0x46];\n    uVar20 = param_1[0x48];\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (uint *)(local_90 + local_88);\n    local_7c = local_78 + uVar20;\n    if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }\n    pbVar24 = local_90;\n    local_8c = local_78;\n    if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }\n    if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    iVar18 = DAT_0004d698;\n    if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }\n  }\n  for (; uVar8 = local_88, iVar30 = DAT_0004d698, pbVar24 != local_90; pbVar24 = pbVar24 + -1) {\n    while (pbVar24[-1] == 10) {\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }\n    local_8c = local_8c + -1;\n  }\nLAB_00019a73:\n  param_1[0x22] = (int)pbVar24;\n  param_1[0x4e] = (int)local_8c;\n  if ((local_80 < 2) ||\n     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])) {\n    pbVar28 = pbVar24 + (local_88 - uVar20);\n    if (local_88 < uVar20) {\n      pbVar28 = pbVar24;\n    }\n    if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }\n    else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }\n    puVar27 = puVar16;\n    if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }\n    else {\n      iVar30 = iVar30 + 1;\n    }\n    for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }\n    local_70 = local_80 + ((int)puVar27 - (int)puVar16);\n  }\n  bVar32 = DAT_0004d68c == '\0';\n  param_1[0x24] = (int)puVar27;\n  param_1[0x50] = (int)local_70;\n  if ((((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||\n     (local_88 <= DAT_0004d69c)) {\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar8 = uVar8 >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    local_84 = (uint *)(uVar8 + 5);\n  }\n  else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;\n    if (uVar20 == 0) {\n      uVar20 = 1;\n    }\n    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    uVar21 = 1;\n    if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }\n    uVar21 = uVar8 + 5;\n    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }\n    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);\n  }\n  puVar9 = (undefined4 *)FUN_00023c60((int)local_84 << 2);\n  pbVar24 = (byte *)param_1[0x22];\n  if (((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||\n     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)) {\n    if (local_90 == pbVar24) {\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }\n    uVar20 = (uint)local_84;\n    local_8c = (byte *)0;\n    pbVar28 = local_90;\n    do {\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    } while (pbVar28 != pbVar24);\n    local_6c = (int)local_70 - param_1[0x4e];\n    bVar32 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar20 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }\n  }\n  else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;\n    if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }\n  }\n  uVar8 = (uint)((int)local_7c - (int)local_70) / uVar20;\n  if (uVar8 == 0) {\n    uVar8 = 1;\n  }\n  if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }\n  uVar21 = uVar8 + 5;\n  if ((int)DAT_0004d69c < (int)(uVar8 + 5)) {\n    uVar21 = DAT_0004d69c;\n  }\n  uVar8 = 1;\n  if (local_6c / uVar20 != 0) {\n    uVar8 = local_6c / uVar20;\n  }\n  if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }\n  uVar21 = local_88 + 5 + uVar8 + uVar21;\n  bVar32 = (int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21;\n  if (bVar32) goto LAB_0001a9c0;\n  puVar10 = (undefined4 *)FUN_00023c60(uVar21 * 4);\n  if ((byte *)local_88 == local_8c) {\n    if (local_88 != 0) goto LAB_00019df3;\n  }\n  else if (0 < (int)local_88) {\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }\n  param_1[0x49] = (int)(puVar10 + local_88);\n  param_1[0x1d] = (int)(puVar9 + local_88);\n  param_1[0x4a] = -local_88;\n  param_1[0x1e] = -local_88;\n  param_1[0x21] = (int)local_84 - local_88;\n  uVar20 = ((int)local_84 - local_88) + 1 + (uVar21 - local_88);\n  param_1[0x4d] = uVar21 - local_88;\n  DAT_0004d388 = uVar20;\n  param_1[0x4f] = (int)local_8c;\n  param_1[0x23] = (int)local_8c;\n  if (uVar20 < 0x7ffffff) {\n    DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);\n    DAT_0004d38c = 1;\n    if ((uint)((int)DAT_0004d388 / 3) < 0x201) {\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }\n    else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }\n    iVar18 = FUN_0001d920(iVar18);\n    DAT_0004d398 = iVar18 + 4;\n    local_5c = param_1 + 0x1a;\n    do {\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    } while( true );\n  }\nLAB_0001a9c0:\n                    \n  FUN_00023f50();\ncode_r0x0001a1dc:\n  local_78 = (byte *)*puVar27;\n  goto joined_r0x0001a0d6;\n}\n\n" (function_definition "byte FUN_000198d0(int *param_1,byte param_2)\n\n{\n  byte *pbVar1;\n  undefined4 uVar2;\n  void *__s1;\n  ushort *puVar3;\n  char cVar4;\n  byte bVar5;\n  byte bVar6;\n  char cVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  ushort **ppuVar12;\n  __int32_t **pp_Var13;\n  int iVar14;\n  int *piVar15;\n  uint *puVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  undefined4 *puVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  uint uVar25;\n  byte *pbVar26;\n  uint *puVar27;\n  byte *pbVar28;\n  uint uVar29;\n  int iVar30;\n  bool bVar31;\n  bool bVar32;\n  bool bVar33;\n  byte *local_90;\n  byte *local_8c;\n  uint local_88;\n  uint *local_84;\n  byte *local_80;\n  byte *local_7c;\n  byte *local_78;\n  uint local_74;\n  byte *local_70;\n  uint local_6c;\n  int local_68;\n  uint local_64;\n  uint local_60;\n  int *local_5c;\n  \n  bVar5 = FUN_000197e0();\n  bVar5 = bVar5 | param_2;\n  if (*param_1 == param_1[0x2c]) {\n    param_1[0x46] = param_1[0x1a];\n    param_1[0x47] = param_1[0x1b];\n    param_1[0x48] = param_1[0x1c];\n  }\n  else {\n    bVar6 = FUN_000197e0();\n    bVar5 = bVar5 | bVar6;\n  }\n  if (bVar5 != 0) {\n    return bVar5;\n  }\n  FUN_00019690();\n  FUN_00019560();\n  if (*param_1 == param_1[0x2c]) {\n    local_78 = (byte *)param_1[0x1a];\n    param_1[0x46] = (int)local_78;\n    param_1[0x47] = param_1[0x1b];\n    uVar20 = param_1[0x1c];\n    param_1[0x48] = uVar20;\n    *(char *)(param_1 + 0x56) = (char)param_1[0x2a];\n    local_88 = uVar20;\nLAB_000199ff:\n    pbVar24 = local_78 + uVar20;\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    local_90 = local_78;\n    local_84 = (uint *)(local_78 + local_88);\n    local_8c = pbVar24;\n    iVar18 = DAT_0004d698;\n    local_7c = pbVar24;\n  }\n  else {\n    FUN_00019690();\n    FUN_00019560();\n    local_88 = param_1[0x1c];\n    local_90 = (byte *)param_1[0x1a];\n    local_78 = (byte *)param_1[0x46];\n    uVar20 = param_1[0x48];\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (uint *)(local_90 + local_88);\n    local_7c = local_78 + uVar20;\n    if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }\n    pbVar24 = local_90;\n    local_8c = local_78;\n    if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }\n    if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    iVar18 = DAT_0004d698;\n    if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }\n  }\n  for (; uVar8 = local_88, iVar30 = DAT_0004d698, pbVar24 != local_90; pbVar24 = pbVar24 + -1) {\n    while (pbVar24[-1] == 10) {\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }\n    local_8c = local_8c + -1;\n  }\nLAB_00019a73:\n  param_1[0x22] = (int)pbVar24;\n  param_1[0x4e] = (int)local_8c;\n  if ((local_80 < 2) ||\n     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])) {\n    pbVar28 = pbVar24 + (local_88 - uVar20);\n    if (local_88 < uVar20) {\n      pbVar28 = pbVar24;\n    }\n    if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }\n    else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }\n    puVar27 = puVar16;\n    if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }\n    else {\n      iVar30 = iVar30 + 1;\n    }\n    for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }\n    local_70 = local_80 + ((int)puVar27 - (int)puVar16);\n  }\n  bVar32 = DAT_0004d68c == '\0';\n  param_1[0x24] = (int)puVar27;\n  param_1[0x50] = (int)local_70;\n  if ((((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||\n     (local_88 <= DAT_0004d69c)) {\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar8 = uVar8 >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    local_84 = (uint *)(uVar8 + 5);\n  }\n  else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;\n    if (uVar20 == 0) {\n      uVar20 = 1;\n    }\n    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    uVar21 = 1;\n    if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }\n    uVar21 = uVar8 + 5;\n    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }\n    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);\n  }\n  puVar9 = (undefined4 *)FUN_00023c60((int)local_84 << 2);\n  pbVar24 = (byte *)param_1[0x22];\n  if (((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||\n     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)) {\n    if (local_90 == pbVar24) {\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }\n    uVar20 = (uint)local_84;\n    local_8c = (byte *)0;\n    pbVar28 = local_90;\n    do {\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    } while (pbVar28 != pbVar24);\n    local_6c = (int)local_70 - param_1[0x4e];\n    bVar32 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar20 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }\n  }\n  else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;\n    if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }\n  }\n  uVar8 = (uint)((int)local_7c - (int)local_70) / uVar20;\n  if (uVar8 == 0) {\n    uVar8 = 1;\n  }\n  if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }\n  uVar21 = uVar8 + 5;\n  if ((int)DAT_0004d69c < (int)(uVar8 + 5)) {\n    uVar21 = DAT_0004d69c;\n  }\n  uVar8 = 1;\n  if (local_6c / uVar20 != 0) {\n    uVar8 = local_6c / uVar20;\n  }\n  if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }\n  uVar21 = local_88 + 5 + uVar8 + uVar21;\n  bVar32 = (int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21;\n  if (bVar32) goto LAB_0001a9c0;\n  puVar10 = (undefined4 *)FUN_00023c60(uVar21 * 4);\n  if ((byte *)local_88 == local_8c) {\n    if (local_88 != 0) goto LAB_00019df3;\n  }\n  else if (0 < (int)local_88) {\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }\n  param_1[0x49] = (int)(puVar10 + local_88);\n  param_1[0x1d] = (int)(puVar9 + local_88);\n  param_1[0x4a] = -local_88;\n  param_1[0x1e] = -local_88;\n  param_1[0x21] = (int)local_84 - local_88;\n  uVar20 = ((int)local_84 - local_88) + 1 + (uVar21 - local_88);\n  param_1[0x4d] = uVar21 - local_88;\n  DAT_0004d388 = uVar20;\n  param_1[0x4f] = (int)local_8c;\n  param_1[0x23] = (int)local_8c;\n  if (uVar20 < 0x7ffffff) {\n    DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);\n    DAT_0004d38c = 1;\n    if ((uint)((int)DAT_0004d388 / 3) < 0x201) {\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }\n    else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }\n    iVar18 = FUN_0001d920(iVar18);\n    DAT_0004d398 = iVar18 + 4;\n    local_5c = param_1 + 0x1a;\n    do {\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    } while( true );\n  }\nLAB_0001a9c0:\n                    \n  FUN_00023f50();\ncode_r0x0001a1dc:\n  local_78 = (byte *)*puVar27;\n  goto joined_r0x0001a0d6;\n}" type_identifier (function_declarator "FUN_000198d0(int *param_1,byte param_2)" identifier (parameter_list "(int *param_1,byte param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte param_2" type_identifier identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  undefined4 uVar2;\n  void *__s1;\n  ushort *puVar3;\n  char cVar4;\n  byte bVar5;\n  byte bVar6;\n  char cVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  ushort **ppuVar12;\n  __int32_t **pp_Var13;\n  int iVar14;\n  int *piVar15;\n  uint *puVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  undefined4 *puVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  uint uVar25;\n  byte *pbVar26;\n  uint *puVar27;\n  byte *pbVar28;\n  uint uVar29;\n  int iVar30;\n  bool bVar31;\n  bool bVar32;\n  bool bVar33;\n  byte *local_90;\n  byte *local_8c;\n  uint local_88;\n  uint *local_84;\n  byte *local_80;\n  byte *local_7c;\n  byte *local_78;\n  uint local_74;\n  byte *local_70;\n  uint local_6c;\n  int local_68;\n  uint local_64;\n  uint local_60;\n  int *local_5c;\n  \n  bVar5 = FUN_000197e0();\n  bVar5 = bVar5 | param_2;\n  if (*param_1 == param_1[0x2c]) {\n    param_1[0x46] = param_1[0x1a];\n    param_1[0x47] = param_1[0x1b];\n    param_1[0x48] = param_1[0x1c];\n  }\n  else {\n    bVar6 = FUN_000197e0();\n    bVar5 = bVar5 | bVar6;\n  }\n  if (bVar5 != 0) {\n    return bVar5;\n  }\n  FUN_00019690();\n  FUN_00019560();\n  if (*param_1 == param_1[0x2c]) {\n    local_78 = (byte *)param_1[0x1a];\n    param_1[0x46] = (int)local_78;\n    param_1[0x47] = param_1[0x1b];\n    uVar20 = param_1[0x1c];\n    param_1[0x48] = uVar20;\n    *(char *)(param_1 + 0x56) = (char)param_1[0x2a];\n    local_88 = uVar20;\nLAB_000199ff:\n    pbVar24 = local_78 + uVar20;\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    local_90 = local_78;\n    local_84 = (uint *)(local_78 + local_88);\n    local_8c = pbVar24;\n    iVar18 = DAT_0004d698;\n    local_7c = pbVar24;\n  }\n  else {\n    FUN_00019690();\n    FUN_00019560();\n    local_88 = param_1[0x1c];\n    local_90 = (byte *)param_1[0x1a];\n    local_78 = (byte *)param_1[0x46];\n    uVar20 = param_1[0x48];\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (uint *)(local_90 + local_88);\n    local_7c = local_78 + uVar20;\n    if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }\n    pbVar24 = local_90;\n    local_8c = local_78;\n    if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }\n    if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    iVar18 = DAT_0004d698;\n    if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }\n  }\n  for (; uVar8 = local_88, iVar30 = DAT_0004d698, pbVar24 != local_90; pbVar24 = pbVar24 + -1) {\n    while (pbVar24[-1] == 10) {\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }\n    local_8c = local_8c + -1;\n  }\nLAB_00019a73:\n  param_1[0x22] = (int)pbVar24;\n  param_1[0x4e] = (int)local_8c;\n  if ((local_80 < 2) ||\n     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])) {\n    pbVar28 = pbVar24 + (local_88 - uVar20);\n    if (local_88 < uVar20) {\n      pbVar28 = pbVar24;\n    }\n    if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }\n    else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }\n    puVar27 = puVar16;\n    if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }\n    else {\n      iVar30 = iVar30 + 1;\n    }\n    for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }\n    local_70 = local_80 + ((int)puVar27 - (int)puVar16);\n  }\n  bVar32 = DAT_0004d68c == '\0';\n  param_1[0x24] = (int)puVar27;\n  param_1[0x50] = (int)local_70;\n  if ((((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||\n     (local_88 <= DAT_0004d69c)) {\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar8 = uVar8 >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    local_84 = (uint *)(uVar8 + 5);\n  }\n  else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;\n    if (uVar20 == 0) {\n      uVar20 = 1;\n    }\n    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    uVar21 = 1;\n    if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }\n    uVar21 = uVar8 + 5;\n    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }\n    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);\n  }\n  puVar9 = (undefined4 *)FUN_00023c60((int)local_84 << 2);\n  pbVar24 = (byte *)param_1[0x22];\n  if (((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||\n     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)) {\n    if (local_90 == pbVar24) {\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }\n    uVar20 = (uint)local_84;\n    local_8c = (byte *)0;\n    pbVar28 = local_90;\n    do {\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    } while (pbVar28 != pbVar24);\n    local_6c = (int)local_70 - param_1[0x4e];\n    bVar32 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar20 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }\n  }\n  else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;\n    if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }\n  }\n  uVar8 = (uint)((int)local_7c - (int)local_70) / uVar20;\n  if (uVar8 == 0) {\n    uVar8 = 1;\n  }\n  if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }\n  uVar21 = uVar8 + 5;\n  if ((int)DAT_0004d69c < (int)(uVar8 + 5)) {\n    uVar21 = DAT_0004d69c;\n  }\n  uVar8 = 1;\n  if (local_6c / uVar20 != 0) {\n    uVar8 = local_6c / uVar20;\n  }\n  if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }\n  uVar21 = local_88 + 5 + uVar8 + uVar21;\n  bVar32 = (int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21;\n  if (bVar32) goto LAB_0001a9c0;\n  puVar10 = (undefined4 *)FUN_00023c60(uVar21 * 4);\n  if ((byte *)local_88 == local_8c) {\n    if (local_88 != 0) goto LAB_00019df3;\n  }\n  else if (0 < (int)local_88) {\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }\n  param_1[0x49] = (int)(puVar10 + local_88);\n  param_1[0x1d] = (int)(puVar9 + local_88);\n  param_1[0x4a] = -local_88;\n  param_1[0x1e] = -local_88;\n  param_1[0x21] = (int)local_84 - local_88;\n  uVar20 = ((int)local_84 - local_88) + 1 + (uVar21 - local_88);\n  param_1[0x4d] = uVar21 - local_88;\n  DAT_0004d388 = uVar20;\n  param_1[0x4f] = (int)local_8c;\n  param_1[0x23] = (int)local_8c;\n  if (uVar20 < 0x7ffffff) {\n    DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);\n    DAT_0004d38c = 1;\n    if ((uint)((int)DAT_0004d388 / 3) < 0x201) {\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }\n    else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }\n    iVar18 = FUN_0001d920(iVar18);\n    DAT_0004d398 = iVar18 + 4;\n    local_5c = param_1 + 0x1a;\n    do {\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    } while( true );\n  }\nLAB_0001a9c0:\n                    \n  FUN_00023f50();\ncode_r0x0001a1dc:\n  local_78 = (byte *)*puVar27;\n  goto joined_r0x0001a0d6;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "void *__s1;" primitive_type (pointer_declarator "*__s1" * identifier) ;) (declaration "ushort *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "ushort **ppuVar12;" type_identifier (pointer_declarator "**ppuVar12" * (pointer_declarator "*ppuVar12" * identifier)) ;) (declaration "__int32_t **pp_Var13;" type_identifier (pointer_declarator "**pp_Var13" * (pointer_declarator "*pp_Var13" * identifier)) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "uint *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "uint uVar29;" type_identifier identifier ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "bool bVar31;" primitive_type identifier ;) (declaration "bool bVar32;" primitive_type identifier ;) (declaration "bool bVar33;" primitive_type identifier ;) (declaration "byte *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "byte *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "uint local_88;" type_identifier identifier ;) (declaration "uint *local_84;" type_identifier (pointer_declarator "*local_84" * identifier) ;) (declaration "byte *local_80;" type_identifier (pointer_declarator "*local_80" * identifier) ;) (declaration "byte *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "byte *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "byte *local_70;" type_identifier (pointer_declarator "*local_70" * identifier) ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "uint local_60;" type_identifier identifier ;) (declaration "int *local_5c;" primitive_type (pointer_declarator "*local_5c" * identifier) ;) (expression_statement "bVar5 = FUN_000197e0();" (assignment_expression "bVar5 = FUN_000197e0()" identifier = (call_expression "FUN_000197e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar5 = bVar5 | param_2;" (assignment_expression "bVar5 = bVar5 | param_2" identifier = (binary_expression "bVar5 | param_2" identifier | identifier)) ;) (if_statement "if (*param_1 == param_1[0x2c]) {\n    param_1[0x46] = param_1[0x1a];\n    param_1[0x47] = param_1[0x1b];\n    param_1[0x48] = param_1[0x1c];\n  }\n  else {\n    bVar6 = FUN_000197e0();\n    bVar5 = bVar5 | bVar6;\n  }" if (parenthesized_expression "(*param_1 == param_1[0x2c])" ( (binary_expression "*param_1 == param_1[0x2c]" (pointer_expression "*param_1" * identifier) == (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) )) (compound_statement "{\n    param_1[0x46] = param_1[0x1a];\n    param_1[0x47] = param_1[0x1b];\n    param_1[0x48] = param_1[0x1c];\n  }" { (expression_statement "param_1[0x46] = param_1[0x1a];" (assignment_expression "param_1[0x46] = param_1[0x1a]" (subscript_expression "param_1[0x46]" identifier [ number_literal ]) = (subscript_expression "param_1[0x1a]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x47] = param_1[0x1b];" (assignment_expression "param_1[0x47] = param_1[0x1b]" (subscript_expression "param_1[0x47]" identifier [ number_literal ]) = (subscript_expression "param_1[0x1b]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x48] = param_1[0x1c];" (assignment_expression "param_1[0x48] = param_1[0x1c]" (subscript_expression "param_1[0x48]" identifier [ number_literal ]) = (subscript_expression "param_1[0x1c]" identifier [ number_literal ])) ;) }) (else_clause "else {\n    bVar6 = FUN_000197e0();\n    bVar5 = bVar5 | bVar6;\n  }" else (compound_statement "{\n    bVar6 = FUN_000197e0();\n    bVar5 = bVar5 | bVar6;\n  }" { (expression_statement "bVar6 = FUN_000197e0();" (assignment_expression "bVar6 = FUN_000197e0()" identifier = (call_expression "FUN_000197e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar5 = bVar5 | bVar6;" (assignment_expression "bVar5 = bVar5 | bVar6" identifier = (binary_expression "bVar5 | bVar6" identifier | identifier)) ;) }))) (if_statement "if (bVar5 != 0) {\n    return bVar5;\n  }" if (parenthesized_expression "(bVar5 != 0)" ( (binary_expression "bVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    return bVar5;\n  }" { (return_statement "return bVar5;" return identifier ;) })) (expression_statement "FUN_00019690();" (call_expression "FUN_00019690()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019560();" (call_expression "FUN_00019560()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*param_1 == param_1[0x2c]) {\n    local_78 = (byte *)param_1[0x1a];\n    param_1[0x46] = (int)local_78;\n    param_1[0x47] = param_1[0x1b];\n    uVar20 = param_1[0x1c];\n    param_1[0x48] = uVar20;\n    *(char *)(param_1 + 0x56) = (char)param_1[0x2a];\n    local_88 = uVar20;\nLAB_000199ff:\n    pbVar24 = local_78 + uVar20;\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    local_90 = local_78;\n    local_84 = (uint *)(local_78 + local_88);\n    local_8c = pbVar24;\n    iVar18 = DAT_0004d698;\n    local_7c = pbVar24;\n  }\n  else {\n    FUN_00019690();\n    FUN_00019560();\n    local_88 = param_1[0x1c];\n    local_90 = (byte *)param_1[0x1a];\n    local_78 = (byte *)param_1[0x46];\n    uVar20 = param_1[0x48];\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (uint *)(local_90 + local_88);\n    local_7c = local_78 + uVar20;\n    if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }\n    pbVar24 = local_90;\n    local_8c = local_78;\n    if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }\n    if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    iVar18 = DAT_0004d698;\n    if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }\n  }" if (parenthesized_expression "(*param_1 == param_1[0x2c])" ( (binary_expression "*param_1 == param_1[0x2c]" (pointer_expression "*param_1" * identifier) == (subscript_expression "param_1[0x2c]" identifier [ number_literal ])) )) (compound_statement "{\n    local_78 = (byte *)param_1[0x1a];\n    param_1[0x46] = (int)local_78;\n    param_1[0x47] = param_1[0x1b];\n    uVar20 = param_1[0x1c];\n    param_1[0x48] = uVar20;\n    *(char *)(param_1 + 0x56) = (char)param_1[0x2a];\n    local_88 = uVar20;\nLAB_000199ff:\n    pbVar24 = local_78 + uVar20;\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    local_90 = local_78;\n    local_84 = (uint *)(local_78 + local_88);\n    local_8c = pbVar24;\n    iVar18 = DAT_0004d698;\n    local_7c = pbVar24;\n  }" { (expression_statement "local_78 = (byte *)param_1[0x1a];" (assignment_expression "local_78 = (byte *)param_1[0x1a]" identifier = (cast_expression "(byte *)param_1[0x1a]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1a]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0x46] = (int)local_78;" (assignment_expression "param_1[0x46] = (int)local_78" (subscript_expression "param_1[0x46]" identifier [ number_literal ]) = (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0x47] = param_1[0x1b];" (assignment_expression "param_1[0x47] = param_1[0x1b]" (subscript_expression "param_1[0x47]" identifier [ number_literal ]) = (subscript_expression "param_1[0x1b]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = param_1[0x1c];" (assignment_expression "uVar20 = param_1[0x1c]" identifier = (subscript_expression "param_1[0x1c]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x48] = uVar20;" (assignment_expression "param_1[0x48] = uVar20" (subscript_expression "param_1[0x48]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(char *)(param_1 + 0x56) = (char)param_1[0x2a];" (assignment_expression "*(char *)(param_1 + 0x56) = (char)param_1[0x2a]" (pointer_expression "*(char *)(param_1 + 0x56)" * (cast_expression "(char *)(param_1 + 0x56)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x56)" ( (binary_expression "param_1 + 0x56" identifier + number_literal) )))) = (cast_expression "(char)param_1[0x2a]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[0x2a]" identifier [ number_literal ]))) ;) (expression_statement "local_88 = uVar20;" (assignment_expression "local_88 = uVar20" identifier = identifier) ;) (labeled_statement "LAB_000199ff:\n    pbVar24 = local_78 + uVar20;" statement_identifier : (expression_statement "pbVar24 = local_78 + uVar20;" (assignment_expression "pbVar24 = local_78 + uVar20" identifier = (binary_expression "local_78 + uVar20" identifier + identifier)) ;)) (expression_statement "local_80 = (byte *)(DAT_0004d688 - 4);" (assignment_expression "local_80 = (byte *)(DAT_0004d688 - 4)" identifier = (cast_expression "(byte *)(DAT_0004d688 - 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0004d688 - 4)" ( (binary_expression "DAT_0004d688 - 4" identifier - number_literal) )))) ;) (expression_statement "local_90 = local_78;" (assignment_expression "local_90 = local_78" identifier = identifier) ;) (expression_statement "local_84 = (uint *)(local_78 + local_88);" (assignment_expression "local_84 = (uint *)(local_78 + local_88)" identifier = (cast_expression "(uint *)(local_78 + local_88)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_78 + local_88)" ( (binary_expression "local_78 + local_88" identifier + identifier) )))) ;) (expression_statement "local_8c = pbVar24;" (assignment_expression "local_8c = pbVar24" identifier = identifier) ;) (expression_statement "iVar18 = DAT_0004d698;" (assignment_expression "iVar18 = DAT_0004d698" identifier = identifier) ;) (expression_statement "local_7c = pbVar24;" (assignment_expression "local_7c = pbVar24" identifier = identifier) ;) }) (else_clause "else {\n    FUN_00019690();\n    FUN_00019560();\n    local_88 = param_1[0x1c];\n    local_90 = (byte *)param_1[0x1a];\n    local_78 = (byte *)param_1[0x46];\n    uVar20 = param_1[0x48];\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (uint *)(local_90 + local_88);\n    local_7c = local_78 + uVar20;\n    if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }\n    pbVar24 = local_90;\n    local_8c = local_78;\n    if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }\n    if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    iVar18 = DAT_0004d698;\n    if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }\n  }" else (compound_statement "{\n    FUN_00019690();\n    FUN_00019560();\n    local_88 = param_1[0x1c];\n    local_90 = (byte *)param_1[0x1a];\n    local_78 = (byte *)param_1[0x46];\n    uVar20 = param_1[0x48];\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (uint *)(local_90 + local_88);\n    local_7c = local_78 + uVar20;\n    if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }\n    pbVar24 = local_90;\n    local_8c = local_78;\n    if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }\n    if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    iVar18 = DAT_0004d698;\n    if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }\n  }" { (expression_statement "FUN_00019690();" (call_expression "FUN_00019690()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00019560();" (call_expression "FUN_00019560()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_88 = param_1[0x1c];" (assignment_expression "local_88 = param_1[0x1c]" identifier = (subscript_expression "param_1[0x1c]" identifier [ number_literal ])) ;) (expression_statement "local_90 = (byte *)param_1[0x1a];" (assignment_expression "local_90 = (byte *)param_1[0x1a]" identifier = (cast_expression "(byte *)param_1[0x1a]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1a]" identifier [ number_literal ]))) ;) (expression_statement "local_78 = (byte *)param_1[0x46];" (assignment_expression "local_78 = (byte *)param_1[0x46]" identifier = (cast_expression "(byte *)param_1[0x46]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x46]" identifier [ number_literal ]))) ;) (expression_statement "uVar20 = param_1[0x48];" (assignment_expression "uVar20 = param_1[0x48]" identifier = (subscript_expression "param_1[0x48]" identifier [ number_literal ])) ;) (if_statement "if (local_90 == local_78) goto LAB_000199ff;" if (parenthesized_expression "(local_90 == local_78)" ( (binary_expression "local_90 == local_78" identifier == identifier) )) (goto_statement "goto LAB_000199ff;" goto statement_identifier ;)) (expression_statement "local_84 = (uint *)(local_90 + local_88);" (assignment_expression "local_84 = (uint *)(local_90 + local_88)" identifier = (cast_expression "(uint *)(local_90 + local_88)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_90 + local_88)" ( (binary_expression "local_90 + local_88" identifier + identifier) )))) ;) (expression_statement "local_7c = local_78 + uVar20;" (assignment_expression "local_7c = local_78 + uVar20" identifier = (binary_expression "local_78 + uVar20" identifier + identifier)) ;) (if_statement "if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }" if (parenthesized_expression "(local_88 < uVar20)" ( (binary_expression "local_88 < uVar20" identifier < identifier) )) (compound_statement "{\n      *(byte *)local_84 = ~local_78[local_88];\n    }" { (expression_statement "*(byte *)local_84 = ~local_78[local_88];" (assignment_expression "*(byte *)local_84 = ~local_78[local_88]" (pointer_expression "*(byte *)local_84" * (cast_expression "(byte *)local_84" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (unary_expression "~local_78[local_88]" ~ (subscript_expression "local_78[local_88]" identifier [ identifier ]))) ;) }) (else_clause "else {\n      *local_7c = ~local_90[uVar20];\n    }" else (compound_statement "{\n      *local_7c = ~local_90[uVar20];\n    }" { (expression_statement "*local_7c = ~local_90[uVar20];" (assignment_expression "*local_7c = ~local_90[uVar20]" (pointer_expression "*local_7c" * identifier) = (unary_expression "~local_90[uVar20]" ~ (subscript_expression "local_90[uVar20]" identifier [ identifier ]))) ;) }))) (expression_statement "pbVar24 = local_90;" (assignment_expression "pbVar24 = local_90" identifier = identifier) ;) (expression_statement "local_8c = local_78;" (assignment_expression "local_8c = local_78" identifier = identifier) ;) (if_statement "if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }" if (parenthesized_expression "(*(int *)local_78 == *(int *)local_90)" ( (binary_expression "*(int *)local_78 == *(int *)local_90" (pointer_expression "*(int *)local_78" * (cast_expression "(int *)local_78" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*(int *)local_90" * (cast_expression "(int *)local_90" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }" { (do_statement "do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);" do (compound_statement "{\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      }" { (expression_statement "local_8c = local_8c + 4;" (assignment_expression "local_8c = local_8c + 4" identifier = (binary_expression "local_8c + 4" identifier + number_literal)) ;) (expression_statement "pbVar24 = pbVar24 + 4;" (assignment_expression "pbVar24 = pbVar24 + 4" identifier = (binary_expression "pbVar24 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(*(int *)pbVar24 == *(int *)local_8c)" ( (binary_expression "*(int *)pbVar24 == *(int *)local_8c" (pointer_expression "*(int *)pbVar24" * (cast_expression "(int *)pbVar24" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*(int *)local_8c" * (cast_expression "(int *)local_8c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) ;) })) (if_statement "if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }" if (parenthesized_expression "(*local_8c == *pbVar24)" ( (binary_expression "*local_8c == *pbVar24" (pointer_expression "*local_8c" * identifier) == (pointer_expression "*pbVar24" * identifier)) )) (compound_statement "{\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }" { (do_statement "do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);" do (compound_statement "{\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      }" { (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" identifier = (binary_expression "local_8c + 1" identifier + number_literal)) ;) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(*pbVar24 == *local_8c)" ( (binary_expression "*pbVar24 == *local_8c" (pointer_expression "*pbVar24" * identifier) == (pointer_expression "*local_8c" * identifier)) )) ;) })) (expression_statement "local_80 = (byte *)(DAT_0004d688 - 4);" (assignment_expression "local_80 = (byte *)(DAT_0004d688 - 4)" identifier = (cast_expression "(byte *)(DAT_0004d688 - 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0004d688 - 4)" ( (binary_expression "DAT_0004d688 - 4" identifier - number_literal) )))) ;) (expression_statement "iVar18 = DAT_0004d698;" (assignment_expression "iVar18 = DAT_0004d698" identifier = identifier) ;) (if_statement "if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }" if (parenthesized_expression "((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c))" ( (binary_expression "(1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)" (parenthesized_expression "(1 < local_80)" ( (binary_expression "1 < local_80" number_literal < identifier) )) && (parenthesized_expression "(local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)" ( (binary_expression "local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c" (binary_expression "local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24" (binary_expression "local_90 + (local_88 - *(byte *)(param_1 + 0x2a))" identifier + (parenthesized_expression "(local_88 - *(byte *)(param_1 + 0x2a))" ( (binary_expression "local_88 - *(byte *)(param_1 + 0x2a)" identifier - (pointer_expression "*(byte *)(param_1 + 0x2a)" * (cast_expression "(byte *)(param_1 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2a)" ( (binary_expression "param_1 + 0x2a" identifier + number_literal) ))))) ))) < identifier) != (binary_expression "local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c" (binary_expression "local_78 + (uVar20 - *(byte *)(param_1 + 0x56))" identifier + (parenthesized_expression "(uVar20 - *(byte *)(param_1 + 0x56))" ( (binary_expression "uVar20 - *(byte *)(param_1 + 0x56)" identifier - (pointer_expression "*(byte *)(param_1 + 0x56)" * (cast_expression "(byte *)(param_1 + 0x56)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x56)" ( (binary_expression "param_1 + 0x56" identifier + number_literal) ))))) ))) < identifier)) ))) )) (compound_statement "{\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }" { (expression_statement "local_8c = local_8c + -1;" (assignment_expression "local_8c = local_8c + -1" identifier = (binary_expression "local_8c + -1" identifier + number_literal)) ;) (expression_statement "pbVar24 = pbVar24 + -1;" (assignment_expression "pbVar24 = pbVar24 + -1" identifier = (binary_expression "pbVar24 + -1" identifier + number_literal)) ;) })) }))) (for_statement "for (; uVar8 = local_88, iVar30 = DAT_0004d698, pbVar24 != local_90; pbVar24 = pbVar24 + -1) {\n    while (pbVar24[-1] == 10) {\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }\n    local_8c = local_8c + -1;\n  }" for ( ; (comma_expression "uVar8 = local_88, iVar30 = DAT_0004d698, pbVar24 != local_90" (assignment_expression "uVar8 = local_88" identifier = identifier) , (comma_expression "iVar30 = DAT_0004d698, pbVar24 != local_90" (assignment_expression "iVar30 = DAT_0004d698" identifier = identifier) , (binary_expression "pbVar24 != local_90" identifier != identifier))) ; (assignment_expression "pbVar24 = pbVar24 + -1" identifier = (binary_expression "pbVar24 + -1" identifier + number_literal)) ) (compound_statement "{\n    while (pbVar24[-1] == 10) {\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }\n    local_8c = local_8c + -1;\n  }" { (while_statement "while (pbVar24[-1] == 10) {\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }" while (parenthesized_expression "(pbVar24[-1] == 10)" ( (binary_expression "pbVar24[-1] == 10" (subscript_expression "pbVar24[-1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }" { (if_statement "if (iVar18 == 0) goto LAB_00019a73;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00019a73;" goto statement_identifier ;)) (expression_statement "pbVar24 = pbVar24 + -1;" (assignment_expression "pbVar24 = pbVar24 + -1" identifier = (binary_expression "pbVar24 + -1" identifier + number_literal)) ;) (expression_statement "local_8c = local_8c + -1;" (assignment_expression "local_8c = local_8c + -1" identifier = (binary_expression "local_8c + -1" identifier + number_literal)) ;) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) (if_statement "if (pbVar24 == local_90) goto LAB_00019a73;" if (parenthesized_expression "(pbVar24 == local_90)" ( (binary_expression "pbVar24 == local_90" identifier == identifier) )) (goto_statement "goto LAB_00019a73;" goto statement_identifier ;)) })) (expression_statement "local_8c = local_8c + -1;" (assignment_expression "local_8c = local_8c + -1" identifier = (binary_expression "local_8c + -1" identifier + number_literal)) ;) })) (labeled_statement "LAB_00019a73:\n  param_1[0x22] = (int)pbVar24;" statement_identifier : (expression_statement "param_1[0x22] = (int)pbVar24;" (assignment_expression "param_1[0x22] = (int)pbVar24" (subscript_expression "param_1[0x22]" identifier [ number_literal ]) = (cast_expression "(int)pbVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "param_1[0x4e] = (int)local_8c;" (assignment_expression "param_1[0x4e] = (int)local_8c" (subscript_expression "param_1[0x4e]" identifier [ number_literal ]) = (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((local_80 < 2) ||\n     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])) {\n    pbVar28 = pbVar24 + (local_88 - uVar20);\n    if (local_88 < uVar20) {\n      pbVar28 = pbVar24;\n    }\n    if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }\n    else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }\n    puVar27 = puVar16;\n    if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }\n    else {\n      iVar30 = iVar30 + 1;\n    }\n    for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }\n    local_70 = local_80 + ((int)puVar27 - (int)puVar16);\n  }" if (parenthesized_expression "((local_80 < 2) ||\n     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56]))" ( (binary_expression "(local_80 < 2) ||\n     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])" (parenthesized_expression "(local_80 < 2)" ( (binary_expression "local_80 < 2" identifier < number_literal) )) || (parenthesized_expression "(local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])" ( (comma_expression "local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56]" (assignment_expression "local_70 = local_7c" identifier = identifier) , (comma_expression "puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56]" (assignment_expression "puVar27 = local_84" identifier = identifier) , (binary_expression "(char)param_1[0x2a] == (char)param_1[0x56]" (cast_expression "(char)param_1[0x2a]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[0x2a]" identifier [ number_literal ])) == (cast_expression "(char)param_1[0x56]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[0x56]" identifier [ number_literal ]))))) ))) )) (compound_statement "{\n    pbVar28 = pbVar24 + (local_88 - uVar20);\n    if (local_88 < uVar20) {\n      pbVar28 = pbVar24;\n    }\n    if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }\n    else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }\n    puVar27 = puVar16;\n    if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }\n    else {\n      iVar30 = iVar30 + 1;\n    }\n    for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }\n    local_70 = local_80 + ((int)puVar27 - (int)puVar16);\n  }" { (expression_statement "pbVar28 = pbVar24 + (local_88 - uVar20);" (assignment_expression "pbVar28 = pbVar24 + (local_88 - uVar20)" identifier = (binary_expression "pbVar24 + (local_88 - uVar20)" identifier + (parenthesized_expression "(local_88 - uVar20)" ( (binary_expression "local_88 - uVar20" identifier - identifier) )))) ;) (if_statement "if (local_88 < uVar20) {\n      pbVar28 = pbVar24;\n    }" if (parenthesized_expression "(local_88 < uVar20)" ( (binary_expression "local_88 < uVar20" identifier < identifier) )) (compound_statement "{\n      pbVar28 = pbVar24;\n    }" { (expression_statement "pbVar28 = pbVar24;" (assignment_expression "pbVar28 = pbVar24" identifier = identifier) ;) })) (if_statement "if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }\n    else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }" if (parenthesized_expression "(((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1)))" ( (binary_expression "((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))" (parenthesized_expression "((uint *)pbVar28 == local_84)" ( (binary_expression "(uint *)pbVar28 == local_84" (cast_expression "(uint *)pbVar28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) || (parenthesized_expression "(local_7c[-1] != *(byte *)((int)local_84 + -1))" ( (binary_expression "local_7c[-1] != *(byte *)((int)local_84 + -1)" (subscript_expression "local_7c[-1]" identifier [ number_literal ]) != (pointer_expression "*(byte *)((int)local_84 + -1)" * (cast_expression "(byte *)((int)local_84 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_84 + -1)" ( (binary_expression "(int)local_84 + -1" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) )) (compound_statement "{\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }" { (expression_statement "local_80 = local_7c;" (assignment_expression "local_80 = local_7c" identifier = identifier) ;) (expression_statement "puVar16 = local_84;" (assignment_expression "puVar16 = local_84" identifier = identifier) ;) }) (else_clause "else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }" else (compound_statement "{\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }" { (expression_statement "puVar27 = local_84;" (assignment_expression "puVar27 = local_84" identifier = identifier) ;) (expression_statement "pbVar11 = local_7c;" (assignment_expression "pbVar11 = local_7c" identifier = identifier) ;) (do_statement "do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);" do (compound_statement "{\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      }" { (expression_statement "pbVar26 = pbVar11 + -1;" (assignment_expression "pbVar26 = pbVar11 + -1" identifier = (binary_expression "pbVar11 + -1" identifier + number_literal)) ;) (expression_statement "puVar16 = (uint *)((int)puVar27 + -1);" (assignment_expression "puVar16 = (uint *)((int)puVar27 + -1)" identifier = (cast_expression "(uint *)((int)puVar27 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar27 + -1)" ( (binary_expression "(int)puVar27 + -1" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_80 = local_7c + ((int)pbVar28 - (int)local_84);" (assignment_expression "local_80 = local_7c + ((int)pbVar28 - (int)local_84)" identifier = (binary_expression "local_7c + ((int)pbVar28 - (int)local_84)" identifier + (parenthesized_expression "((int)pbVar28 - (int)local_84)" ( (binary_expression "(int)pbVar28 - (int)local_84" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;" if (parenthesized_expression "(pbVar26 == local_7c + ((int)pbVar28 - (int)local_84))" ( (binary_expression "pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)" identifier == (binary_expression "local_7c + ((int)pbVar28 - (int)local_84)" identifier + (parenthesized_expression "((int)pbVar28 - (int)local_84)" ( (binary_expression "(int)pbVar28 - (int)local_84" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (break_statement "break;" break ;)) (expression_statement "pbVar23 = pbVar11 + -2;" (assignment_expression "pbVar23 = pbVar11 + -2" identifier = (binary_expression "pbVar11 + -2" identifier + number_literal)) ;) (expression_statement "pbVar1 = (byte *)((int)puVar27 + -2);" (assignment_expression "pbVar1 = (byte *)((int)puVar27 + -2)" identifier = (cast_expression "(byte *)((int)puVar27 + -2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar27 + -2)" ( (binary_expression "(int)puVar27 + -2" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "puVar27 = puVar16;" (assignment_expression "puVar27 = puVar16" identifier = identifier) ;) (expression_statement "local_80 = pbVar26;" (assignment_expression "local_80 = pbVar26" identifier = identifier) ;) (expression_statement "pbVar11 = pbVar26;" (assignment_expression "pbVar11 = pbVar26" identifier = identifier) ;) }) while (parenthesized_expression "(*pbVar1 == *pbVar23)" ( (binary_expression "*pbVar1 == *pbVar23" (pointer_expression "*pbVar1" * identifier) == (pointer_expression "*pbVar23" * identifier)) )) ;) }))) (expression_statement "puVar27 = puVar16;" (assignment_expression "puVar27 = puVar16" identifier = identifier) ;) (if_statement "if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }\n    else {\n      iVar30 = iVar30 + 1;\n    }" if (parenthesized_expression "((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10))" ( (binary_expression "(puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)" (parenthesized_expression "(puVar16 == (uint *)local_90)" ( (binary_expression "puVar16 == (uint *)local_90" identifier == (cast_expression "(uint *)local_90" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) || (parenthesized_expression "(*(byte *)((int)puVar16 + -1) == 10)" ( (binary_expression "*(byte *)((int)puVar16 + -1) == 10" (pointer_expression "*(byte *)((int)puVar16 + -1)" * (cast_expression "(byte *)((int)puVar16 + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar16 + -1)" ( (binary_expression "(int)puVar16 + -1" (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }" { (if_statement "if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }" if (parenthesized_expression "(local_78 != local_80)" ( (binary_expression "local_78 != local_80" identifier != identifier) )) (compound_statement "{\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }" { (expression_statement "iVar30 = iVar30 + (uint)(local_80[-1] != 10);" (assignment_expression "iVar30 = iVar30 + (uint)(local_80[-1] != 10)" identifier = (binary_expression "iVar30 + (uint)(local_80[-1] != 10)" identifier + (call_expression "(uint)(local_80[-1] != 10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_80[-1] != 10)" ( (binary_expression "local_80[-1] != 10" (subscript_expression "local_80[-1]" identifier [ number_literal ]) != number_literal) ))))) ;) })) }) (else_clause "else {\n      iVar30 = iVar30 + 1;\n    }" else (compound_statement "{\n      iVar30 = iVar30 + 1;\n    }" { (expression_statement "iVar30 = iVar30 + 1;" (assignment_expression "iVar30 = iVar30 + 1" identifier = (binary_expression "iVar30 + 1" identifier + number_literal)) ;) }))) (for_statement "for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }" for ( ; (parenthesized_expression "(puVar27 != local_84 && (iVar30 != 0))" ( (binary_expression "puVar27 != local_84 && (iVar30 != 0)" (binary_expression "puVar27 != local_84" identifier != identifier) && (parenthesized_expression "(iVar30 != 0)" ( (binary_expression "iVar30 != 0" identifier != number_literal) ))) )) ; (assignment_expression "iVar30 = iVar30 + -1" identifier = (binary_expression "iVar30 + -1" identifier + number_literal)) ) (compound_statement "{\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }" { (do_statement "do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);" do (compound_statement "{\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      }" { (expression_statement "pbVar28 = (byte *)((int)puVar27 + 1);" (assignment_expression "pbVar28 = (byte *)((int)puVar27 + 1)" identifier = (cast_expression "(byte *)((int)puVar27 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar27 + 1)" ( (binary_expression "(int)puVar27 + 1" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar5 = *(byte *)puVar27;" (assignment_expression "bVar5 = *(byte *)puVar27" identifier = (pointer_expression "*(byte *)puVar27" * (cast_expression "(byte *)puVar27" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar27 = (uint *)pbVar28;" (assignment_expression "puVar27 = (uint *)pbVar28" identifier = (cast_expression "(uint *)pbVar28" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "(bVar5 != 10)" ( (binary_expression "bVar5 != 10" identifier != number_literal) )) ;) })) (expression_statement "local_70 = local_80 + ((int)puVar27 - (int)puVar16);" (assignment_expression "local_70 = local_80 + ((int)puVar27 - (int)puVar16)" identifier = (binary_expression "local_80 + ((int)puVar27 - (int)puVar16)" identifier + (parenthesized_expression "((int)puVar27 - (int)puVar16)" ( (binary_expression "(int)puVar27 - (int)puVar16" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "bVar32 = DAT_0004d68c == '\0';" (assignment_expression "bVar32 = DAT_0004d68c == '\0'" identifier = (binary_expression "DAT_0004d68c == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "param_1[0x24] = (int)puVar27;" (assignment_expression "param_1[0x24] = (int)puVar27" (subscript_expression "param_1[0x24]" identifier [ number_literal ]) = (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0x50] = (int)local_70;" (assignment_expression "param_1[0x50] = (int)local_70" (subscript_expression "param_1[0x50]" identifier [ number_literal ]) = (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||\n     (local_88 <= DAT_0004d69c)) {\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar8 = uVar8 >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    local_84 = (uint *)(uVar8 + 5);\n  }\n  else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;\n    if (uVar20 == 0) {\n      uVar20 = 1;\n    }\n    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    uVar21 = 1;\n    if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }\n    uVar21 = uVar8 + 5;\n    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }\n    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);\n  }" if (parenthesized_expression "((((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||\n     (local_88 <= DAT_0004d69c))" ( (binary_expression "(((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||\n     (local_88 <= DAT_0004d69c)" (parenthesized_expression "(((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c))" ( (binary_expression "((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)" (parenthesized_expression "((bVar32) || (DAT_0004d670 != 0))" ( (binary_expression "(bVar32) || (DAT_0004d670 != 0)" (parenthesized_expression "(bVar32)" ( identifier )) || (parenthesized_expression "(DAT_0004d670 != 0)" ( (binary_expression "DAT_0004d670 != 0" identifier != number_literal) ))) )) || (parenthesized_expression "(0x1ffffffe < (int)DAT_0004d69c)" ( (binary_expression "0x1ffffffe < (int)DAT_0004d69c" number_literal < (cast_expression "(int)DAT_0004d69c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) || (parenthesized_expression "(local_88 <= DAT_0004d69c)" ( (binary_expression "local_88 <= DAT_0004d69c" identifier <= identifier) ))) )) (compound_statement "{\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar8 = uVar8 >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    local_84 = (uint *)(uVar8 + 5);\n  }" { (expression_statement "local_74 = 0xffffffff;" (assignment_expression "local_74 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = uVar8 >> 5;" (assignment_expression "uVar8 = uVar8 >> 5" identifier = (binary_expression "uVar8 >> 5" identifier >> number_literal)) ;) (if_statement "if (uVar8 == 0) {\n      uVar8 = 1;\n    }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar8 = 1;\n    }" { (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) })) (expression_statement "local_84 = (uint *)(uVar8 + 5);" (assignment_expression "local_84 = (uint *)(uVar8 + 5)" identifier = (cast_expression "(uint *)(uVar8 + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 5)" ( (binary_expression "uVar8 + 5" identifier + number_literal) )))) ;) }) (else_clause "else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;\n    if (uVar20 == 0) {\n      uVar20 = 1;\n    }\n    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    uVar21 = 1;\n    if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }\n    uVar21 = uVar8 + 5;\n    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }\n    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);\n  }" else (compound_statement "{\n    local_74 = 0;\n    local_88 = 1;\n    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;\n    if (uVar20 == 0) {\n      uVar20 = 1;\n    }\n    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    uVar21 = 1;\n    if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }\n    uVar21 = uVar8 + 5;\n    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }\n    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);\n  }" { (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" identifier = number_literal) ;) (expression_statement "local_88 = 1;" (assignment_expression "local_88 = 1" identifier = number_literal) ;) (expression_statement "uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;" (assignment_expression "uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5" identifier = (binary_expression "(uint)((int)puVar27 - (int)pbVar24) >> 5" (call_expression "(uint)((int)puVar27 - (int)pbVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)puVar27 - (int)pbVar24)" ( (binary_expression "(int)puVar27 - (int)pbVar24" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ))) >> number_literal)) ;) (if_statement "if (uVar20 == 0) {\n      uVar20 = 1;\n    }" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar20 = 1;\n    }" { (expression_statement "uVar20 = 1;" (assignment_expression "uVar20 = 1" identifier = number_literal) ;) })) (expression_statement "uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;" (assignment_expression "uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5" identifier = (binary_expression "(uint)((int)local_84 - (int)puVar27) >> 5" (call_expression "(uint)((int)local_84 - (int)puVar27)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_84 - (int)puVar27)" ( (binary_expression "(int)local_84 - (int)puVar27" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier)) ))) >> number_literal)) ;) (if_statement "if (uVar8 == 0) {\n      uVar8 = 1;\n    }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar8 = 1;\n    }" { (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) })) (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" identifier = number_literal) ;) (if_statement "if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }" if (parenthesized_expression "(0 < (int)DAT_0004d69c)" ( (binary_expression "0 < (int)DAT_0004d69c" number_literal < (cast_expression "(int)DAT_0004d69c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }" { (do_statement "do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);" do (compound_statement "{\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      }" { (expression_statement "local_88 = uVar21 * 2;" (assignment_expression "local_88 = uVar21 * 2" identifier = (binary_expression "uVar21 * 2" identifier * number_literal)) ;) (expression_statement "iVar18 = uVar21 * -2;" (assignment_expression "iVar18 = uVar21 * -2" identifier = (binary_expression "uVar21 * -2" identifier * number_literal)) ;) (expression_statement "uVar21 = local_88;" (assignment_expression "uVar21 = local_88" identifier = identifier) ;) }) while (parenthesized_expression "(SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0)" ( (binary_expression "SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0" (call_expression "SBORROW4(DAT_0004d69c,local_88)" identifier (argument_list "(DAT_0004d69c,local_88)" ( identifier , identifier ))) == (binary_expression "(int)(DAT_0004d69c + iVar18) < 0" (cast_expression "(int)(DAT_0004d69c + iVar18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(DAT_0004d69c + iVar18)" ( (binary_expression "DAT_0004d69c + iVar18" identifier + identifier) ))) < number_literal)) )) ;) (expression_statement "local_74 = local_88 - 1;" (assignment_expression "local_74 = local_88 - 1" identifier = (binary_expression "local_88 - 1" identifier - number_literal)) ;) })) (expression_statement "uVar21 = uVar8 + 5;" (assignment_expression "uVar21 = uVar8 + 5" identifier = (binary_expression "uVar8 + 5" identifier + number_literal)) ;) (if_statement "if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }" if (parenthesized_expression "((int)DAT_0004d69c <= (int)(uVar8 + 5))" ( (binary_expression "(int)DAT_0004d69c <= (int)(uVar8 + 5)" (cast_expression "(int)DAT_0004d69c" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uVar8 + 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar8 + 5)" ( (binary_expression "uVar8 + 5" identifier + number_literal) )))) )) (compound_statement "{\n      uVar21 = DAT_0004d69c;\n    }" { (expression_statement "uVar21 = DAT_0004d69c;" (assignment_expression "uVar21 = DAT_0004d69c" identifier = identifier) ;) })) (expression_statement "local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);" (assignment_expression "local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5)" identifier = (cast_expression "(uint *)(uVar21 + local_88 + uVar20 + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar21 + local_88 + uVar20 + 5)" ( (binary_expression "uVar21 + local_88 + uVar20 + 5" (binary_expression "uVar21 + local_88 + uVar20" (binary_expression "uVar21 + local_88" identifier + identifier) + identifier) + number_literal) )))) ;) }))) (expression_statement "puVar9 = (undefined4 *)FUN_00023c60((int)local_84 << 2);" (assignment_expression "puVar9 = (undefined4 *)FUN_00023c60((int)local_84 << 2)" identifier = (cast_expression "(undefined4 *)FUN_00023c60((int)local_84 << 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00023c60((int)local_84 << 2)" identifier (argument_list "((int)local_84 << 2)" ( (binary_expression "(int)local_84 << 2" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))))) ;) (expression_statement "pbVar24 = (byte *)param_1[0x22];" (assignment_expression "pbVar24 = (byte *)param_1[0x22]" identifier = (cast_expression "(byte *)param_1[0x22]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x22]" identifier [ number_literal ]))) ;) (if_statement "if (((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||\n     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)) {\n    if (local_90 == pbVar24) {\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }\n    uVar20 = (uint)local_84;\n    local_8c = (byte *)0;\n    pbVar28 = local_90;\n    do {\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    } while (pbVar28 != pbVar24);\n    local_6c = (int)local_70 - param_1[0x4e];\n    bVar32 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar20 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }\n  }\n  else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;\n    if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }\n  }" if (parenthesized_expression "(((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||\n     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28))" ( (binary_expression "((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||\n     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)" (parenthesized_expression "((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24))" ( (binary_expression "(DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)" (parenthesized_expression "(DAT_0004d68c == '\0')" ( (binary_expression "DAT_0004d68c == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(puVar27 != (uint *)pbVar24)" ( (binary_expression "puVar27 != (uint *)pbVar24" identifier != (cast_expression "(uint *)pbVar24" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) )) || (parenthesized_expression "(pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)" ( (comma_expression "pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28" (assignment_expression "pbVar28 = (byte *)param_1[0x4e]" identifier = (cast_expression "(byte *)param_1[0x4e]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x4e]" identifier [ number_literal ]))) , (binary_expression "local_70 != pbVar28" identifier != identifier)) ))) )) (compound_statement "{\n    if (local_90 == pbVar24) {\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }\n    uVar20 = (uint)local_84;\n    local_8c = (byte *)0;\n    pbVar28 = local_90;\n    do {\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    } while (pbVar28 != pbVar24);\n    local_6c = (int)local_70 - param_1[0x4e];\n    bVar32 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar20 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }\n  }" { (if_statement "if (local_90 == pbVar24) {\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }" if (parenthesized_expression "(local_90 == pbVar24)" ( (binary_expression "local_90 == pbVar24" identifier == identifier) )) (compound_statement "{\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }" { (expression_statement "pbVar28 = (byte *)param_1[0x4e];" (assignment_expression "pbVar28 = (byte *)param_1[0x4e]" identifier = (cast_expression "(byte *)param_1[0x4e]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x4e]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0001a84f;" goto statement_identifier ;) })) (expression_statement "uVar20 = (uint)local_84;" (assignment_expression "uVar20 = (uint)local_84" identifier = (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_8c = (byte *)0;" (assignment_expression "local_8c = (byte *)0" identifier = (cast_expression "(byte *)0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar28 = local_90;" (assignment_expression "pbVar28 = local_90" identifier = identifier) ;) (do_statement "do {\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    } while (pbVar28 != pbVar24);" do (compound_statement "{\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    }" { (expression_statement "uVar8 = (uint)local_8c;" (assignment_expression "uVar8 = (uint)local_8c" identifier = (cast_expression "(uint)local_8c" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_8c = (byte *)(uVar8 + 1);" (assignment_expression "local_8c = (byte *)(uVar8 + 1)" identifier = (cast_expression "(byte *)(uVar8 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar8 + 1)" ( (binary_expression "uVar8 + 1" identifier + number_literal) )))) ;) (expression_statement "local_84 = (uint *)uVar20;" (assignment_expression "local_84 = (uint *)uVar20" identifier = (cast_expression "(uint *)uVar20" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }" if (parenthesized_expression "((local_74 & uVar8) == uVar20)" ( (binary_expression "(local_74 & uVar8) == uVar20" (parenthesized_expression "(local_74 & uVar8)" ( (binary_expression "local_74 & uVar8" identifier & identifier) )) == identifier) )) (compound_statement "{\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }" { (if_statement "if (0xffffffe < uVar20) goto LAB_0001a9c0;" if (parenthesized_expression "(0xffffffe < uVar20)" ( (binary_expression "0xffffffe < uVar20" number_literal < identifier) )) (goto_statement "goto LAB_0001a9c0;" goto statement_identifier ;)) (expression_statement "local_84 = (uint *)(uVar20 * 2);" (assignment_expression "local_84 = (uint *)(uVar20 * 2)" identifier = (cast_expression "(uint *)(uVar20 * 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar20 * 2)" ( (binary_expression "uVar20 * 2" identifier * number_literal) )))) ;) (expression_statement "puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);" (assignment_expression "puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8)" identifier = (cast_expression "(undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00023ce0(puVar9,uVar20 * 8)" identifier (argument_list "(puVar9,uVar20 * 8)" ( identifier , (binary_expression "uVar20 * 8" identifier * number_literal) ))))) ;) })) (expression_statement "puVar9[local_74 & uVar8] = pbVar28;" (assignment_expression "puVar9[local_74 & uVar8] = pbVar28" (subscript_expression "puVar9[local_74 & uVar8]" identifier [ (binary_expression "local_74 & uVar8" identifier & identifier) ]) = identifier) ;) (expression_statement "pbVar11 = pbVar28;" (assignment_expression "pbVar11 = pbVar28" identifier = identifier) ;) (do_statement "do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);" do (compound_statement "{\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      }" { (expression_statement "pbVar28 = pbVar11 + 1;" (assignment_expression "pbVar28 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) (expression_statement "bVar5 = *pbVar11;" (assignment_expression "bVar5 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (expression_statement "pbVar11 = pbVar28;" (assignment_expression "pbVar11 = pbVar28" identifier = identifier) ;) }) while (parenthesized_expression "(bVar5 != 10)" ( (binary_expression "bVar5 != 10" identifier != number_literal) )) ;) (expression_statement "uVar20 = (uint)local_84;" (assignment_expression "uVar20 = (uint)local_84" identifier = (cast_expression "(uint)local_84" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(pbVar28 != pbVar24)" ( (binary_expression "pbVar28 != pbVar24" identifier != identifier) )) ;) (expression_statement "local_6c = (int)local_70 - param_1[0x4e];" (assignment_expression "local_6c = (int)local_70 - param_1[0x4e]" identifier = (binary_expression "(int)local_70 - param_1[0x4e]" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) - (subscript_expression "param_1[0x4e]" identifier [ number_literal ]))) ;) (expression_statement "bVar32 = local_88 != 0;" (assignment_expression "bVar32 = local_88 != 0" identifier = (binary_expression "local_88 != 0" identifier != number_literal)) ;) (expression_statement "local_88 = (uint)local_8c;" (assignment_expression "local_88 = (uint)local_8c" identifier = (cast_expression "(uint)local_8c" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {\n      local_88 = (uint)local_8c;\n    }" if (parenthesized_expression "((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c))" ( (binary_expression "(bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)" (parenthesized_expression "(bVar32)" ( identifier )) && (parenthesized_expression "(local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)" ( (comma_expression "local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c" (assignment_expression "local_88 = DAT_0004d69c" identifier = identifier) , (binary_expression "(int)local_8c <= (int)DAT_0004d69c" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)DAT_0004d69c" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n      local_88 = (uint)local_8c;\n    }" { (expression_statement "local_88 = (uint)local_8c;" (assignment_expression "local_88 = (uint)local_8c" identifier = (cast_expression "(uint)local_8c" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) })) (expression_statement "uVar20 = 0x20;" (assignment_expression "uVar20 = 0x20" identifier = number_literal) ;) (if_statement "if (9 < (int)local_8c) {\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }" if (parenthesized_expression "(9 < (int)local_8c)" ( (binary_expression "9 < (int)local_8c" number_literal < (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }" { (expression_statement "uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;" (assignment_expression "uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8" identifier = (binary_expression "(uint)((int)pbVar24 - (int)local_90) / uVar8" (call_expression "(uint)((int)pbVar24 - (int)local_90)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar24 - (int)local_90)" ( (binary_expression "(int)pbVar24 - (int)local_90" (cast_expression "(int)pbVar24" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / identifier)) ;) })) }) (else_clause "else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;\n    if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }\n  }" else (compound_statement "{\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;\n    if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }\n  }" { (labeled_statement "LAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;" statement_identifier : (expression_statement "local_6c = (int)local_70 - (int)pbVar28;" (assignment_expression "local_6c = (int)local_70 - (int)pbVar28" identifier = (binary_expression "(int)local_70 - (int)pbVar28" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (if_statement "if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }" if (parenthesized_expression "(local_88 == 0)" ( (binary_expression "local_88 == 0" identifier == number_literal) )) (compound_statement "{\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }" { (expression_statement "local_8c = (byte *)0x0;" (assignment_expression "local_8c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar20 = 0x20;" (assignment_expression "uVar20 = 0x20" identifier = number_literal) ;) }) (else_clause "else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }" else (compound_statement "{\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }" { (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "uVar20 = 0x20;" (assignment_expression "uVar20 = 0x20" identifier = number_literal) ;) (expression_statement "local_8c = (byte *)0x0;" (assignment_expression "local_8c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }" if (parenthesized_expression "((int)DAT_0004d69c < 1)" ( (binary_expression "(int)DAT_0004d69c < 1" (cast_expression "(int)DAT_0004d69c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        local_88 = DAT_0004d69c;\n      }" { (expression_statement "local_88 = DAT_0004d69c;" (assignment_expression "local_88 = DAT_0004d69c" identifier = identifier) ;) })) }))) }))) (expression_statement "uVar8 = (uint)((int)local_7c - (int)local_70) / uVar20;" (assignment_expression "uVar8 = (uint)((int)local_7c - (int)local_70) / uVar20" identifier = (binary_expression "(uint)((int)local_7c - (int)local_70) / uVar20" (call_expression "(uint)((int)local_7c - (int)local_70)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_7c - (int)local_70)" ( (binary_expression "(int)local_7c - (int)local_70" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier)) ))) / identifier)) ;) (if_statement "if (uVar8 == 0) {\n    uVar8 = 1;\n  }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar8 = 1;\n  }" { (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) })) (if_statement "if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }" if (parenthesized_expression "(0xe38e389 < uVar8)" ( (binary_expression "0xe38e389 < uVar8" number_literal < identifier) )) (compound_statement "{\n    uVar8 = 0xe38e389;\n  }" { (expression_statement "uVar8 = 0xe38e389;" (assignment_expression "uVar8 = 0xe38e389" identifier = number_literal) ;) })) (expression_statement "uVar21 = uVar8 + 5;" (assignment_expression "uVar21 = uVar8 + 5" identifier = (binary_expression "uVar8 + 5" identifier + number_literal)) ;) (if_statement "if ((int)DAT_0004d69c < (int)(uVar8 + 5)) {\n    uVar21 = DAT_0004d69c;\n  }" if (parenthesized_expression "((int)DAT_0004d69c < (int)(uVar8 + 5))" ( (binary_expression "(int)DAT_0004d69c < (int)(uVar8 + 5)" (cast_expression "(int)DAT_0004d69c" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(uVar8 + 5)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar8 + 5)" ( (binary_expression "uVar8 + 5" identifier + number_literal) )))) )) (compound_statement "{\n    uVar21 = DAT_0004d69c;\n  }" { (expression_statement "uVar21 = DAT_0004d69c;" (assignment_expression "uVar21 = DAT_0004d69c" identifier = identifier) ;) })) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (if_statement "if (local_6c / uVar20 != 0) {\n    uVar8 = local_6c / uVar20;\n  }" if (parenthesized_expression "(local_6c / uVar20 != 0)" ( (binary_expression "local_6c / uVar20 != 0" (binary_expression "local_6c / uVar20" identifier / identifier) != number_literal) )) (compound_statement "{\n    uVar8 = local_6c / uVar20;\n  }" { (expression_statement "uVar8 = local_6c / uVar20;" (assignment_expression "uVar8 = local_6c / uVar20" identifier = (binary_expression "local_6c / uVar20" identifier / identifier)) ;) })) (if_statement "if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }" if (parenthesized_expression "(0xe38e389 < uVar8)" ( (binary_expression "0xe38e389 < uVar8" number_literal < identifier) )) (compound_statement "{\n    uVar8 = 0xe38e389;\n  }" { (expression_statement "uVar8 = 0xe38e389;" (assignment_expression "uVar8 = 0xe38e389" identifier = number_literal) ;) })) (expression_statement "uVar21 = local_88 + 5 + uVar8 + uVar21;" (assignment_expression "uVar21 = local_88 + 5 + uVar8 + uVar21" identifier = (binary_expression "local_88 + 5 + uVar8 + uVar21" (binary_expression "local_88 + 5 + uVar8" (binary_expression "local_88 + 5" identifier + number_literal) + identifier) + identifier)) ;) (expression_statement "bVar32 = (int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21;" (assignment_expression "bVar32 = (int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21" identifier = (binary_expression "(int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21" (binary_expression "(int)uVar21 < (int)local_88" (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_88" ( (type_descriptor "int" primitive_type) ) identifier)) || (binary_expression "0x1ffffffe < uVar21" number_literal < identifier))) ;) (if_statement "if (bVar32) goto LAB_0001a9c0;" if (parenthesized_expression "(bVar32)" ( identifier )) (goto_statement "goto LAB_0001a9c0;" goto statement_identifier ;)) (expression_statement "puVar10 = (undefined4 *)FUN_00023c60(uVar21 * 4);" (assignment_expression "puVar10 = (undefined4 *)FUN_00023c60(uVar21 * 4)" identifier = (cast_expression "(undefined4 *)FUN_00023c60(uVar21 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00023c60(uVar21 * 4)" identifier (argument_list "(uVar21 * 4)" ( (binary_expression "uVar21 * 4" identifier * number_literal) ))))) ;) (if_statement "if ((byte *)local_88 == local_8c) {\n    if (local_88 != 0) goto LAB_00019df3;\n  }\n  else if (0 < (int)local_88) {\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }" if (parenthesized_expression "((byte *)local_88 == local_8c)" ( (binary_expression "(byte *)local_88 == local_8c" (cast_expression "(byte *)local_88" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) (compound_statement "{\n    if (local_88 != 0) goto LAB_00019df3;\n  }" { (if_statement "if (local_88 != 0) goto LAB_00019df3;" if (parenthesized_expression "(local_88 != 0)" ( (binary_expression "local_88 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00019df3;" goto statement_identifier ;)) }) (else_clause "else if (0 < (int)local_88) {\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }" else (if_statement "if (0 < (int)local_88) {\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }" if (parenthesized_expression "(0 < (int)local_88)" ( (binary_expression "0 < (int)local_88" number_literal < (cast_expression "(int)local_88" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }" { (expression_statement "uVar8 = (int)local_8c - DAT_0004d69c;" (assignment_expression "uVar8 = (int)local_8c - DAT_0004d69c" identifier = (binary_expression "(int)local_8c - DAT_0004d69c" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "uVar20 = uVar8;" (assignment_expression "uVar20 = uVar8" identifier = identifier) ;) (do_statement "do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);" do (compound_statement "{\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    }" { (expression_statement "puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];" (assignment_expression "puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74]" (subscript_expression "puVar10[uVar20 - uVar8]" identifier [ (binary_expression "uVar20 - uVar8" identifier - identifier) ]) = (subscript_expression "puVar9[uVar20 & local_74]" identifier [ (binary_expression "uVar20 & local_74" identifier & identifier) ])) ;) (expression_statement "uVar20 = uVar20 + 1;" (assignment_expression "uVar20 = uVar20 + 1" identifier = (binary_expression "uVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_88 + uVar8 != uVar20)" ( (binary_expression "local_88 + uVar8 != uVar20" (binary_expression "local_88 + uVar8" identifier + identifier) != identifier) )) ;) (expression_statement "puVar17 = puVar9;" (assignment_expression "puVar17 = puVar9" identifier = identifier) ;) (expression_statement "puVar19 = puVar10;" (assignment_expression "puVar19 = puVar10" identifier = identifier) ;) (do_statement "do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);" do (compound_statement "{\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    }" { (expression_statement "uVar2 = *puVar19;" (assignment_expression "uVar2 = *puVar19" identifier = (pointer_expression "*puVar19" * identifier)) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) (expression_statement "*puVar17 = uVar2;" (assignment_expression "*puVar17 = uVar2" (pointer_expression "*puVar17" * identifier) = identifier) ;) (expression_statement "puVar17 = puVar17 + 1;" (assignment_expression "puVar17 = puVar17 + 1" identifier = (binary_expression "puVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar10 + local_88 != puVar19)" ( (binary_expression "puVar10 + local_88 != puVar19" (binary_expression "puVar10 + local_88" identifier + identifier) != identifier) )) ;) (labeled_statement "LAB_00019df3:\n    iVar18 = 0;" statement_identifier : (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;)) (do_statement "do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);" do (compound_statement "{\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    }" { (expression_statement "puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);" (assignment_expression "puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90)" (subscript_expression "puVar10[iVar18]" identifier [ identifier ]) = (binary_expression "local_78 + (puVar9[iVar18] - (int)local_90)" identifier + (parenthesized_expression "(puVar9[iVar18] - (int)local_90)" ( (binary_expression "puVar9[iVar18] - (int)local_90" (subscript_expression "puVar9[iVar18]" identifier [ identifier ]) - (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 < (int)local_88)" ( (binary_expression "iVar18 < (int)local_88" identifier < (cast_expression "(int)local_88" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })))) (expression_statement "param_1[0x49] = (int)(puVar10 + local_88);" (assignment_expression "param_1[0x49] = (int)(puVar10 + local_88)" (subscript_expression "param_1[0x49]" identifier [ number_literal ]) = (cast_expression "(int)(puVar10 + local_88)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar10 + local_88)" ( (binary_expression "puVar10 + local_88" identifier + identifier) )))) ;) (expression_statement "param_1[0x1d] = (int)(puVar9 + local_88);" (assignment_expression "param_1[0x1d] = (int)(puVar9 + local_88)" (subscript_expression "param_1[0x1d]" identifier [ number_literal ]) = (cast_expression "(int)(puVar9 + local_88)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar9 + local_88)" ( (binary_expression "puVar9 + local_88" identifier + identifier) )))) ;) (expression_statement "param_1[0x4a] = -local_88;" (assignment_expression "param_1[0x4a] = -local_88" (subscript_expression "param_1[0x4a]" identifier [ number_literal ]) = (unary_expression "-local_88" - identifier)) ;) (expression_statement "param_1[0x1e] = -local_88;" (assignment_expression "param_1[0x1e] = -local_88" (subscript_expression "param_1[0x1e]" identifier [ number_literal ]) = (unary_expression "-local_88" - identifier)) ;) (expression_statement "param_1[0x21] = (int)local_84 - local_88;" (assignment_expression "param_1[0x21] = (int)local_84 - local_88" (subscript_expression "param_1[0x21]" identifier [ number_literal ]) = (binary_expression "(int)local_84 - local_88" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "uVar20 = ((int)local_84 - local_88) + 1 + (uVar21 - local_88);" (assignment_expression "uVar20 = ((int)local_84 - local_88) + 1 + (uVar21 - local_88)" identifier = (binary_expression "((int)local_84 - local_88) + 1 + (uVar21 - local_88)" (binary_expression "((int)local_84 - local_88) + 1" (parenthesized_expression "((int)local_84 - local_88)" ( (binary_expression "(int)local_84 - local_88" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )) + number_literal) + (parenthesized_expression "(uVar21 - local_88)" ( (binary_expression "uVar21 - local_88" identifier - identifier) )))) ;) (expression_statement "param_1[0x4d] = uVar21 - local_88;" (assignment_expression "param_1[0x4d] = uVar21 - local_88" (subscript_expression "param_1[0x4d]" identifier [ number_literal ]) = (binary_expression "uVar21 - local_88" identifier - identifier)) ;) (expression_statement "DAT_0004d388 = uVar20;" (assignment_expression "DAT_0004d388 = uVar20" identifier = identifier) ;) (expression_statement "param_1[0x4f] = (int)local_8c;" (assignment_expression "param_1[0x4f] = (int)local_8c" (subscript_expression "param_1[0x4f]" identifier [ number_literal ]) = (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "param_1[0x23] = (int)local_8c;" (assignment_expression "param_1[0x23] = (int)local_8c" (subscript_expression "param_1[0x23]" identifier [ number_literal ]) = (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (uVar20 < 0x7ffffff) {\n    DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);\n    DAT_0004d38c = 1;\n    if ((uint)((int)DAT_0004d388 / 3) < 0x201) {\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }\n    else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }\n    iVar18 = FUN_0001d920(iVar18);\n    DAT_0004d398 = iVar18 + 4;\n    local_5c = param_1 + 0x1a;\n    do {\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    } while( true );\n  }" if (parenthesized_expression "(uVar20 < 0x7ffffff)" ( (binary_expression "uVar20 < 0x7ffffff" identifier < number_literal) )) (compound_statement "{\n    DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);\n    DAT_0004d38c = 1;\n    if ((uint)((int)DAT_0004d388 / 3) < 0x201) {\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }\n    else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }\n    iVar18 = FUN_0001d920(iVar18);\n    DAT_0004d398 = iVar18 + 4;\n    local_5c = param_1 + 0x1a;\n    do {\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    } while( true );\n  }" { (expression_statement "DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);" (assignment_expression "DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10)" identifier = (cast_expression "(void *)FUN_00023c60(uVar20 * 0x10)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00023c60(uVar20 * 0x10)" identifier (argument_list "(uVar20 * 0x10)" ( (binary_expression "uVar20 * 0x10" identifier * number_literal) ))))) ;) (expression_statement "DAT_0004d38c = 1;" (assignment_expression "DAT_0004d38c = 1" identifier = number_literal) ;) (if_statement "if ((uint)((int)DAT_0004d388 / 3) < 0x201) {\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }\n    else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }" if (parenthesized_expression "((uint)((int)DAT_0004d388 / 3) < 0x201)" ( (binary_expression "(uint)((int)DAT_0004d388 / 3) < 0x201" (call_expression "(uint)((int)DAT_0004d388 / 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)DAT_0004d388 / 3)" ( (binary_expression "(int)DAT_0004d388 / 3" (cast_expression "(int)DAT_0004d388" ( (type_descriptor "int" primitive_type) ) identifier) / number_literal) ))) < number_literal) )) (compound_statement "{\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }" { (expression_statement "DAT_0004d394 = 0x1fd;" (assignment_expression "DAT_0004d394 = 0x1fd" identifier = number_literal) ;) (expression_statement "iVar18 = 0x7f8;" (assignment_expression "iVar18 = 0x7f8" identifier = number_literal) ;) }) (else_clause "else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }" else (compound_statement "{\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }" { (expression_statement "iVar18 = 9;" (assignment_expression "iVar18 = 9" identifier = number_literal) ;) (do_statement "do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));" do (compound_statement "{\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      }" { (expression_statement "iVar30 = iVar18;" (assignment_expression "iVar30 = iVar18" identifier = identifier) ;) (expression_statement "iVar18 = iVar30 + 1;" (assignment_expression "iVar18 = iVar30 + 1" identifier = (binary_expression "iVar30 + 1" identifier + number_literal)) ;) (expression_statement "uVar20 = 1 << ((byte)iVar18 & 0x1f);" (assignment_expression "uVar20 = 1 << ((byte)iVar18 & 0x1f)" identifier = (binary_expression "1 << ((byte)iVar18 & 0x1f)" number_literal << (parenthesized_expression "((byte)iVar18 & 0x1f)" ( (binary_expression "(byte)iVar18 & 0x1f" (cast_expression "(byte)iVar18" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) }) while (parenthesized_expression "(uVar20 < (uint)((int)DAT_0004d388 / 3))" ( (binary_expression "uVar20 < (uint)((int)DAT_0004d388 / 3)" identifier < (call_expression "(uint)((int)DAT_0004d388 / 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)DAT_0004d388 / 3)" ( (binary_expression "(int)DAT_0004d388 / 3" (cast_expression "(int)DAT_0004d388" ( (type_descriptor "int" primitive_type) ) identifier) / number_literal) )))) )) ;) (expression_statement "DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];" (assignment_expression "DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30]" identifier = (binary_expression "uVar20 - (byte)(&UNK_0003e181)[iVar30]" identifier - (subscript_expression "(byte)(&UNK_0003e181)[iVar30]" (call_expression "(byte)(&UNK_0003e181)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(&UNK_0003e181)" ( (pointer_expression "&UNK_0003e181" & identifier) ))) [ identifier ]))) ;) (if_statement "if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;" if (parenthesized_expression "(0x1ffffffe < DAT_0004d394)" ( (binary_expression "0x1ffffffe < DAT_0004d394" number_literal < identifier) )) (goto_statement "goto LAB_0001a9c0;" goto statement_identifier ;)) (expression_statement "iVar18 = DAT_0004d394 * 4 + 4;" (assignment_expression "iVar18 = DAT_0004d394 * 4 + 4" identifier = (binary_expression "DAT_0004d394 * 4 + 4" (binary_expression "DAT_0004d394 * 4" identifier * number_literal) + number_literal)) ;) }))) (expression_statement "iVar18 = FUN_0001d920(iVar18);" (assignment_expression "iVar18 = FUN_0001d920(iVar18)" identifier = (call_expression "FUN_0001d920(iVar18)" identifier (argument_list "(iVar18)" ( identifier )))) ;) (expression_statement "DAT_0004d398 = iVar18 + 4;" (assignment_expression "DAT_0004d398 = iVar18 + 4" identifier = (binary_expression "iVar18 + 4" identifier + number_literal)) ;) (expression_statement "local_5c = param_1 + 0x1a;" (assignment_expression "local_5c = param_1 + 0x1a" identifier = (binary_expression "param_1 + 0x1a" identifier + number_literal)) ;) (do_statement "do {\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    } while( true );" do (compound_statement "{\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    }" { (expression_statement "local_80 = (byte *)local_5c[3];" (assignment_expression "local_80 = (byte *)local_5c[3]" identifier = (cast_expression "(byte *)local_5c[3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar18 = local_5c[4];" (assignment_expression "iVar18 = local_5c[4]" identifier = (subscript_expression "local_5c[4]" identifier [ number_literal ])) ;) (expression_statement "pbVar24 = (byte *)local_5c[8];" (assignment_expression "pbVar24 = (byte *)local_5c[8]" identifier = (cast_expression "(byte *)local_5c[8]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[8]" identifier [ number_literal ]))) ;) (expression_statement "local_6c = local_5c[7];" (assignment_expression "local_6c = local_5c[7]" identifier = (subscript_expression "local_5c[7]" identifier [ number_literal ])) ;) (expression_statement "local_68 = FUN_00023c60(local_6c << 2);" (assignment_expression "local_68 = FUN_00023c60(local_6c << 2)" identifier = (call_expression "FUN_00023c60(local_6c << 2)" identifier (argument_list "(local_6c << 2)" ( (binary_expression "local_6c << 2" identifier << number_literal) )))) ;) (expression_statement "cVar4 = DAT_0004d68d;" (assignment_expression "cVar4 = DAT_0004d68d" identifier = identifier) ;) (expression_statement "uVar20 = DAT_0004d638;" (assignment_expression "uVar20 = DAT_0004d638" identifier = identifier) ;) (expression_statement "pbVar28 = (byte *)local_5c[10];" (assignment_expression "pbVar28 = (byte *)local_5c[10]" identifier = (cast_expression "(byte *)local_5c[10]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_5c[10]" identifier [ number_literal ]))) ;) (expression_statement "local_7c = (byte *)DAT_0004d390;" (assignment_expression "local_7c = (byte *)DAT_0004d390" identifier = (cast_expression "(byte *)DAT_0004d390" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_64 = DAT_0004d38c;" (assignment_expression "local_64 = DAT_0004d38c" identifier = identifier) ;) (expression_statement "local_60 = DAT_0004d388;" (assignment_expression "local_60 = DAT_0004d388" identifier = identifier) ;) (expression_statement "pbVar11 = (byte *)(local_5c[2] + *local_5c);" (assignment_expression "pbVar11 = (byte *)(local_5c[2] + *local_5c)" identifier = (cast_expression "(byte *)(local_5c[2] + *local_5c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5c[2] + *local_5c)" ( (binary_expression "local_5c[2] + *local_5c" (subscript_expression "local_5c[2]" identifier [ number_literal ]) + (pointer_expression "*local_5c" * identifier)) )))) ;) (expression_statement "bVar33 = DAT_0004d638 == 0;" (assignment_expression "bVar33 = DAT_0004d638 == 0" identifier = (binary_expression "DAT_0004d638 == 0" identifier == number_literal)) ;) (if_statement "if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }" if (parenthesized_expression "(pbVar24 < pbVar28)" ( (binary_expression "pbVar24 < pbVar28" identifier < identifier) )) (compound_statement "{\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }" { (expression_statement "local_8c = (byte *)0x0;" (assignment_expression "local_8c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_90 = pbVar24;" (assignment_expression "local_90 = pbVar24" identifier = identifier) ;) (do_statement "do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );" do (compound_statement "{\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        }" { (expression_statement "uVar21 = DAT_0004d650;" (assignment_expression "uVar21 = DAT_0004d650" identifier = identifier) ;) (expression_statement "bVar5 = *local_90;" (assignment_expression "bVar5 = *local_90" identifier = (pointer_expression "*local_90" * identifier)) ;) (expression_statement "uVar8 = (uint)bVar5;" (assignment_expression "uVar8 = (uint)bVar5" identifier = (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar24 = local_90 + 1;" (assignment_expression "pbVar24 = local_90 + 1" identifier = (binary_expression "local_90 + 1" identifier + number_literal)) ;) (if_statement "if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }" if (parenthesized_expression "(uVar20 == 4)" ( (binary_expression "uVar20 == 4" identifier == number_literal) )) (compound_statement "{\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }" { (if_statement "if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }" if (parenthesized_expression "(bVar5 != 10)" ( (binary_expression "bVar5 != 10" identifier != number_literal) )) (compound_statement "{\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }" { (expression_statement "ppuVar12 = __ctype_b_loc();" (assignment_expression "ppuVar12 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = *ppuVar12;" (assignment_expression "puVar3 = *ppuVar12" identifier = (pointer_expression "*ppuVar12" * identifier)) ;) (do_statement "do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);" do (compound_statement "{\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              }" { (expression_statement "pbVar26 = pbVar24;" (assignment_expression "pbVar26 = pbVar24" identifier = identifier) ;) (if_statement "if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }" if (parenthesized_expression "((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)puVar3 + uVar8 * 2 + 1)" * (cast_expression "(byte *)((int)puVar3 + uVar8 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar3 + uVar8 * 2 + 1)" ( (binary_expression "(int)puVar3 + uVar8 * 2 + 1" (binary_expression "(int)puVar3 + uVar8 * 2" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar8 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }" { (do_statement "do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);" do (compound_statement "{\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  }" { (expression_statement "pbVar24 = pbVar26 + 1;" (assignment_expression "pbVar24 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (if_statement "if (*pbVar26 == 10) goto LAB_0001a0a0;" if (parenthesized_expression "(*pbVar26 == 10)" ( (binary_expression "*pbVar26 == 10" (pointer_expression "*pbVar26" * identifier) == number_literal) )) (goto_statement "goto LAB_0001a0a0;" goto statement_identifier ;)) (expression_statement "uVar8 = (uint)*pbVar26;" (assignment_expression "uVar8 = (uint)*pbVar26" identifier = (binary_expression "(uint)*pbVar26" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar26 = pbVar24;" (assignment_expression "pbVar26 = pbVar24" identifier = identifier) ;) }) while (parenthesized_expression "((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)puVar3 + uVar8 * 2 + 1)" * (cast_expression "(byte *)((int)puVar3 + uVar8 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar3 + uVar8 * 2 + 1)" ( (binary_expression "(int)puVar3 + uVar8 * 2 + 1" (binary_expression "(int)puVar3 + uVar8 * 2" (cast_expression "(int)puVar3" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "uVar8 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) != number_literal) )) ;) (expression_statement "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;" (assignment_expression "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20" identifier = (binary_expression "(uVar29 << 7 | uVar29 >> 0x19) + 0x20" (parenthesized_expression "(uVar29 << 7 | uVar29 >> 0x19)" ( (binary_expression "uVar29 << 7 | uVar29 >> 0x19" (binary_expression "uVar29 << 7" identifier << number_literal) | (binary_expression "uVar29 >> 0x19" identifier >> number_literal)) )) + number_literal)) ;) })) (expression_statement "uVar21 = uVar8;" (assignment_expression "uVar21 = uVar8" identifier = identifier) ;) (if_statement "if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }" { (expression_statement "pp_Var13 = __ctype_tolower_loc();" (assignment_expression "pp_Var13 = __ctype_tolower_loc()" identifier = (call_expression "__ctype_tolower_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar21 = (*pp_Var13)[uVar8];" (assignment_expression "uVar21 = (*pp_Var13)[uVar8]" identifier = (subscript_expression "(*pp_Var13)[uVar8]" (parenthesized_expression "(*pp_Var13)" ( (pointer_expression "*pp_Var13" * identifier) )) [ identifier ])) ;) })) (expression_statement "bVar5 = *pbVar24;" (assignment_expression "bVar5 = *pbVar24" identifier = (pointer_expression "*pbVar24" * identifier)) ;) (expression_statement "uVar8 = (uint)bVar5;" (assignment_expression "uVar8 = (uint)bVar5" identifier = (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) (expression_statement "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;" (assignment_expression "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21" identifier = (binary_expression "(uVar29 << 7 | uVar29 >> 0x19) + uVar21" (parenthesized_expression "(uVar29 << 7 | uVar29 >> 0x19)" ( (binary_expression "uVar29 << 7 | uVar29 >> 0x19" (binary_expression "uVar29 << 7" identifier << number_literal) | (binary_expression "uVar29 >> 0x19" identifier >> number_literal)) )) + identifier)) ;) }) while (parenthesized_expression "(bVar5 != 10)" ( (binary_expression "bVar5 != 10" identifier != number_literal) )) ;) (goto_statement "goto LAB_0001a0a0;" goto statement_identifier ;) })) (labeled_statement "LAB_0001a500:\n            pbVar26 = (byte *)0x0;" statement_identifier : (expression_statement "pbVar26 = (byte *)0x0;" (assignment_expression "pbVar26 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }" else (compound_statement "{\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }" { (if_statement "if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }" if (parenthesized_expression "(uVar20 < 5)" ( (binary_expression "uVar20 < 5" identifier < number_literal) )) (compound_statement "{\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }" { (if_statement "if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }" { (labeled_statement "LAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }" statement_identifier : (if_statement "if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }" { (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "pbVar26 = (byte *)0x0;" (assignment_expression "pbVar26 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar23 = pbVar24;" (assignment_expression "pbVar23 = pbVar24" identifier = identifier) ;) (if_statement "if (bVar5 == 10) goto LAB_0001a0a9;" if (parenthesized_expression "(bVar5 == 10)" ( (binary_expression "bVar5 == 10" identifier == number_literal) )) (goto_statement "goto LAB_0001a0a9;" goto statement_identifier ;)) (do_statement "do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);" do (compound_statement "{\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  }" { (expression_statement "pbVar24 = pbVar23 + 1;" (assignment_expression "pbVar24 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) ;) (expression_statement "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;" (assignment_expression "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8" identifier = (binary_expression "(uVar29 << 7 | uVar29 >> 0x19) + uVar8" (parenthesized_expression "(uVar29 << 7 | uVar29 >> 0x19)" ( (binary_expression "uVar29 << 7 | uVar29 >> 0x19" (binary_expression "uVar29 << 7" identifier << number_literal) | (binary_expression "uVar29 >> 0x19" identifier >> number_literal)) )) + identifier)) ;) (expression_statement "bVar5 = *pbVar23;" (assignment_expression "bVar5 = *pbVar23" identifier = (pointer_expression "*pbVar23" * identifier)) ;) (expression_statement "uVar8 = (uint)bVar5;" (assignment_expression "uVar8 = (uint)bVar5" identifier = (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar23 = pbVar24;" (assignment_expression "pbVar23 = pbVar24" identifier = identifier) ;) }) while (parenthesized_expression "(bVar5 != 10)" ( (binary_expression "bVar5 != 10" identifier != number_literal) )) ;) }) (else_clause "else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }" else (compound_statement "{\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }" { (if_statement "if (bVar5 == 10) goto LAB_0001a500;" if (parenthesized_expression "(bVar5 == 10)" ( (binary_expression "bVar5 == 10" identifier == number_literal) )) (goto_statement "goto LAB_0001a500;" goto statement_identifier ;)) (expression_statement "pp_Var13 = __ctype_tolower_loc();" (assignment_expression "pp_Var13 = __ctype_tolower_loc()" identifier = (call_expression "__ctype_tolower_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "pbVar26 = pbVar24;" (assignment_expression "pbVar26 = pbVar24" identifier = identifier) ;) (do_statement "do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);" do (compound_statement "{\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  }" { (expression_statement "pbVar24 = pbVar26 + 1;" (assignment_expression "pbVar24 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (expression_statement "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];" (assignment_expression "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8]" identifier = (binary_expression "(uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8]" (parenthesized_expression "(uVar29 << 7 | uVar29 >> 0x19)" ( (binary_expression "uVar29 << 7 | uVar29 >> 0x19" (binary_expression "uVar29 << 7" identifier << number_literal) | (binary_expression "uVar29 >> 0x19" identifier >> number_literal)) )) + (subscript_expression "(*pp_Var13)[uVar8]" (parenthesized_expression "(*pp_Var13)" ( (pointer_expression "*pp_Var13" * identifier) )) [ identifier ]))) ;) (expression_statement "bVar5 = *pbVar26;" (assignment_expression "bVar5 = *pbVar26" identifier = (pointer_expression "*pbVar26" * identifier)) ;) (expression_statement "uVar8 = (uint)bVar5;" (assignment_expression "uVar8 = (uint)bVar5" identifier = (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pbVar26 = pbVar24;" (assignment_expression "pbVar26 = pbVar24" identifier = identifier) ;) }) while (parenthesized_expression "(bVar5 != 10)" ( (binary_expression "bVar5 != 10" identifier != number_literal) )) ;) })))) }) (else_clause "else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }" else (compound_statement "{\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }" { (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "pbVar24 = local_90 + 1;" (assignment_expression "pbVar24 = local_90 + 1" identifier = (binary_expression "local_90 + 1" identifier + number_literal)) ;) (if_statement "if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }" if (parenthesized_expression "(bVar5 != 10)" ( (binary_expression "bVar5 != 10" identifier != number_literal) )) (compound_statement "{\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) (expression_statement "local_84 = (uint *)pbVar24;" (assignment_expression "local_84 = (uint *)pbVar24" identifier = (cast_expression "(uint *)pbVar24" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);" do (compound_statement "{\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  }" { (expression_statement "cVar7 = (char)uVar8;" (assignment_expression "cVar7 = (char)uVar8" identifier = (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }" if (parenthesized_expression "((uVar20 & 2) != 0)" ( (binary_expression "(uVar20 & 2) != 0" (parenthesized_expression "(uVar20 & 2)" ( (binary_expression "uVar20 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }" { (expression_statement "ppuVar12 = __ctype_b_loc();" (assignment_expression "ppuVar12 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);" (assignment_expression "bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1)" identifier = (pointer_expression "*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar12 + uVar8 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar12 + uVar8 * 2 + 1)" ( (binary_expression "(int)*ppuVar12 + uVar8 * 2 + 1" (binary_expression "(int)*ppuVar12 + uVar8 * 2" (cast_expression "(int)*ppuVar12" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar12" * identifier)) + (binary_expression "uVar8 * 2" identifier * number_literal)) + number_literal) ))))) ;) (expression_statement "puVar27 = local_84;" (assignment_expression "puVar27 = local_84" identifier = identifier) ;) (while_statement "while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }" while (parenthesized_expression "((bVar5 & 0x20) != 0)" ( (binary_expression "(bVar5 & 0x20) != 0" (parenthesized_expression "(bVar5 & 0x20)" ( (binary_expression "bVar5 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }" { (expression_statement "pbVar24 = (byte *)((int)puVar27 + 1);" (assignment_expression "pbVar24 = (byte *)((int)puVar27 + 1)" identifier = (cast_expression "(byte *)((int)puVar27 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar27 + 1)" ( (binary_expression "(int)puVar27 + 1" (cast_expression "(int)puVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;" if (parenthesized_expression "(*(byte *)puVar27 == 10)" ( (binary_expression "*(byte *)puVar27 == 10" (pointer_expression "*(byte *)puVar27" * (cast_expression "(byte *)puVar27" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (goto_statement "goto LAB_0001a0a0;" goto statement_identifier ;)) (expression_statement "bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);" (assignment_expression "bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1)" identifier = (pointer_expression "*(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1)" ( (binary_expression "(int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1" (binary_expression "(int)*ppuVar12 + (uint)*(byte *)puVar27 * 2" (cast_expression "(int)*ppuVar12" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar12" * identifier)) + (binary_expression "(uint)*(byte *)puVar27 * 2" (binary_expression "(uint)*(byte *)puVar27" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)puVar27" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) * number_literal)) + number_literal) ))))) ;) (expression_statement "puVar27 = (uint *)pbVar24;" (assignment_expression "puVar27 = (uint *)pbVar24" identifier = (cast_expression "(uint *)pbVar24" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) })) (expression_statement "uVar22 = uVar20 & 1;" (assignment_expression "uVar22 = uVar20 & 1" identifier = (binary_expression "uVar20 & 1" identifier & number_literal)) ;) (if_statement "if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n                      uVar22 = 1;\n                    }" { (expression_statement "uVar22 = 1;" (assignment_expression "uVar22 = 1" identifier = number_literal) ;) }) (else_clause "else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" else (if_statement "if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" if (parenthesized_expression "(cVar7 == '\t')" ( (binary_expression "cVar7 == '\t'" identifier == (char_literal "'\t'" ' escape_sequence ')) )) (compound_statement "{\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }" { (expression_statement "uVar22 = uVar21 - uVar25 % uVar21;" (assignment_expression "uVar22 = uVar21 - uVar25 % uVar21" identifier = (binary_expression "uVar21 - uVar25 % uVar21" identifier - (binary_expression "uVar25 % uVar21" identifier % identifier))) ;) (expression_statement "uVar8 = 0x20;" (assignment_expression "uVar8 = 0x20" identifier = number_literal) ;) (expression_statement "bVar31 = CARRY4(uVar25,uVar22);" (assignment_expression "bVar31 = CARRY4(uVar25,uVar22)" identifier = (call_expression "CARRY4(uVar25,uVar22)" identifier (argument_list "(uVar25,uVar22)" ( identifier , identifier )))) ;) (expression_statement "uVar25 = uVar25 + uVar22;" (assignment_expression "uVar25 = uVar25 + uVar22" identifier = (binary_expression "uVar25 + uVar22" identifier + identifier)) ;) (if_statement "if (bVar31) {\n                        uVar25 = 0;\n                      }" if (parenthesized_expression "(bVar31)" ( identifier )) (compound_statement "{\n                        uVar25 = 0;\n                      }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) })) }) (else_clause "else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" else (if_statement "if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" if (parenthesized_expression "(cVar7 == '\r')" ( (binary_expression "cVar7 == '\r'" identifier == (char_literal "'\r'" ' escape_sequence ')) )) (compound_statement "{\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }" { (expression_statement "uVar8 = 0xd;" (assignment_expression "uVar8 = 0xd" identifier = number_literal) ;) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) }) (else_clause "else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" else (if_statement "if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" if (parenthesized_expression "(cVar7 == '\b')" ( (binary_expression "cVar7 == '\b'" identifier == (char_literal "'\b'" ' escape_sequence ')) )) (compound_statement "{\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }" { (expression_statement "uVar8 = 8;" (assignment_expression "uVar8 = 8" identifier = number_literal) ;) (expression_statement "uVar25 = uVar25 - (uVar25 != 0);" (assignment_expression "uVar25 = uVar25 - (uVar25 != 0)" identifier = (binary_expression "uVar25 - (uVar25 != 0)" identifier - (parenthesized_expression "(uVar25 != 0)" ( (binary_expression "uVar25 != 0" identifier != number_literal) )))) ;) }) (else_clause "else {\n                      uVar25 = uVar25 + 1;\n                    }" else (compound_statement "{\n                      uVar25 = uVar25 + 1;\n                    }" { (expression_statement "uVar25 = uVar25 + 1;" (assignment_expression "uVar25 = uVar25 + 1" identifier = (binary_expression "uVar25 + 1" identifier + number_literal)) ;) }))))))))) (if_statement "if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }" { (expression_statement "pp_Var13 = __ctype_tolower_loc();" (assignment_expression "pp_Var13 = __ctype_tolower_loc()" identifier = (call_expression "__ctype_tolower_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);" (assignment_expression "uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8)" identifier = (binary_expression "(uint)*(byte *)(*pp_Var13 + uVar8)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*pp_Var13 + uVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*pp_Var13 + uVar8)" ( (binary_expression "*pp_Var13 + uVar8" (pointer_expression "*pp_Var13" * identifier) + identifier) ))))) ;) })) (do_statement "do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);" do (compound_statement "{\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    }" { (expression_statement "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;" (assignment_expression "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8" identifier = (binary_expression "(uVar29 << 7 | uVar29 >> 0x19) + uVar8" (parenthesized_expression "(uVar29 << 7 | uVar29 >> 0x19)" ( (binary_expression "uVar29 << 7 | uVar29 >> 0x19" (binary_expression "uVar29 << 7" identifier << number_literal) | (binary_expression "uVar29 >> 0x19" identifier >> number_literal)) )) + identifier)) ;) (expression_statement "uVar22 = uVar22 - 1;" (assignment_expression "uVar22 = uVar22 - 1" identifier = (binary_expression "uVar22 - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) )) ;) (expression_statement "pbVar24 = (byte *)((int)local_84 + 1);" (assignment_expression "pbVar24 = (byte *)((int)local_84 + 1)" identifier = (cast_expression "(byte *)((int)local_84 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_84 + 1)" ( (binary_expression "(int)local_84 + 1" (cast_expression "(int)local_84" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar22 = *local_84;" (assignment_expression "uVar22 = *local_84" identifier = (pointer_expression "*local_84" * identifier)) ;) (expression_statement "uVar8 = (uint)(byte)uVar22;" (assignment_expression "uVar8 = (uint)(byte)uVar22" identifier = (cast_expression "(uint)(byte)uVar22" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)uVar22" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (expression_statement "local_84 = (uint *)pbVar24;" (assignment_expression "local_84 = (uint *)pbVar24" identifier = (cast_expression "(uint *)pbVar24" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) while (parenthesized_expression "((byte)uVar22 != 10)" ( (binary_expression "(byte)uVar22 != 10" (cast_expression "(byte)uVar22" ( (type_descriptor "byte" type_identifier) ) identifier) != number_literal) )) ;) })) }))) }) (else_clause "else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }" else (compound_statement "{\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }" { (if_statement "if (uVar20 != 5) goto LAB_0001a398;" if (parenthesized_expression "(uVar20 != 5)" ( (binary_expression "uVar20 != 5" identifier != number_literal) )) (goto_statement "goto LAB_0001a398;" goto statement_identifier ;)) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "pbVar24 = local_90;" (assignment_expression "pbVar24 = local_90" identifier = identifier) ;) (while_statement "while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }" while (parenthesized_expression "(pbVar24 = pbVar24 + 1, (char)uVar8 != '\n')" ( (comma_expression "pbVar24 = pbVar24 + 1, (char)uVar8 != '\n'" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) , (binary_expression "(char)uVar8 != '\n'" (cast_expression "(char)uVar8" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\n'" ' escape_sequence '))) )) (compound_statement "{\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }" { (expression_statement "ppuVar12 = __ctype_b_loc();" (assignment_expression "ppuVar12 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }" if (parenthesized_expression "((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20)" ( (binary_expression "*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar12 + uVar8 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar12 + uVar8 * 2 + 1)" ( (binary_expression "(int)*ppuVar12 + uVar8 * 2 + 1" (binary_expression "(int)*ppuVar12 + uVar8 * 2" (cast_expression "(int)*ppuVar12" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar12" * identifier)) + (binary_expression "uVar8 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }" { (if_statement "if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }" { (expression_statement "pp_Var13 = __ctype_tolower_loc();" (assignment_expression "pp_Var13 = __ctype_tolower_loc()" identifier = (call_expression "__ctype_tolower_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar8 = (*pp_Var13)[uVar8];" (assignment_expression "uVar8 = (*pp_Var13)[uVar8]" identifier = (subscript_expression "(*pp_Var13)[uVar8]" (parenthesized_expression "(*pp_Var13)" ( (pointer_expression "*pp_Var13" * identifier) )) [ identifier ])) ;) })) (expression_statement "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;" (assignment_expression "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8" identifier = (binary_expression "(uVar29 << 7 | uVar29 >> 0x19) + uVar8" (parenthesized_expression "(uVar29 << 7 | uVar29 >> 0x19)" ( (binary_expression "uVar29 << 7 | uVar29 >> 0x19" (binary_expression "uVar29 << 7" identifier << number_literal) | (binary_expression "uVar29 >> 0x19" identifier >> number_literal)) )) + identifier)) ;) })) (expression_statement "uVar8 = (uint)*pbVar24;" (assignment_expression "uVar8 = (uint)*pbVar24" identifier = (binary_expression "(uint)*pbVar24" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) })) }))) (labeled_statement "LAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);" statement_identifier : (expression_statement "pbVar26 = pbVar24 + (-1 - (int)local_90);" (assignment_expression "pbVar26 = pbVar24 + (-1 - (int)local_90)" identifier = (binary_expression "pbVar24 + (-1 - (int)local_90)" identifier + (parenthesized_expression "(-1 - (int)local_90)" ( (binary_expression "-1 - (int)local_90" number_literal - (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;)) }))) (labeled_statement "LAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);" statement_identifier : (expression_statement "puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);" (assignment_expression "puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4)" identifier = (cast_expression "(uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4)" ( (binary_expression "DAT_0004d398 + (uVar29 % DAT_0004d394) * 4" identifier + (binary_expression "(uVar29 % DAT_0004d394) * 4" (parenthesized_expression "(uVar29 % DAT_0004d394)" ( (binary_expression "uVar29 % DAT_0004d394" identifier % identifier) )) * number_literal)) )))) ;)) (expression_statement "local_84 = puVar27;" (assignment_expression "local_84 = puVar27" identifier = identifier) ;) (if_statement "if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }" if (parenthesized_expression "((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20))" ( (binary_expression "(((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)" (parenthesized_expression "(((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))" ( (binary_expression "((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U)" (parenthesized_expression "((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0'))" ( (binary_expression "(pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')" (parenthesized_expression "(pbVar11 == pbVar24)" ( (binary_expression "pbVar11 == pbVar24" identifier == identifier) )) && (parenthesized_expression "((char)local_5c[0x10] != '\0')" ( (binary_expression "(char)local_5c[0x10] != '\0'" (cast_expression "(char)local_5c[0x10]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_5c[0x10]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(1 < DAT_0004d688 - 4U)" ( (binary_expression "1 < DAT_0004d688 - 4U" number_literal < (binary_expression "DAT_0004d688 - 4U" identifier - number_literal)) ))) )) && (parenthesized_expression "(local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)" ( (comma_expression "local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20" (assignment_expression "local_84 = (uint *)(DAT_0004d398 + -4)" identifier = (cast_expression "(uint *)(DAT_0004d398 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0004d398 + -4)" ( (binary_expression "DAT_0004d398 + -4" identifier + number_literal) )))) , (binary_expression "1 < uVar20" number_literal < identifier)) ))) )) (compound_statement "{\n            local_84 = puVar27;\n          }" { (expression_statement "local_84 = puVar27;" (assignment_expression "local_84 = puVar27" identifier = identifier) ;) })) (expression_statement "uVar8 = *local_84;" (assignment_expression "uVar8 = *local_84" identifier = (pointer_expression "*local_84" * identifier)) ;) (expression_statement "local_78 = (byte *)uVar8;" (assignment_expression "local_78 = (byte *)uVar8" identifier = (cast_expression "(byte *)uVar8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "joined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }" statement_identifier : (if_statement "if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }" if (parenthesized_expression "(local_78 != (byte *)0x0)" ( (binary_expression "local_78 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }" { (do_statement "do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );" do (compound_statement "{\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            }" { (expression_statement "puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);" (assignment_expression "puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c)" identifier = (cast_expression "(uint *)((int)local_78 * 0x10 + (int)local_7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_78 * 0x10 + (int)local_7c)" ( (binary_expression "(int)local_78 * 0x10 + (int)local_7c" (binary_expression "(int)local_78 * 0x10" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }" if (parenthesized_expression "(uVar29 == puVar27[1])" ( (binary_expression "uVar29 == puVar27[1]" identifier == (subscript_expression "puVar27[1]" identifier [ number_literal ])) )) (compound_statement "{\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }" { (expression_statement "__s1 = (void *)puVar27[2];" (assignment_expression "__s1 = (void *)puVar27[2]" identifier = (cast_expression "(void *)puVar27[2]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[2]" identifier [ number_literal ]))) ;) (if_statement "if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;" if (parenthesized_expression "((byte *)puVar27[3] == pbVar26)" ( (binary_expression "(byte *)puVar27[3] == pbVar26" (cast_expression "(byte *)puVar27[3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar27[3]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }" { (expression_statement "iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);" (assignment_expression "iVar30 = memcmp(__s1,local_90,(size_t)pbVar26)" identifier = (call_expression "memcmp(__s1,local_90,(size_t)pbVar26)" identifier (argument_list "(__s1,local_90,(size_t)pbVar26)" ( identifier , identifier , (cast_expression "(size_t)pbVar26" ( (type_descriptor "size_t" primitive_type) ) identifier) )))) ;) (if_statement "if (iVar30 == 0) goto joined_r0x0001a144;" if (parenthesized_expression "(iVar30 == 0)" ( (binary_expression "iVar30 == 0" identifier == number_literal) )) (goto_statement "goto joined_r0x0001a144;" goto statement_identifier ;)) (if_statement "if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;" if (parenthesized_expression "(bVar33 && cVar4 == '\0')" ( (binary_expression "bVar33 && cVar4 == '\0'" identifier && (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) )) (goto_statement "goto code_r0x0001a1dc;" goto statement_identifier ;)) }) (else_clause "else if (uVar20 == 0) goto LAB_0001a0f0;" else (if_statement "if (uVar20 == 0) goto LAB_0001a0f0;" if (parenthesized_expression "(uVar20 == 0)" ( (binary_expression "uVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001a0f0;" goto statement_identifier ;)))) (expression_statement "cVar7 = FUN_0001c840(__s1,local_90);" (assignment_expression "cVar7 = FUN_0001c840(__s1,local_90)" identifier = (call_expression "FUN_0001c840(__s1,local_90)" identifier (argument_list "(__s1,local_90)" ( identifier , identifier )))) ;) (if_statement "if (cVar7 == '\0') goto joined_r0x0001a144;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto joined_r0x0001a144;" goto statement_identifier ;)) })) (labeled_statement "LAB_0001a0f0:\n              local_78 = (byte *)*puVar27;" statement_identifier : (expression_statement "local_78 = (byte *)*puVar27;" (assignment_expression "local_78 = (byte *)*puVar27" identifier = (cast_expression "(byte *)*puVar27" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar27" * identifier))) ;)) (if_statement "if (local_78 == (byte *)0x0) break;" if (parenthesized_expression "(local_78 == (byte *)0x0)" ( (binary_expression "local_78 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (if_statement "if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }" if (parenthesized_expression "(local_60 == local_64)" ( (binary_expression "local_60 == local_64" identifier == identifier) )) (compound_statement "{\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }" { (if_statement "if (0x3fffffe < local_60) goto LAB_0001a9c0;" if (parenthesized_expression "(0x3fffffe < local_60)" ( (binary_expression "0x3fffffe < local_60" number_literal < identifier) )) (goto_statement "goto LAB_0001a9c0;" goto statement_identifier ;)) (expression_statement "local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);" (assignment_expression "local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5)" identifier = (cast_expression "(byte *)FUN_00023ce0(local_7c,local_60 << 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00023ce0(local_7c,local_60 << 5)" identifier (argument_list "(local_7c,local_60 << 5)" ( identifier , (binary_expression "local_60 << 5" identifier << number_literal) ))))) ;) (expression_statement "uVar8 = *local_84;" (assignment_expression "uVar8 = *local_84" identifier = (pointer_expression "*local_84" * identifier)) ;) (expression_statement "local_60 = local_60 * 2;" (assignment_expression "local_60 = local_60 * 2" identifier = (binary_expression "local_60 * 2" identifier * number_literal)) ;) })) (expression_statement "puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);" (assignment_expression "puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c)" identifier = (cast_expression "(uint *)(local_64 * 0x10 + (int)local_7c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_64 * 0x10 + (int)local_7c)" ( (binary_expression "local_64 * 0x10 + (int)local_7c" (binary_expression "local_64 * 0x10" identifier * number_literal) + (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*puVar27 = uVar8;" (assignment_expression "*puVar27 = uVar8" (pointer_expression "*puVar27" * identifier) = identifier) ;) (expression_statement "puVar27[1] = uVar29;" (assignment_expression "puVar27[1] = uVar29" (subscript_expression "puVar27[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar27[2] = (uint)local_90;" (assignment_expression "puVar27[2] = (uint)local_90" (subscript_expression "puVar27[2]" identifier [ number_literal ]) = (cast_expression "(uint)local_90" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar27[3] = (uint)pbVar26;" (assignment_expression "puVar27[3] = (uint)pbVar26" (subscript_expression "puVar27[3]" identifier [ number_literal ]) = (cast_expression "(uint)pbVar26" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*local_84 = local_64;" (assignment_expression "*local_84 = local_64" (pointer_expression "*local_84" * identifier) = identifier) ;) (expression_statement "local_78 = (byte *)local_64;" (assignment_expression "local_78 = (byte *)local_64" identifier = (cast_expression "(byte *)local_64" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (labeled_statement "joined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }" statement_identifier : (if_statement "if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }" if (parenthesized_expression "(local_8c == (byte *)local_6c)" ( (binary_expression "local_8c == (byte *)local_6c" identifier == (cast_expression "(byte *)local_6c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }" { (if_statement "if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;" if (parenthesized_expression "(((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18)))" ( (binary_expression "((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))" (parenthesized_expression "((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c))" ( (binary_expression "(0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)" (parenthesized_expression "(0x2aaaaaa9 < (int)local_8c)" ( (binary_expression "0x2aaaaaa9 < (int)local_8c" number_literal < (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)" ( (comma_expression "local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c" (assignment_expression "local_6c = (int)local_8c * 2 - iVar18" identifier = (binary_expression "(int)local_8c * 2 - iVar18" (binary_expression "(int)local_8c * 2" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) - identifier)) , (binary_expression "0x1ffffffe < local_6c" number_literal < identifier)) ))) )) || (parenthesized_expression "(0x1ffffffe < (uint)((int)local_8c - iVar18))" ( (binary_expression "0x1ffffffe < (uint)((int)local_8c - iVar18)" number_literal < (call_expression "(uint)((int)local_8c - iVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)local_8c - iVar18)" ( (binary_expression "(int)local_8c - iVar18" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) - identifier) )))) ))) )) (goto_statement "goto LAB_0001a9c0;" goto statement_identifier ;)) (expression_statement "local_68 = FUN_00023ce0(local_68,local_6c * 4);" (assignment_expression "local_68 = FUN_00023ce0(local_68,local_6c * 4)" identifier = (call_expression "FUN_00023ce0(local_68,local_6c * 4)" identifier (argument_list "(local_68,local_6c * 4)" ( identifier , (binary_expression "local_6c * 4" identifier * number_literal) )))) ;) (expression_statement "iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);" (assignment_expression "iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4)" identifier = (call_expression "FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4)" identifier (argument_list "((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4)" ( (binary_expression "(int)local_80 + iVar18 * 4" (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar18 * 4" identifier * number_literal)) , (binary_expression "(local_6c - iVar18) * 4" (parenthesized_expression "(local_6c - iVar18)" ( (binary_expression "local_6c - iVar18" identifier - identifier) )) * number_literal) )))) ;) (expression_statement "local_80 = (byte *)(iVar30 + iVar18 * -4);" (assignment_expression "local_80 = (byte *)(iVar30 + iVar18 * -4)" identifier = (cast_expression "(byte *)(iVar30 + iVar18 * -4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + iVar18 * -4)" ( (binary_expression "iVar30 + iVar18 * -4" identifier + (binary_expression "iVar18 * -4" identifier * number_literal)) )))) ;) }))) (expression_statement "*(byte **)((int)local_80 + (int)local_8c * 4) = local_90;" (assignment_expression "*(byte **)((int)local_80 + (int)local_8c * 4) = local_90" (pointer_expression "*(byte **)((int)local_80 + (int)local_8c * 4)" * (cast_expression "(byte **)((int)local_80 + (int)local_8c * 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_80 + (int)local_8c * 4)" ( (binary_expression "(int)local_80 + (int)local_8c * 4" (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_8c * 4" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) = identifier) ;) (expression_statement "*(byte **)(local_68 + (int)local_8c * 4) = local_78;" (assignment_expression "*(byte **)(local_68 + (int)local_8c * 4) = local_78" (pointer_expression "*(byte **)(local_68 + (int)local_8c * 4)" * (cast_expression "(byte **)(local_68 + (int)local_8c * 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_68 + (int)local_8c * 4)" ( (binary_expression "local_68 + (int)local_8c * 4" identifier + (binary_expression "(int)local_8c * 4" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) = identifier) ;) (expression_statement "local_8c = (byte *)((int)local_8c + 1);" (assignment_expression "local_8c = (byte *)((int)local_8c + 1)" identifier = (cast_expression "(byte *)((int)local_8c + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + 1)" ( (binary_expression "(int)local_8c + 1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_90 = pbVar24;" (assignment_expression "local_90 = pbVar24" identifier = identifier) ;) (if_statement "if (pbVar28 <= pbVar24) goto LAB_0001a520;" if (parenthesized_expression "(pbVar28 <= pbVar24)" ( (binary_expression "pbVar28 <= pbVar24" identifier <= identifier) )) (goto_statement "goto LAB_0001a520;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "local_8c = (byte *)0x0;" (assignment_expression "local_8c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0001a520:\n      local_5c[5] = (int)local_8c;" statement_identifier : (expression_statement "local_5c[5] = (int)local_8c;" (assignment_expression "local_5c[5] = (int)local_8c" (subscript_expression "local_5c[5]" identifier [ number_literal ]) = (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "iVar30 = 0;" (assignment_expression "iVar30 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }" { (if_statement "if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }" if (parenthesized_expression "((byte *)local_6c == local_8c)" ( (binary_expression "(byte *)local_6c == local_8c" (cast_expression "(byte *)local_6c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == identifier) )) (compound_statement "{\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }" { (if_statement "if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;" if (parenthesized_expression "(((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18))" ( (binary_expression "((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)" (parenthesized_expression "((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              )" ( (binary_expression "(0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)" (parenthesized_expression "(0x2aaaaaa9 < (int)local_6c)" ( (binary_expression "0x2aaaaaa9 < (int)local_6c" number_literal < (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)" ( (comma_expression "uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20" (assignment_expression "uVar20 = local_6c * 2 - iVar18" identifier = (binary_expression "local_6c * 2 - iVar18" (binary_expression "local_6c * 2" identifier * number_literal) - identifier)) , (binary_expression "0x1ffffffe < uVar20" number_literal < identifier)) ))) )) || (parenthesized_expression "(0x1ffffffe < local_6c - iVar18)" ( (binary_expression "0x1ffffffe < local_6c - iVar18" number_literal < (binary_expression "local_6c - iVar18" identifier - identifier)) ))) )) (goto_statement "goto LAB_0001a9c0;" goto statement_identifier ;)) (expression_statement "iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);" (assignment_expression "iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4)" identifier = (call_expression "FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4)" identifier (argument_list "((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4)" ( (binary_expression "(int)local_80 + iVar18 * 4" (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar18 * 4" identifier * number_literal)) , (binary_expression "(uVar20 - iVar18) * 4" (parenthesized_expression "(uVar20 - iVar18)" ( (binary_expression "uVar20 - iVar18" identifier - identifier) )) * number_literal) )))) ;) (expression_statement "local_80 = (byte *)(iVar18 * -4 + iVar14);" (assignment_expression "local_80 = (byte *)(iVar18 * -4 + iVar14)" identifier = (cast_expression "(byte *)(iVar18 * -4 + iVar14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 * -4 + iVar14)" ( (binary_expression "iVar18 * -4 + iVar14" (binary_expression "iVar18 * -4" identifier * number_literal) + identifier) )))) ;) (expression_statement "puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);" (assignment_expression "puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4)" identifier = (cast_expression "(undefined4 *)((int)local_80 + (int)local_8c * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_80 + (int)local_8c * 4)" ( (binary_expression "(int)local_80 + (int)local_8c * 4" (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_8c * 4" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "*puVar9 = pbVar24;" (assignment_expression "*puVar9 = pbVar24" (pointer_expression "*puVar9" * identifier) = identifier) ;) (expression_statement "local_6c = uVar20;" (assignment_expression "local_6c = uVar20" identifier = identifier) ;) }) (else_clause "else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }" else (compound_statement "{\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }" { (expression_statement "puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);" (assignment_expression "puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4)" identifier = (cast_expression "(undefined4 *)((int)local_80 + (int)local_8c * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_80 + (int)local_8c * 4)" ( (binary_expression "(int)local_80 + (int)local_8c * 4" (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_8c * 4" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (expression_statement "*puVar9 = pbVar24;" (assignment_expression "*puVar9 = pbVar24" (pointer_expression "*puVar9" * identifier) = identifier) ;) }))) (if_statement "if (pbVar11 == pbVar24) break;" if (parenthesized_expression "(pbVar11 == pbVar24)" ( (binary_expression "pbVar11 == pbVar24" identifier == identifier) )) (break_statement "break;" break ;)) (if_statement "if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;" if (parenthesized_expression "(((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0'))" ( (binary_expression "((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')" (parenthesized_expression "((int)DAT_0004d69c <= iVar30)" ( (binary_expression "(int)DAT_0004d69c <= iVar30" (cast_expression "(int)DAT_0004d69c" ( (type_descriptor "int" primitive_type) ) identifier) <= identifier) )) && (parenthesized_expression "(DAT_0004d68c != '\0')" ( (binary_expression "DAT_0004d68c != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0001a618;" goto statement_identifier ;)) (expression_statement "local_8c = (byte *)((int)local_8c + 1);" (assignment_expression "local_8c = (byte *)((int)local_8c + 1)" identifier = (cast_expression "(byte *)((int)local_8c + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_8c + 1)" ( (binary_expression "(int)local_8c + 1" (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pbVar28 = pbVar24;" (assignment_expression "pbVar28 = pbVar24" identifier = identifier) ;) (do_statement "do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);" do (compound_statement "{\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        }" { (expression_statement "pbVar24 = pbVar28 + 1;" (assignment_expression "pbVar24 = pbVar28 + 1" identifier = (binary_expression "pbVar28 + 1" identifier + number_literal)) ;) (expression_statement "bVar5 = *pbVar28;" (assignment_expression "bVar5 = *pbVar28" identifier = (pointer_expression "*pbVar28" * identifier)) ;) (expression_statement "pbVar28 = pbVar24;" (assignment_expression "pbVar28 = pbVar24" identifier = identifier) ;) }) while (parenthesized_expression "(bVar5 != 10)" ( (binary_expression "bVar5 != 10" identifier != number_literal) )) ;) (expression_statement "iVar30 = iVar30 + 1;" (assignment_expression "iVar30 = iVar30 + 1" identifier = (binary_expression "iVar30 + 1" identifier + number_literal)) ;) })) (if_statement "if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }" if (parenthesized_expression "(((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U))" ( (binary_expression "((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)" (parenthesized_expression "((char)local_5c[0x10] != '\0')" ( (binary_expression "(char)local_5c[0x10] != '\0'" (cast_expression "(char)local_5c[0x10]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_5c[0x10]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(1 < DAT_0004d688 - 4U)" ( (binary_expression "1 < DAT_0004d688 - 4U" number_literal < (binary_expression "DAT_0004d688 - 4U" identifier - number_literal)) ))) )) (compound_statement "{\n        *puVar9 = pbVar11 + -1;\n      }" { (expression_statement "*puVar9 = pbVar11 + -1;" (assignment_expression "*puVar9 = pbVar11 + -1" (pointer_expression "*puVar9" * identifier) = (binary_expression "pbVar11 + -1" identifier + number_literal)) ;) })) (labeled_statement "LAB_0001a618:\n      local_5c[3] = (int)local_80;" statement_identifier : (expression_statement "local_5c[3] = (int)local_80;" (assignment_expression "local_5c[3] = (int)local_80" (subscript_expression "local_5c[3]" identifier [ number_literal ]) = (cast_expression "(int)local_80" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "piVar15 = local_5c + 0x2c;" (assignment_expression "piVar15 = local_5c + 0x2c" identifier = (binary_expression "local_5c + 0x2c" identifier + number_literal)) ;) (expression_statement "DAT_0004d390 = local_7c;" (assignment_expression "DAT_0004d390 = local_7c" identifier = identifier) ;) (expression_statement "local_5c[6] = (int)local_8c;" (assignment_expression "local_5c[6] = (int)local_8c" (subscript_expression "local_5c[6]" identifier [ number_literal ]) = (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_5c[7] = local_6c;" (assignment_expression "local_5c[7] = local_6c" (subscript_expression "local_5c[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_5c[0xb] = local_68;" (assignment_expression "local_5c[0xb] = local_68" (subscript_expression "local_5c[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "DAT_0004d388 = local_60;" (assignment_expression "DAT_0004d388 = local_60" identifier = identifier) ;) (expression_statement "DAT_0004d38c = local_64;" (assignment_expression "DAT_0004d38c = local_64" identifier = identifier) ;) (expression_statement "local_5c = piVar15;" (assignment_expression "local_5c = piVar15" identifier = identifier) ;) (if_statement "if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }" if (parenthesized_expression "(param_1 + 0x72 == piVar15)" ( (binary_expression "param_1 + 0x72 == piVar15" (binary_expression "param_1 + 0x72" identifier + number_literal) == identifier) )) (compound_statement "{\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }" { (expression_statement "param_1[0x57] = local_64;" (assignment_expression "param_1[0x57] = local_64" (subscript_expression "param_1[0x57]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x2b] = local_64;" (assignment_expression "param_1[0x2b] = local_64" (subscript_expression "param_1[0x2b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "free(local_7c);" (call_expression "free(local_7c)" identifier (argument_list "(local_7c)" ( identifier ))) ;) (expression_statement "free((void *)(DAT_0004d398 + -4));" (call_expression "free((void *)(DAT_0004d398 + -4))" identifier (argument_list "((void *)(DAT_0004d398 + -4))" ( (cast_expression "(void *)(DAT_0004d398 + -4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0004d398 + -4)" ( (binary_expression "DAT_0004d398 + -4" identifier + number_literal) ))) ))) ;) (return_statement "return bVar32;" return identifier ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })) (labeled_statement "LAB_0001a9c0:\n                    \n  FUN_00023f50();" statement_identifier : (expression_statement "FUN_00023f50();" (call_expression "FUN_00023f50()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "code_r0x0001a1dc:\n  local_78 = (byte *)*puVar27;" statement_identifier : (expression_statement "local_78 = (byte *)*puVar27;" (assignment_expression "local_78 = (byte *)*puVar27" identifier = (cast_expression "(byte *)*puVar27" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar27" * identifier))) ;)) (goto_statement "goto joined_r0x0001a0d6;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (unary_expression ~ (subscript_expression IDENT [ IDENT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (unary_expression ~ (subscript_expression IDENT [ IDENT ]))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) < IDENT) != (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }))) (for_statement for ( ; (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT))) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) == IDENT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) (break_statement break ;)) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT)) )) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (for_statement for ( ; (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (char_literal ' escape_sequence '))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) || (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) || (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) == (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) < LIT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + IDENT) + IDENT) + LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression IDENT != IDENT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & IDENT) )) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT * LIT) ))))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT & IDENT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) / IDENT)) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) 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 = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) }))) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 = IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT / IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT + LIT) + IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) || (binary_expression LIT < IDENT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT - IDENT) ]) = (subscript_expression IDENT [ (binary_expression IDENT & IDENT) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (unary_expression - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (unary_expression - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )) + LIT) + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT * LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / LIT) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / LIT) )))) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (subscript_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (pointer_expression & IDENT) ))) [ IDENT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT << LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (pointer_expression * IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) + LIT) )))) & LIT) )) != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) )) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ IDENT ])) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) )) + IDENT)) ;) }) while (parenthesized_expression ( (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 *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) )) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) )) + (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + (binary_expression IDENT * LIT)) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) * LIT)) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (binary_expression IDENT % IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (parenthesized_expression ( (binary_expression IDENT != LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))))))))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) ))))) ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) )) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) ;) })) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence '))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + (binary_expression IDENT * LIT)) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ IDENT ])) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT)) )) + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT % IDENT) )) * LIT)) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression LIT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT && (binary_expression IDENT == (char_literal ' escape_sequence '))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT << LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 (binary_expression IDENT * LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) - IDENT)) , (binary_expression LIT < IDENT)) ))) )) || (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT) )))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) , (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) - IDENT)) , (binary_expression LIT < IDENT)) ))) )) || (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression IDENT * LIT)) , (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;) (return_statement return IDENT ;) })) }) while (parenthesized_expression ( BOOL )) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "byte FUN_000198d0(int *param_1,byte param_2)\n\n{\n  byte *pbVar1;\n  undefined4 uVar2;\n  void *__s1;\n  ushort *puVar3;\n  char cVar4;\n  byte bVar5;\n  byte bVar6;\n  char cVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  ushort **ppuVar12;\n  __int32_t **pp_Var13;\n  int iVar14;\n  int *piVar15;\n  uint *puVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  undefined4 *puVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  uint uVar25;\n  byte *pbVar26;\n  uint *puVar27;\n  byte *pbVar28;\n  uint uVar29;\n  int iVar30;\n  bool bVar31;\n  bool bVar32;\n  bool bVar33;\n  byte *local_90;\n  byte *local_8c;\n  uint local_88;\n  uint *local_84;\n  byte *local_80;\n  byte *local_7c;\n  byte *local_78;\n  uint local_74;\n  byte *local_70;\n  uint local_6c;\n  int local_68;\n  uint local_64;\n  uint local_60;\n  int *local_5c;\n  \n  bVar5 = FUN_000197e0();\n  bVar5 = bVar5 | param_2;\n  if (*param_1 == param_1[0x2c]) {\n    param_1[0x46] = param_1[0x1a];\n    param_1[0x47] = param_1[0x1b];\n    param_1[0x48] = param_1[0x1c];\n  }\n  else {\n    bVar6 = FUN_000197e0();\n    bVar5 = bVar5 | bVar6;\n  }\n  if (bVar5 != 0) {\n    return bVar5;\n  }\n  FUN_00019690();\n  FUN_00019560();\n  if (*param_1 == param_1[0x2c]) {\n    local_78 = (byte *)param_1[0x1a];\n    param_1[0x46] = (int)local_78;\n    param_1[0x47] = param_1[0x1b];\n    uVar20 = param_1[0x1c];\n    param_1[0x48] = uVar20;\n    *(char *)(param_1 + 0x56) = (char)param_1[0x2a];\n    local_88 = uVar20;\nLAB_000199ff:\n    pbVar24 = local_78 + uVar20;\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    local_90 = local_78;\n    local_84 = (uint *)(local_78 + local_88);\n    local_8c = pbVar24;\n    iVar18 = DAT_0004d698;\n    local_7c = pbVar24;\n  }\n  else {\n    FUN_00019690();\n    FUN_00019560();\n    local_88 = param_1[0x1c];\n    local_90 = (byte *)param_1[0x1a];\n    local_78 = (byte *)param_1[0x46];\n    uVar20 = param_1[0x48];\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (uint *)(local_90 + local_88);\n    local_7c = local_78 + uVar20;\n    if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }\n    pbVar24 = local_90;\n    local_8c = local_78;\n    if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }\n    if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    iVar18 = DAT_0004d698;\n    if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }\n  }\n  for (; uVar8 = local_88, iVar30 = DAT_0004d698, pbVar24 != local_90; pbVar24 = pbVar24 + -1) {\n    while (pbVar24[-1] == 10) {\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }\n    local_8c = local_8c + -1;\n  }\nLAB_00019a73:\n  param_1[0x22] = (int)pbVar24;\n  param_1[0x4e] = (int)local_8c;\n  if ((local_80 < 2) ||\n     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])) {\n    pbVar28 = pbVar24 + (local_88 - uVar20);\n    if (local_88 < uVar20) {\n      pbVar28 = pbVar24;\n    }\n    if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }\n    else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }\n    puVar27 = puVar16;\n    if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }\n    else {\n      iVar30 = iVar30 + 1;\n    }\n    for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }\n    local_70 = local_80 + ((int)puVar27 - (int)puVar16);\n  }\n  bVar32 = DAT_0004d68c == '\0';\n  param_1[0x24] = (int)puVar27;\n  param_1[0x50] = (int)local_70;\n  if ((((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||\n     (local_88 <= DAT_0004d69c)) {\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar8 = uVar8 >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    local_84 = (uint *)(uVar8 + 5);\n  }\n  else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;\n    if (uVar20 == 0) {\n      uVar20 = 1;\n    }\n    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    uVar21 = 1;\n    if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }\n    uVar21 = uVar8 + 5;\n    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }\n    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);\n  }\n  puVar9 = (undefined4 *)FUN_00023c60((int)local_84 << 2);\n  pbVar24 = (byte *)param_1[0x22];\n  if (((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||\n     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)) {\n    if (local_90 == pbVar24) {\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }\n    uVar20 = (uint)local_84;\n    local_8c = (byte *)0;\n    pbVar28 = local_90;\n    do {\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    } while (pbVar28 != pbVar24);\n    local_6c = (int)local_70 - param_1[0x4e];\n    bVar32 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar20 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }\n  }\n  else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;\n    if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }\n  }\n  uVar8 = (uint)((int)local_7c - (int)local_70) / uVar20;\n  if (uVar8 == 0) {\n    uVar8 = 1;\n  }\n  if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }\n  uVar21 = uVar8 + 5;\n  if ((int)DAT_0004d69c < (int)(uVar8 + 5)) {\n    uVar21 = DAT_0004d69c;\n  }\n  uVar8 = 1;\n  if (local_6c / uVar20 != 0) {\n    uVar8 = local_6c / uVar20;\n  }\n  if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }\n  uVar21 = local_88 + 5 + uVar8 + uVar21;\n  bVar32 = (int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21;\n  if (bVar32) goto LAB_0001a9c0;\n  puVar10 = (undefined4 *)FUN_00023c60(uVar21 * 4);\n  if ((byte *)local_88 == local_8c) {\n    if (local_88 != 0) goto LAB_00019df3;\n  }\n  else if (0 < (int)local_88) {\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }\n  param_1[0x49] = (int)(puVar10 + local_88);\n  param_1[0x1d] = (int)(puVar9 + local_88);\n  param_1[0x4a] = -local_88;\n  param_1[0x1e] = -local_88;\n  param_1[0x21] = (int)local_84 - local_88;\n  uVar20 = ((int)local_84 - local_88) + 1 + (uVar21 - local_88);\n  param_1[0x4d] = uVar21 - local_88;\n  DAT_0004d388 = uVar20;\n  param_1[0x4f] = (int)local_8c;\n  param_1[0x23] = (int)local_8c;\n  if (uVar20 < 0x7ffffff) {\n    DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);\n    DAT_0004d38c = 1;\n    if ((uint)((int)DAT_0004d388 / 3) < 0x201) {\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }\n    else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }\n    iVar18 = FUN_0001d920(iVar18);\n    DAT_0004d398 = iVar18 + 4;\n    local_5c = param_1 + 0x1a;\n    do {\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    } while( true );\n  }\nLAB_0001a9c0:\n                    \n  FUN_00023f50();\ncode_r0x0001a1dc:\n  local_78 = (byte *)*puVar27;\n  goto joined_r0x0001a0d6;\n}" (type_identifier "byte") (function_declarator "FUN_000198d0(int *param_1,byte param_2)" (identifier "FUN_000198d0") (parameter_list "(int *param_1,byte param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "byte param_2" (type_identifier "byte") (identifier "param_2")) () ")"))) (compound_statement "{\n  byte *pbVar1;\n  undefined4 uVar2;\n  void *__s1;\n  ushort *puVar3;\n  char cVar4;\n  byte bVar5;\n  byte bVar6;\n  char cVar7;\n  uint uVar8;\n  undefined4 *puVar9;\n  undefined4 *puVar10;\n  byte *pbVar11;\n  ushort **ppuVar12;\n  __int32_t **pp_Var13;\n  int iVar14;\n  int *piVar15;\n  uint *puVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  undefined4 *puVar19;\n  uint uVar20;\n  uint uVar21;\n  uint uVar22;\n  byte *pbVar23;\n  byte *pbVar24;\n  uint uVar25;\n  byte *pbVar26;\n  uint *puVar27;\n  byte *pbVar28;\n  uint uVar29;\n  int iVar30;\n  bool bVar31;\n  bool bVar32;\n  bool bVar33;\n  byte *local_90;\n  byte *local_8c;\n  uint local_88;\n  uint *local_84;\n  byte *local_80;\n  byte *local_7c;\n  byte *local_78;\n  uint local_74;\n  byte *local_70;\n  uint local_6c;\n  int local_68;\n  uint local_64;\n  uint local_60;\n  int *local_5c;\n  \n  bVar5 = FUN_000197e0();\n  bVar5 = bVar5 | param_2;\n  if (*param_1 == param_1[0x2c]) {\n    param_1[0x46] = param_1[0x1a];\n    param_1[0x47] = param_1[0x1b];\n    param_1[0x48] = param_1[0x1c];\n  }\n  else {\n    bVar6 = FUN_000197e0();\n    bVar5 = bVar5 | bVar6;\n  }\n  if (bVar5 != 0) {\n    return bVar5;\n  }\n  FUN_00019690();\n  FUN_00019560();\n  if (*param_1 == param_1[0x2c]) {\n    local_78 = (byte *)param_1[0x1a];\n    param_1[0x46] = (int)local_78;\n    param_1[0x47] = param_1[0x1b];\n    uVar20 = param_1[0x1c];\n    param_1[0x48] = uVar20;\n    *(char *)(param_1 + 0x56) = (char)param_1[0x2a];\n    local_88 = uVar20;\nLAB_000199ff:\n    pbVar24 = local_78 + uVar20;\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    local_90 = local_78;\n    local_84 = (uint *)(local_78 + local_88);\n    local_8c = pbVar24;\n    iVar18 = DAT_0004d698;\n    local_7c = pbVar24;\n  }\n  else {\n    FUN_00019690();\n    FUN_00019560();\n    local_88 = param_1[0x1c];\n    local_90 = (byte *)param_1[0x1a];\n    local_78 = (byte *)param_1[0x46];\n    uVar20 = param_1[0x48];\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (uint *)(local_90 + local_88);\n    local_7c = local_78 + uVar20;\n    if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }\n    pbVar24 = local_90;\n    local_8c = local_78;\n    if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }\n    if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    iVar18 = DAT_0004d698;\n    if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }\n  }\n  for (; uVar8 = local_88, iVar30 = DAT_0004d698, pbVar24 != local_90; pbVar24 = pbVar24 + -1) {\n    while (pbVar24[-1] == 10) {\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }\n    local_8c = local_8c + -1;\n  }\nLAB_00019a73:\n  param_1[0x22] = (int)pbVar24;\n  param_1[0x4e] = (int)local_8c;\n  if ((local_80 < 2) ||\n     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])) {\n    pbVar28 = pbVar24 + (local_88 - uVar20);\n    if (local_88 < uVar20) {\n      pbVar28 = pbVar24;\n    }\n    if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }\n    else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }\n    puVar27 = puVar16;\n    if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }\n    else {\n      iVar30 = iVar30 + 1;\n    }\n    for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }\n    local_70 = local_80 + ((int)puVar27 - (int)puVar16);\n  }\n  bVar32 = DAT_0004d68c == '\0';\n  param_1[0x24] = (int)puVar27;\n  param_1[0x50] = (int)local_70;\n  if ((((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||\n     (local_88 <= DAT_0004d69c)) {\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar8 = uVar8 >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    local_84 = (uint *)(uVar8 + 5);\n  }\n  else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;\n    if (uVar20 == 0) {\n      uVar20 = 1;\n    }\n    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    uVar21 = 1;\n    if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }\n    uVar21 = uVar8 + 5;\n    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }\n    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);\n  }\n  puVar9 = (undefined4 *)FUN_00023c60((int)local_84 << 2);\n  pbVar24 = (byte *)param_1[0x22];\n  if (((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||\n     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)) {\n    if (local_90 == pbVar24) {\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }\n    uVar20 = (uint)local_84;\n    local_8c = (byte *)0;\n    pbVar28 = local_90;\n    do {\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    } while (pbVar28 != pbVar24);\n    local_6c = (int)local_70 - param_1[0x4e];\n    bVar32 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar20 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }\n  }\n  else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;\n    if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }\n  }\n  uVar8 = (uint)((int)local_7c - (int)local_70) / uVar20;\n  if (uVar8 == 0) {\n    uVar8 = 1;\n  }\n  if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }\n  uVar21 = uVar8 + 5;\n  if ((int)DAT_0004d69c < (int)(uVar8 + 5)) {\n    uVar21 = DAT_0004d69c;\n  }\n  uVar8 = 1;\n  if (local_6c / uVar20 != 0) {\n    uVar8 = local_6c / uVar20;\n  }\n  if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }\n  uVar21 = local_88 + 5 + uVar8 + uVar21;\n  bVar32 = (int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21;\n  if (bVar32) goto LAB_0001a9c0;\n  puVar10 = (undefined4 *)FUN_00023c60(uVar21 * 4);\n  if ((byte *)local_88 == local_8c) {\n    if (local_88 != 0) goto LAB_00019df3;\n  }\n  else if (0 < (int)local_88) {\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }\n  param_1[0x49] = (int)(puVar10 + local_88);\n  param_1[0x1d] = (int)(puVar9 + local_88);\n  param_1[0x4a] = -local_88;\n  param_1[0x1e] = -local_88;\n  param_1[0x21] = (int)local_84 - local_88;\n  uVar20 = ((int)local_84 - local_88) + 1 + (uVar21 - local_88);\n  param_1[0x4d] = uVar21 - local_88;\n  DAT_0004d388 = uVar20;\n  param_1[0x4f] = (int)local_8c;\n  param_1[0x23] = (int)local_8c;\n  if (uVar20 < 0x7ffffff) {\n    DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);\n    DAT_0004d38c = 1;\n    if ((uint)((int)DAT_0004d388 / 3) < 0x201) {\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }\n    else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }\n    iVar18 = FUN_0001d920(iVar18);\n    DAT_0004d398 = iVar18 + 4;\n    local_5c = param_1 + 0x1a;\n    do {\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    } while( true );\n  }\nLAB_0001a9c0:\n                    \n  FUN_00023f50();\ncode_r0x0001a1dc:\n  local_78 = (byte *)*puVar27;\n  goto joined_r0x0001a0d6;\n}" ({ "{") (declaration "byte *pbVar1;" (type_identifier "byte") (pointer_declarator "*pbVar1" (* "*") (identifier "pbVar1")) (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "void *__s1;" (primitive_type "void") (pointer_declarator "*__s1" (* "*") (identifier "__s1")) (; ";")) (declaration "ushort *puVar3;" (type_identifier "ushort") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "byte bVar5;" (type_identifier "byte") (identifier "bVar5") (; ";")) (declaration "byte bVar6;" (type_identifier "byte") (identifier "bVar6") (; ";")) (declaration "char cVar7;" (primitive_type "char") (identifier "cVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "ushort **ppuVar12;" (type_identifier "ushort") (pointer_declarator "**ppuVar12" (* "*") (pointer_declarator "*ppuVar12" (* "*") (identifier "ppuVar12"))) (; ";")) (declaration "__int32_t **pp_Var13;" (type_identifier "__int32_t") (pointer_declarator "**pp_Var13" (* "*") (pointer_declarator "*pp_Var13" (* "*") (identifier "pp_Var13"))) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "uint *puVar16;" (type_identifier "uint") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined4 *puVar17;" (type_identifier "undefined4") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "undefined4 *puVar19;" (type_identifier "undefined4") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "byte *pbVar23;" (type_identifier "byte") (pointer_declarator "*pbVar23" (* "*") (identifier "pbVar23")) (; ";")) (declaration "byte *pbVar24;" (type_identifier "byte") (pointer_declarator "*pbVar24" (* "*") (identifier "pbVar24")) (; ";")) (declaration "uint uVar25;" (type_identifier "uint") (identifier "uVar25") (; ";")) (declaration "byte *pbVar26;" (type_identifier "byte") (pointer_declarator "*pbVar26" (* "*") (identifier "pbVar26")) (; ";")) (declaration "uint *puVar27;" (type_identifier "uint") (pointer_declarator "*puVar27" (* "*") (identifier "puVar27")) (; ";")) (declaration "byte *pbVar28;" (type_identifier "byte") (pointer_declarator "*pbVar28" (* "*") (identifier "pbVar28")) (; ";")) (declaration "uint uVar29;" (type_identifier "uint") (identifier "uVar29") (; ";")) (declaration "int iVar30;" (primitive_type "int") (identifier "iVar30") (; ";")) (declaration "bool bVar31;" (primitive_type "bool") (identifier "bVar31") (; ";")) (declaration "bool bVar32;" (primitive_type "bool") (identifier "bVar32") (; ";")) (declaration "bool bVar33;" (primitive_type "bool") (identifier "bVar33") (; ";")) (declaration "byte *local_90;" (type_identifier "byte") (pointer_declarator "*local_90" (* "*") (identifier "local_90")) (; ";")) (declaration "byte *local_8c;" (type_identifier "byte") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c")) (; ";")) (declaration "uint local_88;" (type_identifier "uint") (identifier "local_88") (; ";")) (declaration "uint *local_84;" (type_identifier "uint") (pointer_declarator "*local_84" (* "*") (identifier "local_84")) (; ";")) (declaration "byte *local_80;" (type_identifier "byte") (pointer_declarator "*local_80" (* "*") (identifier "local_80")) (; ";")) (declaration "byte *local_7c;" (type_identifier "byte") (pointer_declarator "*local_7c" (* "*") (identifier "local_7c")) (; ";")) (declaration "byte *local_78;" (type_identifier "byte") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "uint local_74;" (type_identifier "uint") (identifier "local_74") (; ";")) (declaration "byte *local_70;" (type_identifier "byte") (pointer_declarator "*local_70" (* "*") (identifier "local_70")) (; ";")) (declaration "uint local_6c;" (type_identifier "uint") (identifier "local_6c") (; ";")) (declaration "int local_68;" (primitive_type "int") (identifier "local_68") (; ";")) (declaration "uint local_64;" (type_identifier "uint") (identifier "local_64") (; ";")) (declaration "uint local_60;" (type_identifier "uint") (identifier "local_60") (; ";")) (declaration "int *local_5c;" (primitive_type "int") (pointer_declarator "*local_5c" (* "*") (identifier "local_5c")) (; ";")) (expression_statement "bVar5 = FUN_000197e0();" (assignment_expression "bVar5 = FUN_000197e0()" (identifier "bVar5") (= "=") (call_expression "FUN_000197e0()" (identifier "FUN_000197e0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar5 = bVar5 | param_2;" (assignment_expression "bVar5 = bVar5 | param_2" (identifier "bVar5") (= "=") (binary_expression "bVar5 | param_2" (identifier "bVar5") (| "|") (identifier "param_2"))) (; ";")) (if_statement "if (*param_1 == param_1[0x2c]) {\n    param_1[0x46] = param_1[0x1a];\n    param_1[0x47] = param_1[0x1b];\n    param_1[0x48] = param_1[0x1c];\n  }\n  else {\n    bVar6 = FUN_000197e0();\n    bVar5 = bVar5 | bVar6;\n  }" (if "if") (parenthesized_expression "(*param_1 == param_1[0x2c])" (( "(") (binary_expression "*param_1 == param_1[0x2c]" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]"))) () ")")) (compound_statement "{\n    param_1[0x46] = param_1[0x1a];\n    param_1[0x47] = param_1[0x1b];\n    param_1[0x48] = param_1[0x1c];\n  }" ({ "{") (expression_statement "param_1[0x46] = param_1[0x1a];" (assignment_expression "param_1[0x46] = param_1[0x1a]" (subscript_expression "param_1[0x46]" (identifier "param_1") ([ "[") (number_literal "0x46") (] "]")) (= "=") (subscript_expression "param_1[0x1a]" (identifier "param_1") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (expression_statement "param_1[0x47] = param_1[0x1b];" (assignment_expression "param_1[0x47] = param_1[0x1b]" (subscript_expression "param_1[0x47]" (identifier "param_1") ([ "[") (number_literal "0x47") (] "]")) (= "=") (subscript_expression "param_1[0x1b]" (identifier "param_1") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (expression_statement "param_1[0x48] = param_1[0x1c];" (assignment_expression "param_1[0x48] = param_1[0x1c]" (subscript_expression "param_1[0x48]" (identifier "param_1") ([ "[") (number_literal "0x48") (] "]")) (= "=") (subscript_expression "param_1[0x1c]" (identifier "param_1") ([ "[") (number_literal "0x1c") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n    bVar6 = FUN_000197e0();\n    bVar5 = bVar5 | bVar6;\n  }" (else "else") (compound_statement "{\n    bVar6 = FUN_000197e0();\n    bVar5 = bVar5 | bVar6;\n  }" ({ "{") (expression_statement "bVar6 = FUN_000197e0();" (assignment_expression "bVar6 = FUN_000197e0()" (identifier "bVar6") (= "=") (call_expression "FUN_000197e0()" (identifier "FUN_000197e0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar5 = bVar5 | bVar6;" (assignment_expression "bVar5 = bVar5 | bVar6" (identifier "bVar5") (= "=") (binary_expression "bVar5 | bVar6" (identifier "bVar5") (| "|") (identifier "bVar6"))) (; ";")) (} "}")))) (if_statement "if (bVar5 != 0) {\n    return bVar5;\n  }" (if "if") (parenthesized_expression "(bVar5 != 0)" (( "(") (binary_expression "bVar5 != 0" (identifier "bVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return bVar5;\n  }" ({ "{") (return_statement "return bVar5;" (return "return") (identifier "bVar5") (; ";")) (} "}"))) (expression_statement "FUN_00019690();" (call_expression "FUN_00019690()" (identifier "FUN_00019690") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00019560();" (call_expression "FUN_00019560()" (identifier "FUN_00019560") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*param_1 == param_1[0x2c]) {\n    local_78 = (byte *)param_1[0x1a];\n    param_1[0x46] = (int)local_78;\n    param_1[0x47] = param_1[0x1b];\n    uVar20 = param_1[0x1c];\n    param_1[0x48] = uVar20;\n    *(char *)(param_1 + 0x56) = (char)param_1[0x2a];\n    local_88 = uVar20;\nLAB_000199ff:\n    pbVar24 = local_78 + uVar20;\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    local_90 = local_78;\n    local_84 = (uint *)(local_78 + local_88);\n    local_8c = pbVar24;\n    iVar18 = DAT_0004d698;\n    local_7c = pbVar24;\n  }\n  else {\n    FUN_00019690();\n    FUN_00019560();\n    local_88 = param_1[0x1c];\n    local_90 = (byte *)param_1[0x1a];\n    local_78 = (byte *)param_1[0x46];\n    uVar20 = param_1[0x48];\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (uint *)(local_90 + local_88);\n    local_7c = local_78 + uVar20;\n    if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }\n    pbVar24 = local_90;\n    local_8c = local_78;\n    if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }\n    if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    iVar18 = DAT_0004d698;\n    if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }\n  }" (if "if") (parenthesized_expression "(*param_1 == param_1[0x2c])" (( "(") (binary_expression "*param_1 == param_1[0x2c]" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]"))) () ")")) (compound_statement "{\n    local_78 = (byte *)param_1[0x1a];\n    param_1[0x46] = (int)local_78;\n    param_1[0x47] = param_1[0x1b];\n    uVar20 = param_1[0x1c];\n    param_1[0x48] = uVar20;\n    *(char *)(param_1 + 0x56) = (char)param_1[0x2a];\n    local_88 = uVar20;\nLAB_000199ff:\n    pbVar24 = local_78 + uVar20;\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    local_90 = local_78;\n    local_84 = (uint *)(local_78 + local_88);\n    local_8c = pbVar24;\n    iVar18 = DAT_0004d698;\n    local_7c = pbVar24;\n  }" ({ "{") (expression_statement "local_78 = (byte *)param_1[0x1a];" (assignment_expression "local_78 = (byte *)param_1[0x1a]" (identifier "local_78") (= "=") (cast_expression "(byte *)param_1[0x1a]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x1a]" (identifier "param_1") ([ "[") (number_literal "0x1a") (] "]")))) (; ";")) (expression_statement "param_1[0x46] = (int)local_78;" (assignment_expression "param_1[0x46] = (int)local_78" (subscript_expression "param_1[0x46]" (identifier "param_1") ([ "[") (number_literal "0x46") (] "]")) (= "=") (cast_expression "(int)local_78" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_78"))) (; ";")) (expression_statement "param_1[0x47] = param_1[0x1b];" (assignment_expression "param_1[0x47] = param_1[0x1b]" (subscript_expression "param_1[0x47]" (identifier "param_1") ([ "[") (number_literal "0x47") (] "]")) (= "=") (subscript_expression "param_1[0x1b]" (identifier "param_1") ([ "[") (number_literal "0x1b") (] "]"))) (; ";")) (expression_statement "uVar20 = param_1[0x1c];" (assignment_expression "uVar20 = param_1[0x1c]" (identifier "uVar20") (= "=") (subscript_expression "param_1[0x1c]" (identifier "param_1") ([ "[") (number_literal "0x1c") (] "]"))) (; ";")) (expression_statement "param_1[0x48] = uVar20;" (assignment_expression "param_1[0x48] = uVar20" (subscript_expression "param_1[0x48]" (identifier "param_1") ([ "[") (number_literal "0x48") (] "]")) (= "=") (identifier "uVar20")) (; ";")) (expression_statement "*(char *)(param_1 + 0x56) = (char)param_1[0x2a];" (assignment_expression "*(char *)(param_1 + 0x56) = (char)param_1[0x2a]" (pointer_expression "*(char *)(param_1 + 0x56)" (* "*") (cast_expression "(char *)(param_1 + 0x56)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x56)" (( "(") (binary_expression "param_1 + 0x56" (identifier "param_1") (+ "+") (number_literal "0x56")) () ")")))) (= "=") (cast_expression "(char)param_1[0x2a]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_1[0x2a]" (identifier "param_1") ([ "[") (number_literal "0x2a") (] "]")))) (; ";")) (expression_statement "local_88 = uVar20;" (assignment_expression "local_88 = uVar20" (identifier "local_88") (= "=") (identifier "uVar20")) (; ";")) (labeled_statement "LAB_000199ff:\n    pbVar24 = local_78 + uVar20;" (statement_identifier "LAB_000199ff") (: ":") (expression_statement "pbVar24 = local_78 + uVar20;" (assignment_expression "pbVar24 = local_78 + uVar20" (identifier "pbVar24") (= "=") (binary_expression "local_78 + uVar20" (identifier "local_78") (+ "+") (identifier "uVar20"))) (; ";"))) (expression_statement "local_80 = (byte *)(DAT_0004d688 - 4);" (assignment_expression "local_80 = (byte *)(DAT_0004d688 - 4)" (identifier "local_80") (= "=") (cast_expression "(byte *)(DAT_0004d688 - 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0004d688 - 4)" (( "(") (binary_expression "DAT_0004d688 - 4" (identifier "DAT_0004d688") (- "-") (number_literal "4")) () ")")))) (; ";")) (expression_statement "local_90 = local_78;" (assignment_expression "local_90 = local_78" (identifier "local_90") (= "=") (identifier "local_78")) (; ";")) (expression_statement "local_84 = (uint *)(local_78 + local_88);" (assignment_expression "local_84 = (uint *)(local_78 + local_88)" (identifier "local_84") (= "=") (cast_expression "(uint *)(local_78 + local_88)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_78 + local_88)" (( "(") (binary_expression "local_78 + local_88" (identifier "local_78") (+ "+") (identifier "local_88")) () ")")))) (; ";")) (expression_statement "local_8c = pbVar24;" (assignment_expression "local_8c = pbVar24" (identifier "local_8c") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "iVar18 = DAT_0004d698;" (assignment_expression "iVar18 = DAT_0004d698" (identifier "iVar18") (= "=") (identifier "DAT_0004d698")) (; ";")) (expression_statement "local_7c = pbVar24;" (assignment_expression "local_7c = pbVar24" (identifier "local_7c") (= "=") (identifier "pbVar24")) (; ";")) (} "}")) (else_clause "else {\n    FUN_00019690();\n    FUN_00019560();\n    local_88 = param_1[0x1c];\n    local_90 = (byte *)param_1[0x1a];\n    local_78 = (byte *)param_1[0x46];\n    uVar20 = param_1[0x48];\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (uint *)(local_90 + local_88);\n    local_7c = local_78 + uVar20;\n    if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }\n    pbVar24 = local_90;\n    local_8c = local_78;\n    if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }\n    if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    iVar18 = DAT_0004d698;\n    if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }\n  }" (else "else") (compound_statement "{\n    FUN_00019690();\n    FUN_00019560();\n    local_88 = param_1[0x1c];\n    local_90 = (byte *)param_1[0x1a];\n    local_78 = (byte *)param_1[0x46];\n    uVar20 = param_1[0x48];\n    if (local_90 == local_78) goto LAB_000199ff;\n    local_84 = (uint *)(local_90 + local_88);\n    local_7c = local_78 + uVar20;\n    if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }\n    pbVar24 = local_90;\n    local_8c = local_78;\n    if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }\n    if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }\n    local_80 = (byte *)(DAT_0004d688 - 4);\n    iVar18 = DAT_0004d698;\n    if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }\n  }" ({ "{") (expression_statement "FUN_00019690();" (call_expression "FUN_00019690()" (identifier "FUN_00019690") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00019560();" (call_expression "FUN_00019560()" (identifier "FUN_00019560") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_88 = param_1[0x1c];" (assignment_expression "local_88 = param_1[0x1c]" (identifier "local_88") (= "=") (subscript_expression "param_1[0x1c]" (identifier "param_1") ([ "[") (number_literal "0x1c") (] "]"))) (; ";")) (expression_statement "local_90 = (byte *)param_1[0x1a];" (assignment_expression "local_90 = (byte *)param_1[0x1a]" (identifier "local_90") (= "=") (cast_expression "(byte *)param_1[0x1a]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x1a]" (identifier "param_1") ([ "[") (number_literal "0x1a") (] "]")))) (; ";")) (expression_statement "local_78 = (byte *)param_1[0x46];" (assignment_expression "local_78 = (byte *)param_1[0x46]" (identifier "local_78") (= "=") (cast_expression "(byte *)param_1[0x46]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x46]" (identifier "param_1") ([ "[") (number_literal "0x46") (] "]")))) (; ";")) (expression_statement "uVar20 = param_1[0x48];" (assignment_expression "uVar20 = param_1[0x48]" (identifier "uVar20") (= "=") (subscript_expression "param_1[0x48]" (identifier "param_1") ([ "[") (number_literal "0x48") (] "]"))) (; ";")) (if_statement "if (local_90 == local_78) goto LAB_000199ff;" (if "if") (parenthesized_expression "(local_90 == local_78)" (( "(") (binary_expression "local_90 == local_78" (identifier "local_90") (== "==") (identifier "local_78")) () ")")) (goto_statement "goto LAB_000199ff;" (goto "goto") (statement_identifier "LAB_000199ff") (; ";"))) (expression_statement "local_84 = (uint *)(local_90 + local_88);" (assignment_expression "local_84 = (uint *)(local_90 + local_88)" (identifier "local_84") (= "=") (cast_expression "(uint *)(local_90 + local_88)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_90 + local_88)" (( "(") (binary_expression "local_90 + local_88" (identifier "local_90") (+ "+") (identifier "local_88")) () ")")))) (; ";")) (expression_statement "local_7c = local_78 + uVar20;" (assignment_expression "local_7c = local_78 + uVar20" (identifier "local_7c") (= "=") (binary_expression "local_78 + uVar20" (identifier "local_78") (+ "+") (identifier "uVar20"))) (; ";")) (if_statement "if (local_88 < uVar20) {\n      *(byte *)local_84 = ~local_78[local_88];\n    }\n    else {\n      *local_7c = ~local_90[uVar20];\n    }" (if "if") (parenthesized_expression "(local_88 < uVar20)" (( "(") (binary_expression "local_88 < uVar20" (identifier "local_88") (< "<") (identifier "uVar20")) () ")")) (compound_statement "{\n      *(byte *)local_84 = ~local_78[local_88];\n    }" ({ "{") (expression_statement "*(byte *)local_84 = ~local_78[local_88];" (assignment_expression "*(byte *)local_84 = ~local_78[local_88]" (pointer_expression "*(byte *)local_84" (* "*") (cast_expression "(byte *)local_84" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_84"))) (= "=") (unary_expression "~local_78[local_88]" (~ "~") (subscript_expression "local_78[local_88]" (identifier "local_78") ([ "[") (identifier "local_88") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n      *local_7c = ~local_90[uVar20];\n    }" (else "else") (compound_statement "{\n      *local_7c = ~local_90[uVar20];\n    }" ({ "{") (expression_statement "*local_7c = ~local_90[uVar20];" (assignment_expression "*local_7c = ~local_90[uVar20]" (pointer_expression "*local_7c" (* "*") (identifier "local_7c")) (= "=") (unary_expression "~local_90[uVar20]" (~ "~") (subscript_expression "local_90[uVar20]" (identifier "local_90") ([ "[") (identifier "uVar20") (] "]")))) (; ";")) (} "}")))) (expression_statement "pbVar24 = local_90;" (assignment_expression "pbVar24 = local_90" (identifier "pbVar24") (= "=") (identifier "local_90")) (; ";")) (expression_statement "local_8c = local_78;" (assignment_expression "local_8c = local_78" (identifier "local_8c") (= "=") (identifier "local_78")) (; ";")) (if_statement "if (*(int *)local_78 == *(int *)local_90) {\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }" (if "if") (parenthesized_expression "(*(int *)local_78 == *(int *)local_90)" (( "(") (binary_expression "*(int *)local_78 == *(int *)local_90" (pointer_expression "*(int *)local_78" (* "*") (cast_expression "(int *)local_78" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_78"))) (== "==") (pointer_expression "*(int *)local_90" (* "*") (cast_expression "(int *)local_90" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_90")))) () ")")) (compound_statement "{\n      do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);\n    }" ({ "{") (do_statement "do {\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      } while (*(int *)pbVar24 == *(int *)local_8c);" (do "do") (compound_statement "{\n        local_8c = local_8c + 4;\n        pbVar24 = pbVar24 + 4;\n      }" ({ "{") (expression_statement "local_8c = local_8c + 4;" (assignment_expression "local_8c = local_8c + 4" (identifier "local_8c") (= "=") (binary_expression "local_8c + 4" (identifier "local_8c") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pbVar24 = pbVar24 + 4;" (assignment_expression "pbVar24 = pbVar24 + 4" (identifier "pbVar24") (= "=") (binary_expression "pbVar24 + 4" (identifier "pbVar24") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*(int *)pbVar24 == *(int *)local_8c)" (( "(") (binary_expression "*(int *)pbVar24 == *(int *)local_8c" (pointer_expression "*(int *)pbVar24" (* "*") (cast_expression "(int *)pbVar24" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar24"))) (== "==") (pointer_expression "*(int *)local_8c" (* "*") (cast_expression "(int *)local_8c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_8c")))) () ")")) (; ";")) (} "}"))) (if_statement "if (*local_8c == *pbVar24) {\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }" (if "if") (parenthesized_expression "(*local_8c == *pbVar24)" (( "(") (binary_expression "*local_8c == *pbVar24" (pointer_expression "*local_8c" (* "*") (identifier "local_8c")) (== "==") (pointer_expression "*pbVar24" (* "*") (identifier "pbVar24"))) () ")")) (compound_statement "{\n      do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);\n    }" ({ "{") (do_statement "do {\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      } while (*pbVar24 == *local_8c);" (do "do") (compound_statement "{\n        local_8c = local_8c + 1;\n        pbVar24 = pbVar24 + 1;\n      }" ({ "{") (expression_statement "local_8c = local_8c + 1;" (assignment_expression "local_8c = local_8c + 1" (identifier "local_8c") (= "=") (binary_expression "local_8c + 1" (identifier "local_8c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" (identifier "pbVar24") (= "=") (binary_expression "pbVar24 + 1" (identifier "pbVar24") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pbVar24 == *local_8c)" (( "(") (binary_expression "*pbVar24 == *local_8c" (pointer_expression "*pbVar24" (* "*") (identifier "pbVar24")) (== "==") (pointer_expression "*local_8c" (* "*") (identifier "local_8c"))) () ")")) (; ";")) (} "}"))) (expression_statement "local_80 = (byte *)(DAT_0004d688 - 4);" (assignment_expression "local_80 = (byte *)(DAT_0004d688 - 4)" (identifier "local_80") (= "=") (cast_expression "(byte *)(DAT_0004d688 - 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0004d688 - 4)" (( "(") (binary_expression "DAT_0004d688 - 4" (identifier "DAT_0004d688") (- "-") (number_literal "4")) () ")")))) (; ";")) (expression_statement "iVar18 = DAT_0004d698;" (assignment_expression "iVar18 = DAT_0004d698" (identifier "iVar18") (= "=") (identifier "DAT_0004d698")) (; ";")) (if_statement "if ((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }" (if "if") (parenthesized_expression "((1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c))" (( "(") (binary_expression "(1 < local_80) &&\n       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)" (parenthesized_expression "(1 < local_80)" (( "(") (binary_expression "1 < local_80" (number_literal "1") (< "<") (identifier "local_80")) () ")")) (&& "&&") (parenthesized_expression "(local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)" (( "(") (binary_expression "local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=\n        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c" (binary_expression "local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24" (binary_expression "local_90 + (local_88 - *(byte *)(param_1 + 0x2a))" (identifier "local_90") (+ "+") (parenthesized_expression "(local_88 - *(byte *)(param_1 + 0x2a))" (( "(") (binary_expression "local_88 - *(byte *)(param_1 + 0x2a)" (identifier "local_88") (- "-") (pointer_expression "*(byte *)(param_1 + 0x2a)" (* "*") (cast_expression "(byte *)(param_1 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2a)" (( "(") (binary_expression "param_1 + 0x2a" (identifier "param_1") (+ "+") (number_literal "0x2a")) () ")"))))) () ")"))) (< "<") (identifier "pbVar24")) (!= "!=") (binary_expression "local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c" (binary_expression "local_78 + (uVar20 - *(byte *)(param_1 + 0x56))" (identifier "local_78") (+ "+") (parenthesized_expression "(uVar20 - *(byte *)(param_1 + 0x56))" (( "(") (binary_expression "uVar20 - *(byte *)(param_1 + 0x56)" (identifier "uVar20") (- "-") (pointer_expression "*(byte *)(param_1 + 0x56)" (* "*") (cast_expression "(byte *)(param_1 + 0x56)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x56)" (( "(") (binary_expression "param_1 + 0x56" (identifier "param_1") (+ "+") (number_literal "0x56")) () ")"))))) () ")"))) (< "<") (identifier "local_8c"))) () ")"))) () ")")) (compound_statement "{\n      local_8c = local_8c + -1;\n      pbVar24 = pbVar24 + -1;\n    }" ({ "{") (expression_statement "local_8c = local_8c + -1;" (assignment_expression "local_8c = local_8c + -1" (identifier "local_8c") (= "=") (binary_expression "local_8c + -1" (identifier "local_8c") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pbVar24 = pbVar24 + -1;" (assignment_expression "pbVar24 = pbVar24 + -1" (identifier "pbVar24") (= "=") (binary_expression "pbVar24 + -1" (identifier "pbVar24") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (} "}")))) (for_statement "for (; uVar8 = local_88, iVar30 = DAT_0004d698, pbVar24 != local_90; pbVar24 = pbVar24 + -1) {\n    while (pbVar24[-1] == 10) {\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }\n    local_8c = local_8c + -1;\n  }" (for "for") (( "(") (; ";") (comma_expression "uVar8 = local_88, iVar30 = DAT_0004d698, pbVar24 != local_90" (assignment_expression "uVar8 = local_88" (identifier "uVar8") (= "=") (identifier "local_88")) (, ",") (comma_expression "iVar30 = DAT_0004d698, pbVar24 != local_90" (assignment_expression "iVar30 = DAT_0004d698" (identifier "iVar30") (= "=") (identifier "DAT_0004d698")) (, ",") (binary_expression "pbVar24 != local_90" (identifier "pbVar24") (!= "!=") (identifier "local_90")))) (; ";") (assignment_expression "pbVar24 = pbVar24 + -1" (identifier "pbVar24") (= "=") (binary_expression "pbVar24 + -1" (identifier "pbVar24") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n    while (pbVar24[-1] == 10) {\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }\n    local_8c = local_8c + -1;\n  }" ({ "{") (while_statement "while (pbVar24[-1] == 10) {\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }" (while "while") (parenthesized_expression "(pbVar24[-1] == 10)" (( "(") (binary_expression "pbVar24[-1] == 10" (subscript_expression "pbVar24[-1]" (identifier "pbVar24") ([ "[") (number_literal "-1") (] "]")) (== "==") (number_literal "10")) () ")")) (compound_statement "{\n      if (iVar18 == 0) goto LAB_00019a73;\n      pbVar24 = pbVar24 + -1;\n      local_8c = local_8c + -1;\n      iVar18 = iVar18 + -1;\n      if (pbVar24 == local_90) goto LAB_00019a73;\n    }" ({ "{") (if_statement "if (iVar18 == 0) goto LAB_00019a73;" (if "if") (parenthesized_expression "(iVar18 == 0)" (( "(") (binary_expression "iVar18 == 0" (identifier "iVar18") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00019a73;" (goto "goto") (statement_identifier "LAB_00019a73") (; ";"))) (expression_statement "pbVar24 = pbVar24 + -1;" (assignment_expression "pbVar24 = pbVar24 + -1" (identifier "pbVar24") (= "=") (binary_expression "pbVar24 + -1" (identifier "pbVar24") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "local_8c = local_8c + -1;" (assignment_expression "local_8c = local_8c + -1" (identifier "local_8c") (= "=") (binary_expression "local_8c + -1" (identifier "local_8c") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + -1" (identifier "iVar18") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (pbVar24 == local_90) goto LAB_00019a73;" (if "if") (parenthesized_expression "(pbVar24 == local_90)" (( "(") (binary_expression "pbVar24 == local_90" (identifier "pbVar24") (== "==") (identifier "local_90")) () ")")) (goto_statement "goto LAB_00019a73;" (goto "goto") (statement_identifier "LAB_00019a73") (; ";"))) (} "}"))) (expression_statement "local_8c = local_8c + -1;" (assignment_expression "local_8c = local_8c + -1" (identifier "local_8c") (= "=") (binary_expression "local_8c + -1" (identifier "local_8c") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (labeled_statement "LAB_00019a73:\n  param_1[0x22] = (int)pbVar24;" (statement_identifier "LAB_00019a73") (: ":") (expression_statement "param_1[0x22] = (int)pbVar24;" (assignment_expression "param_1[0x22] = (int)pbVar24" (subscript_expression "param_1[0x22]" (identifier "param_1") ([ "[") (number_literal "0x22") (] "]")) (= "=") (cast_expression "(int)pbVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar24"))) (; ";"))) (expression_statement "param_1[0x4e] = (int)local_8c;" (assignment_expression "param_1[0x4e] = (int)local_8c" (subscript_expression "param_1[0x4e]" (identifier "param_1") ([ "[") (number_literal "0x4e") (] "]")) (= "=") (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c"))) (; ";")) (if_statement "if ((local_80 < 2) ||\n     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])) {\n    pbVar28 = pbVar24 + (local_88 - uVar20);\n    if (local_88 < uVar20) {\n      pbVar28 = pbVar24;\n    }\n    if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }\n    else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }\n    puVar27 = puVar16;\n    if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }\n    else {\n      iVar30 = iVar30 + 1;\n    }\n    for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }\n    local_70 = local_80 + ((int)puVar27 - (int)puVar16);\n  }" (if "if") (parenthesized_expression "((local_80 < 2) ||\n     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56]))" (( "(") (binary_expression "(local_80 < 2) ||\n     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])" (parenthesized_expression "(local_80 < 2)" (( "(") (binary_expression "local_80 < 2" (identifier "local_80") (< "<") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])" (( "(") (comma_expression "local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56]" (assignment_expression "local_70 = local_7c" (identifier "local_70") (= "=") (identifier "local_7c")) (, ",") (comma_expression "puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56]" (assignment_expression "puVar27 = local_84" (identifier "puVar27") (= "=") (identifier "local_84")) (, ",") (binary_expression "(char)param_1[0x2a] == (char)param_1[0x56]" (cast_expression "(char)param_1[0x2a]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_1[0x2a]" (identifier "param_1") ([ "[") (number_literal "0x2a") (] "]"))) (== "==") (cast_expression "(char)param_1[0x56]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_1[0x56]" (identifier "param_1") ([ "[") (number_literal "0x56") (] "]")))))) () ")"))) () ")")) (compound_statement "{\n    pbVar28 = pbVar24 + (local_88 - uVar20);\n    if (local_88 < uVar20) {\n      pbVar28 = pbVar24;\n    }\n    if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }\n    else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }\n    puVar27 = puVar16;\n    if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }\n    else {\n      iVar30 = iVar30 + 1;\n    }\n    for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }\n    local_70 = local_80 + ((int)puVar27 - (int)puVar16);\n  }" ({ "{") (expression_statement "pbVar28 = pbVar24 + (local_88 - uVar20);" (assignment_expression "pbVar28 = pbVar24 + (local_88 - uVar20)" (identifier "pbVar28") (= "=") (binary_expression "pbVar24 + (local_88 - uVar20)" (identifier "pbVar24") (+ "+") (parenthesized_expression "(local_88 - uVar20)" (( "(") (binary_expression "local_88 - uVar20" (identifier "local_88") (- "-") (identifier "uVar20")) () ")")))) (; ";")) (if_statement "if (local_88 < uVar20) {\n      pbVar28 = pbVar24;\n    }" (if "if") (parenthesized_expression "(local_88 < uVar20)" (( "(") (binary_expression "local_88 < uVar20" (identifier "local_88") (< "<") (identifier "uVar20")) () ")")) (compound_statement "{\n      pbVar28 = pbVar24;\n    }" ({ "{") (expression_statement "pbVar28 = pbVar24;" (assignment_expression "pbVar28 = pbVar24" (identifier "pbVar28") (= "=") (identifier "pbVar24")) (; ";")) (} "}"))) (if_statement "if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }\n    else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }" (if "if") (parenthesized_expression "(((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1)))" (( "(") (binary_expression "((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))" (parenthesized_expression "((uint *)pbVar28 == local_84)" (( "(") (binary_expression "(uint *)pbVar28 == local_84" (cast_expression "(uint *)pbVar28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar28")) (== "==") (identifier "local_84")) () ")")) (|| "||") (parenthesized_expression "(local_7c[-1] != *(byte *)((int)local_84 + -1))" (( "(") (binary_expression "local_7c[-1] != *(byte *)((int)local_84 + -1)" (subscript_expression "local_7c[-1]" (identifier "local_7c") ([ "[") (number_literal "-1") (] "]")) (!= "!=") (pointer_expression "*(byte *)((int)local_84 + -1)" (* "*") (cast_expression "(byte *)((int)local_84 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_84 + -1)" (( "(") (binary_expression "(int)local_84 + -1" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "-1")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n      local_80 = local_7c;\n      puVar16 = local_84;\n    }" ({ "{") (expression_statement "local_80 = local_7c;" (assignment_expression "local_80 = local_7c" (identifier "local_80") (= "=") (identifier "local_7c")) (; ";")) (expression_statement "puVar16 = local_84;" (assignment_expression "puVar16 = local_84" (identifier "puVar16") (= "=") (identifier "local_84")) (; ";")) (} "}")) (else_clause "else {\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }" (else "else") (compound_statement "{\n      puVar27 = local_84;\n      pbVar11 = local_7c;\n      do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);\n    }" ({ "{") (expression_statement "puVar27 = local_84;" (assignment_expression "puVar27 = local_84" (identifier "puVar27") (= "=") (identifier "local_84")) (; ";")) (expression_statement "pbVar11 = local_7c;" (assignment_expression "pbVar11 = local_7c" (identifier "pbVar11") (= "=") (identifier "local_7c")) (; ";")) (do_statement "do {\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      } while (*pbVar1 == *pbVar23);" (do "do") (compound_statement "{\n        pbVar26 = pbVar11 + -1;\n        puVar16 = (uint *)((int)puVar27 + -1);\n        local_80 = local_7c + ((int)pbVar28 - (int)local_84);\n        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;\n        pbVar23 = pbVar11 + -2;\n        pbVar1 = (byte *)((int)puVar27 + -2);\n        puVar27 = puVar16;\n        local_80 = pbVar26;\n        pbVar11 = pbVar26;\n      }" ({ "{") (expression_statement "pbVar26 = pbVar11 + -1;" (assignment_expression "pbVar26 = pbVar11 + -1" (identifier "pbVar26") (= "=") (binary_expression "pbVar11 + -1" (identifier "pbVar11") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar16 = (uint *)((int)puVar27 + -1);" (assignment_expression "puVar16 = (uint *)((int)puVar27 + -1)" (identifier "puVar16") (= "=") (cast_expression "(uint *)((int)puVar27 + -1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar27 + -1)" (( "(") (binary_expression "(int)puVar27 + -1" (cast_expression "(int)puVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar27")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "local_80 = local_7c + ((int)pbVar28 - (int)local_84);" (assignment_expression "local_80 = local_7c + ((int)pbVar28 - (int)local_84)" (identifier "local_80") (= "=") (binary_expression "local_7c + ((int)pbVar28 - (int)local_84)" (identifier "local_7c") (+ "+") (parenthesized_expression "((int)pbVar28 - (int)local_84)" (( "(") (binary_expression "(int)pbVar28 - (int)local_84" (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")) (- "-") (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84"))) () ")")))) (; ";")) (if_statement "if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;" (if "if") (parenthesized_expression "(pbVar26 == local_7c + ((int)pbVar28 - (int)local_84))" (( "(") (binary_expression "pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)" (identifier "pbVar26") (== "==") (binary_expression "local_7c + ((int)pbVar28 - (int)local_84)" (identifier "local_7c") (+ "+") (parenthesized_expression "((int)pbVar28 - (int)local_84)" (( "(") (binary_expression "(int)pbVar28 - (int)local_84" (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")) (- "-") (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84"))) () ")")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar23 = pbVar11 + -2;" (assignment_expression "pbVar23 = pbVar11 + -2" (identifier "pbVar23") (= "=") (binary_expression "pbVar11 + -2" (identifier "pbVar11") (+ "+") (number_literal "-2"))) (; ";")) (expression_statement "pbVar1 = (byte *)((int)puVar27 + -2);" (assignment_expression "pbVar1 = (byte *)((int)puVar27 + -2)" (identifier "pbVar1") (= "=") (cast_expression "(byte *)((int)puVar27 + -2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar27 + -2)" (( "(") (binary_expression "(int)puVar27 + -2" (cast_expression "(int)puVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar27")) (+ "+") (number_literal "-2")) () ")")))) (; ";")) (expression_statement "puVar27 = puVar16;" (assignment_expression "puVar27 = puVar16" (identifier "puVar27") (= "=") (identifier "puVar16")) (; ";")) (expression_statement "local_80 = pbVar26;" (assignment_expression "local_80 = pbVar26" (identifier "local_80") (= "=") (identifier "pbVar26")) (; ";")) (expression_statement "pbVar11 = pbVar26;" (assignment_expression "pbVar11 = pbVar26" (identifier "pbVar11") (= "=") (identifier "pbVar26")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pbVar1 == *pbVar23)" (( "(") (binary_expression "*pbVar1 == *pbVar23" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (== "==") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23"))) () ")")) (; ";")) (} "}")))) (expression_statement "puVar27 = puVar16;" (assignment_expression "puVar27 = puVar16" (identifier "puVar27") (= "=") (identifier "puVar16")) (; ";")) (if_statement "if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }\n    else {\n      iVar30 = iVar30 + 1;\n    }" (if "if") (parenthesized_expression "((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10))" (( "(") (binary_expression "(puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)" (parenthesized_expression "(puVar16 == (uint *)local_90)" (( "(") (binary_expression "puVar16 == (uint *)local_90" (identifier "puVar16") (== "==") (cast_expression "(uint *)local_90" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_90"))) () ")")) (|| "||") (parenthesized_expression "(*(byte *)((int)puVar16 + -1) == 10)" (( "(") (binary_expression "*(byte *)((int)puVar16 + -1) == 10" (pointer_expression "*(byte *)((int)puVar16 + -1)" (* "*") (cast_expression "(byte *)((int)puVar16 + -1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar16 + -1)" (( "(") (binary_expression "(int)puVar16 + -1" (cast_expression "(int)puVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar16")) (+ "+") (number_literal "-1")) () ")")))) (== "==") (number_literal "10")) () ")"))) () ")")) (compound_statement "{\n      if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }\n    }" ({ "{") (if_statement "if (local_78 != local_80) {\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }" (if "if") (parenthesized_expression "(local_78 != local_80)" (( "(") (binary_expression "local_78 != local_80" (identifier "local_78") (!= "!=") (identifier "local_80")) () ")")) (compound_statement "{\n        iVar30 = iVar30 + (uint)(local_80[-1] != 10);\n      }" ({ "{") (expression_statement "iVar30 = iVar30 + (uint)(local_80[-1] != 10);" (assignment_expression "iVar30 = iVar30 + (uint)(local_80[-1] != 10)" (identifier "iVar30") (= "=") (binary_expression "iVar30 + (uint)(local_80[-1] != 10)" (identifier "iVar30") (+ "+") (call_expression "(uint)(local_80[-1] != 10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_80[-1] != 10)" (( "(") (binary_expression "local_80[-1] != 10" (subscript_expression "local_80[-1]" (identifier "local_80") ([ "[") (number_literal "-1") (] "]")) (!= "!=") (number_literal "10")) () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar30 = iVar30 + 1;\n    }" (else "else") (compound_statement "{\n      iVar30 = iVar30 + 1;\n    }" ({ "{") (expression_statement "iVar30 = iVar30 + 1;" (assignment_expression "iVar30 = iVar30 + 1" (identifier "iVar30") (= "=") (binary_expression "iVar30 + 1" (identifier "iVar30") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (for_statement "for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }" (for "for") (( "(") (; ";") (parenthesized_expression "(puVar27 != local_84 && (iVar30 != 0))" (( "(") (binary_expression "puVar27 != local_84 && (iVar30 != 0)" (binary_expression "puVar27 != local_84" (identifier "puVar27") (!= "!=") (identifier "local_84")) (&& "&&") (parenthesized_expression "(iVar30 != 0)" (( "(") (binary_expression "iVar30 != 0" (identifier "iVar30") (!= "!=") (number_literal "0")) () ")"))) () ")")) (; ";") (assignment_expression "iVar30 = iVar30 + -1" (identifier "iVar30") (= "=") (binary_expression "iVar30 + -1" (identifier "iVar30") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n      do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);\n    }" ({ "{") (do_statement "do {\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      } while (bVar5 != 10);" (do "do") (compound_statement "{\n        pbVar28 = (byte *)((int)puVar27 + 1);\n        bVar5 = *(byte *)puVar27;\n        puVar27 = (uint *)pbVar28;\n      }" ({ "{") (expression_statement "pbVar28 = (byte *)((int)puVar27 + 1);" (assignment_expression "pbVar28 = (byte *)((int)puVar27 + 1)" (identifier "pbVar28") (= "=") (cast_expression "(byte *)((int)puVar27 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar27 + 1)" (( "(") (binary_expression "(int)puVar27 + 1" (cast_expression "(int)puVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar27")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar5 = *(byte *)puVar27;" (assignment_expression "bVar5 = *(byte *)puVar27" (identifier "bVar5") (= "=") (pointer_expression "*(byte *)puVar27" (* "*") (cast_expression "(byte *)puVar27" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar27")))) (; ";")) (expression_statement "puVar27 = (uint *)pbVar28;" (assignment_expression "puVar27 = (uint *)pbVar28" (identifier "puVar27") (= "=") (cast_expression "(uint *)pbVar28" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar28"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar5 != 10)" (( "(") (binary_expression "bVar5 != 10" (identifier "bVar5") (!= "!=") (number_literal "10")) () ")")) (; ";")) (} "}"))) (expression_statement "local_70 = local_80 + ((int)puVar27 - (int)puVar16);" (assignment_expression "local_70 = local_80 + ((int)puVar27 - (int)puVar16)" (identifier "local_70") (= "=") (binary_expression "local_80 + ((int)puVar27 - (int)puVar16)" (identifier "local_80") (+ "+") (parenthesized_expression "((int)puVar27 - (int)puVar16)" (( "(") (binary_expression "(int)puVar27 - (int)puVar16" (cast_expression "(int)puVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar27")) (- "-") (cast_expression "(int)puVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar16"))) () ")")))) (; ";")) (} "}"))) (expression_statement "bVar32 = DAT_0004d68c == '\0';" (assignment_expression "bVar32 = DAT_0004d68c == '\0'" (identifier "bVar32") (= "=") (binary_expression "DAT_0004d68c == '\0'" (identifier "DAT_0004d68c") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (expression_statement "param_1[0x24] = (int)puVar27;" (assignment_expression "param_1[0x24] = (int)puVar27" (subscript_expression "param_1[0x24]" (identifier "param_1") ([ "[") (number_literal "0x24") (] "]")) (= "=") (cast_expression "(int)puVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar27"))) (; ";")) (expression_statement "param_1[0x50] = (int)local_70;" (assignment_expression "param_1[0x50] = (int)local_70" (subscript_expression "param_1[0x50]" (identifier "param_1") ([ "[") (number_literal "0x50") (] "]")) (= "=") (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70"))) (; ";")) (if_statement "if ((((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||\n     (local_88 <= DAT_0004d69c)) {\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar8 = uVar8 >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    local_84 = (uint *)(uVar8 + 5);\n  }\n  else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;\n    if (uVar20 == 0) {\n      uVar20 = 1;\n    }\n    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    uVar21 = 1;\n    if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }\n    uVar21 = uVar8 + 5;\n    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }\n    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);\n  }" (if "if") (parenthesized_expression "((((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||\n     (local_88 <= DAT_0004d69c))" (( "(") (binary_expression "(((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||\n     (local_88 <= DAT_0004d69c)" (parenthesized_expression "(((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c))" (( "(") (binary_expression "((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)" (parenthesized_expression "((bVar32) || (DAT_0004d670 != 0))" (( "(") (binary_expression "(bVar32) || (DAT_0004d670 != 0)" (parenthesized_expression "(bVar32)" (( "(") (identifier "bVar32") () ")")) (|| "||") (parenthesized_expression "(DAT_0004d670 != 0)" (( "(") (binary_expression "DAT_0004d670 != 0" (identifier "DAT_0004d670") (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(0x1ffffffe < (int)DAT_0004d69c)" (( "(") (binary_expression "0x1ffffffe < (int)DAT_0004d69c" (number_literal "0x1ffffffe") (< "<") (cast_expression "(int)DAT_0004d69c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0004d69c"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_88 <= DAT_0004d69c)" (( "(") (binary_expression "local_88 <= DAT_0004d69c" (identifier "local_88") (<= "<=") (identifier "DAT_0004d69c")) () ")"))) () ")")) (compound_statement "{\n    local_74 = 0xffffffff;\n    local_88 = 0;\n    uVar8 = uVar8 >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    local_84 = (uint *)(uVar8 + 5);\n  }" ({ "{") (expression_statement "local_74 = 0xffffffff;" (assignment_expression "local_74 = 0xffffffff" (identifier "local_74") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" (identifier "local_88") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = uVar8 >> 5;" (assignment_expression "uVar8 = uVar8 >> 5" (identifier "uVar8") (= "=") (binary_expression "uVar8 >> 5" (identifier "uVar8") (>> ">>") (number_literal "5"))) (; ";")) (if_statement "if (uVar8 == 0) {\n      uVar8 = 1;\n    }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar8 = 1;\n    }" ({ "{") (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "local_84 = (uint *)(uVar8 + 5);" (assignment_expression "local_84 = (uint *)(uVar8 + 5)" (identifier "local_84") (= "=") (cast_expression "(uint *)(uVar8 + 5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + 5)" (( "(") (binary_expression "uVar8 + 5" (identifier "uVar8") (+ "+") (number_literal "5")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    local_74 = 0;\n    local_88 = 1;\n    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;\n    if (uVar20 == 0) {\n      uVar20 = 1;\n    }\n    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    uVar21 = 1;\n    if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }\n    uVar21 = uVar8 + 5;\n    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }\n    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);\n  }" (else "else") (compound_statement "{\n    local_74 = 0;\n    local_88 = 1;\n    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;\n    if (uVar20 == 0) {\n      uVar20 = 1;\n    }\n    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;\n    if (uVar8 == 0) {\n      uVar8 = 1;\n    }\n    uVar21 = 1;\n    if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }\n    uVar21 = uVar8 + 5;\n    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }\n    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);\n  }" ({ "{") (expression_statement "local_74 = 0;" (assignment_expression "local_74 = 0" (identifier "local_74") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_88 = 1;" (assignment_expression "local_88 = 1" (identifier "local_88") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;" (assignment_expression "uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5" (identifier "uVar20") (= "=") (binary_expression "(uint)((int)puVar27 - (int)pbVar24) >> 5" (call_expression "(uint)((int)puVar27 - (int)pbVar24)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)puVar27 - (int)pbVar24)" (( "(") (binary_expression "(int)puVar27 - (int)pbVar24" (cast_expression "(int)puVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar27")) (- "-") (cast_expression "(int)pbVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar24"))) () ")"))) (>> ">>") (number_literal "5"))) (; ";")) (if_statement "if (uVar20 == 0) {\n      uVar20 = 1;\n    }" (if "if") (parenthesized_expression "(uVar20 == 0)" (( "(") (binary_expression "uVar20 == 0" (identifier "uVar20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar20 = 1;\n    }" ({ "{") (expression_statement "uVar20 = 1;" (assignment_expression "uVar20 = 1" (identifier "uVar20") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;" (assignment_expression "uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5" (identifier "uVar8") (= "=") (binary_expression "(uint)((int)local_84 - (int)puVar27) >> 5" (call_expression "(uint)((int)local_84 - (int)puVar27)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)local_84 - (int)puVar27)" (( "(") (binary_expression "(int)local_84 - (int)puVar27" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (- "-") (cast_expression "(int)puVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar27"))) () ")"))) (>> ">>") (number_literal "5"))) (; ";")) (if_statement "if (uVar8 == 0) {\n      uVar8 = 1;\n    }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar8 = 1;\n    }" ({ "{") (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "uVar21 = 1;" (assignment_expression "uVar21 = 1" (identifier "uVar21") (= "=") (number_literal "1")) (; ";")) (if_statement "if (0 < (int)DAT_0004d69c) {\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }" (if "if") (parenthesized_expression "(0 < (int)DAT_0004d69c)" (( "(") (binary_expression "0 < (int)DAT_0004d69c" (number_literal "0") (< "<") (cast_expression "(int)DAT_0004d69c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0004d69c"))) () ")")) (compound_statement "{\n      do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);\n      local_74 = local_88 - 1;\n    }" ({ "{") (do_statement "do {\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);" (do "do") (compound_statement "{\n        local_88 = uVar21 * 2;\n        iVar18 = uVar21 * -2;\n        uVar21 = local_88;\n      }" ({ "{") (expression_statement "local_88 = uVar21 * 2;" (assignment_expression "local_88 = uVar21 * 2" (identifier "local_88") (= "=") (binary_expression "uVar21 * 2" (identifier "uVar21") (* "*") (number_literal "2"))) (; ";")) (expression_statement "iVar18 = uVar21 * -2;" (assignment_expression "iVar18 = uVar21 * -2" (identifier "iVar18") (= "=") (binary_expression "uVar21 * -2" (identifier "uVar21") (* "*") (number_literal "-2"))) (; ";")) (expression_statement "uVar21 = local_88;" (assignment_expression "uVar21 = local_88" (identifier "uVar21") (= "=") (identifier "local_88")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0)" (( "(") (binary_expression "SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0" (call_expression "SBORROW4(DAT_0004d69c,local_88)" (identifier "SBORROW4") (argument_list "(DAT_0004d69c,local_88)" (( "(") (identifier "DAT_0004d69c") (, ",") (identifier "local_88") () ")"))) (== "==") (binary_expression "(int)(DAT_0004d69c + iVar18) < 0" (cast_expression "(int)(DAT_0004d69c + iVar18)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(DAT_0004d69c + iVar18)" (( "(") (binary_expression "DAT_0004d69c + iVar18" (identifier "DAT_0004d69c") (+ "+") (identifier "iVar18")) () ")"))) (< "<") (number_literal "0"))) () ")")) (; ";")) (expression_statement "local_74 = local_88 - 1;" (assignment_expression "local_74 = local_88 - 1" (identifier "local_74") (= "=") (binary_expression "local_88 - 1" (identifier "local_88") (- "-") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar21 = uVar8 + 5;" (assignment_expression "uVar21 = uVar8 + 5" (identifier "uVar21") (= "=") (binary_expression "uVar8 + 5" (identifier "uVar8") (+ "+") (number_literal "5"))) (; ";")) (if_statement "if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {\n      uVar21 = DAT_0004d69c;\n    }" (if "if") (parenthesized_expression "((int)DAT_0004d69c <= (int)(uVar8 + 5))" (( "(") (binary_expression "(int)DAT_0004d69c <= (int)(uVar8 + 5)" (cast_expression "(int)DAT_0004d69c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0004d69c")) (<= "<=") (cast_expression "(int)(uVar8 + 5)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar8 + 5)" (( "(") (binary_expression "uVar8 + 5" (identifier "uVar8") (+ "+") (number_literal "5")) () ")")))) () ")")) (compound_statement "{\n      uVar21 = DAT_0004d69c;\n    }" ({ "{") (expression_statement "uVar21 = DAT_0004d69c;" (assignment_expression "uVar21 = DAT_0004d69c" (identifier "uVar21") (= "=") (identifier "DAT_0004d69c")) (; ";")) (} "}"))) (expression_statement "local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);" (assignment_expression "local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5)" (identifier "local_84") (= "=") (cast_expression "(uint *)(uVar21 + local_88 + uVar20 + 5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar21 + local_88 + uVar20 + 5)" (( "(") (binary_expression "uVar21 + local_88 + uVar20 + 5" (binary_expression "uVar21 + local_88 + uVar20" (binary_expression "uVar21 + local_88" (identifier "uVar21") (+ "+") (identifier "local_88")) (+ "+") (identifier "uVar20")) (+ "+") (number_literal "5")) () ")")))) (; ";")) (} "}")))) (expression_statement "puVar9 = (undefined4 *)FUN_00023c60((int)local_84 << 2);" (assignment_expression "puVar9 = (undefined4 *)FUN_00023c60((int)local_84 << 2)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)FUN_00023c60((int)local_84 << 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00023c60((int)local_84 << 2)" (identifier "FUN_00023c60") (argument_list "((int)local_84 << 2)" (( "(") (binary_expression "(int)local_84 << 2" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (<< "<<") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "pbVar24 = (byte *)param_1[0x22];" (assignment_expression "pbVar24 = (byte *)param_1[0x22]" (identifier "pbVar24") (= "=") (cast_expression "(byte *)param_1[0x22]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x22]" (identifier "param_1") ([ "[") (number_literal "0x22") (] "]")))) (; ";")) (if_statement "if (((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||\n     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)) {\n    if (local_90 == pbVar24) {\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }\n    uVar20 = (uint)local_84;\n    local_8c = (byte *)0;\n    pbVar28 = local_90;\n    do {\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    } while (pbVar28 != pbVar24);\n    local_6c = (int)local_70 - param_1[0x4e];\n    bVar32 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar20 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }\n  }\n  else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;\n    if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||\n     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28))" (( "(") (binary_expression "((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||\n     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)" (parenthesized_expression "((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24))" (( "(") (binary_expression "(DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)" (parenthesized_expression "(DAT_0004d68c == '\0')" (( "(") (binary_expression "DAT_0004d68c == '\0'" (identifier "DAT_0004d68c") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(puVar27 != (uint *)pbVar24)" (( "(") (binary_expression "puVar27 != (uint *)pbVar24" (identifier "puVar27") (!= "!=") (cast_expression "(uint *)pbVar24" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar24"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)" (( "(") (comma_expression "pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28" (assignment_expression "pbVar28 = (byte *)param_1[0x4e]" (identifier "pbVar28") (= "=") (cast_expression "(byte *)param_1[0x4e]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x4e]" (identifier "param_1") ([ "[") (number_literal "0x4e") (] "]")))) (, ",") (binary_expression "local_70 != pbVar28" (identifier "local_70") (!= "!=") (identifier "pbVar28"))) () ")"))) () ")")) (compound_statement "{\n    if (local_90 == pbVar24) {\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }\n    uVar20 = (uint)local_84;\n    local_8c = (byte *)0;\n    pbVar28 = local_90;\n    do {\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    } while (pbVar28 != pbVar24);\n    local_6c = (int)local_70 - param_1[0x4e];\n    bVar32 = local_88 != 0;\n    local_88 = (uint)local_8c;\n    if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {\n      local_88 = (uint)local_8c;\n    }\n    uVar20 = 0x20;\n    if (9 < (int)local_8c) {\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }\n  }" ({ "{") (if_statement "if (local_90 == pbVar24) {\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }" (if "if") (parenthesized_expression "(local_90 == pbVar24)" (( "(") (binary_expression "local_90 == pbVar24" (identifier "local_90") (== "==") (identifier "pbVar24")) () ")")) (compound_statement "{\n      pbVar28 = (byte *)param_1[0x4e];\n      goto LAB_0001a84f;\n    }" ({ "{") (expression_statement "pbVar28 = (byte *)param_1[0x4e];" (assignment_expression "pbVar28 = (byte *)param_1[0x4e]" (identifier "pbVar28") (= "=") (cast_expression "(byte *)param_1[0x4e]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x4e]" (identifier "param_1") ([ "[") (number_literal "0x4e") (] "]")))) (; ";")) (goto_statement "goto LAB_0001a84f;" (goto "goto") (statement_identifier "LAB_0001a84f") (; ";")) (} "}"))) (expression_statement "uVar20 = (uint)local_84;" (assignment_expression "uVar20 = (uint)local_84" (identifier "uVar20") (= "=") (cast_expression "(uint)local_84" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_84"))) (; ";")) (expression_statement "local_8c = (byte *)0;" (assignment_expression "local_8c = (byte *)0" (identifier "local_8c") (= "=") (cast_expression "(byte *)0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0"))) (; ";")) (expression_statement "pbVar28 = local_90;" (assignment_expression "pbVar28 = local_90" (identifier "pbVar28") (= "=") (identifier "local_90")) (; ";")) (do_statement "do {\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    } while (pbVar28 != pbVar24);" (do "do") (compound_statement "{\n      uVar8 = (uint)local_8c;\n      local_8c = (byte *)(uVar8 + 1);\n      local_84 = (uint *)uVar20;\n      if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }\n      puVar9[local_74 & uVar8] = pbVar28;\n      pbVar11 = pbVar28;\n      do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);\n      uVar20 = (uint)local_84;\n    }" ({ "{") (expression_statement "uVar8 = (uint)local_8c;" (assignment_expression "uVar8 = (uint)local_8c" (identifier "uVar8") (= "=") (cast_expression "(uint)local_8c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_8c"))) (; ";")) (expression_statement "local_8c = (byte *)(uVar8 + 1);" (assignment_expression "local_8c = (byte *)(uVar8 + 1)" (identifier "local_8c") (= "=") (cast_expression "(byte *)(uVar8 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar8 + 1)" (( "(") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_84 = (uint *)uVar20;" (assignment_expression "local_84 = (uint *)uVar20" (identifier "local_84") (= "=") (cast_expression "(uint *)uVar20" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar20"))) (; ";")) (if_statement "if ((local_74 & uVar8) == uVar20) {\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }" (if "if") (parenthesized_expression "((local_74 & uVar8) == uVar20)" (( "(") (binary_expression "(local_74 & uVar8) == uVar20" (parenthesized_expression "(local_74 & uVar8)" (( "(") (binary_expression "local_74 & uVar8" (identifier "local_74") (& "&") (identifier "uVar8")) () ")")) (== "==") (identifier "uVar20")) () ")")) (compound_statement "{\n        if (0xffffffe < uVar20) goto LAB_0001a9c0;\n        local_84 = (uint *)(uVar20 * 2);\n        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);\n      }" ({ "{") (if_statement "if (0xffffffe < uVar20) goto LAB_0001a9c0;" (if "if") (parenthesized_expression "(0xffffffe < uVar20)" (( "(") (binary_expression "0xffffffe < uVar20" (number_literal "0xffffffe") (< "<") (identifier "uVar20")) () ")")) (goto_statement "goto LAB_0001a9c0;" (goto "goto") (statement_identifier "LAB_0001a9c0") (; ";"))) (expression_statement "local_84 = (uint *)(uVar20 * 2);" (assignment_expression "local_84 = (uint *)(uVar20 * 2)" (identifier "local_84") (= "=") (cast_expression "(uint *)(uVar20 * 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar20 * 2)" (( "(") (binary_expression "uVar20 * 2" (identifier "uVar20") (* "*") (number_literal "2")) () ")")))) (; ";")) (expression_statement "puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);" (assignment_expression "puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00023ce0(puVar9,uVar20 * 8)" (identifier "FUN_00023ce0") (argument_list "(puVar9,uVar20 * 8)" (( "(") (identifier "puVar9") (, ",") (binary_expression "uVar20 * 8" (identifier "uVar20") (* "*") (number_literal "8")) () ")"))))) (; ";")) (} "}"))) (expression_statement "puVar9[local_74 & uVar8] = pbVar28;" (assignment_expression "puVar9[local_74 & uVar8] = pbVar28" (subscript_expression "puVar9[local_74 & uVar8]" (identifier "puVar9") ([ "[") (binary_expression "local_74 & uVar8" (identifier "local_74") (& "&") (identifier "uVar8")) (] "]")) (= "=") (identifier "pbVar28")) (; ";")) (expression_statement "pbVar11 = pbVar28;" (assignment_expression "pbVar11 = pbVar28" (identifier "pbVar11") (= "=") (identifier "pbVar28")) (; ";")) (do_statement "do {\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      } while (bVar5 != 10);" (do "do") (compound_statement "{\n        pbVar28 = pbVar11 + 1;\n        bVar5 = *pbVar11;\n        pbVar11 = pbVar28;\n      }" ({ "{") (expression_statement "pbVar28 = pbVar11 + 1;" (assignment_expression "pbVar28 = pbVar11 + 1" (identifier "pbVar28") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar5 = *pbVar11;" (assignment_expression "bVar5 = *pbVar11" (identifier "bVar5") (= "=") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11"))) (; ";")) (expression_statement "pbVar11 = pbVar28;" (assignment_expression "pbVar11 = pbVar28" (identifier "pbVar11") (= "=") (identifier "pbVar28")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar5 != 10)" (( "(") (binary_expression "bVar5 != 10" (identifier "bVar5") (!= "!=") (number_literal "10")) () ")")) (; ";")) (expression_statement "uVar20 = (uint)local_84;" (assignment_expression "uVar20 = (uint)local_84" (identifier "uVar20") (= "=") (cast_expression "(uint)local_84" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_84"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar28 != pbVar24)" (( "(") (binary_expression "pbVar28 != pbVar24" (identifier "pbVar28") (!= "!=") (identifier "pbVar24")) () ")")) (; ";")) (expression_statement "local_6c = (int)local_70 - param_1[0x4e];" (assignment_expression "local_6c = (int)local_70 - param_1[0x4e]" (identifier "local_6c") (= "=") (binary_expression "(int)local_70 - param_1[0x4e]" (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70")) (- "-") (subscript_expression "param_1[0x4e]" (identifier "param_1") ([ "[") (number_literal "0x4e") (] "]")))) (; ";")) (expression_statement "bVar32 = local_88 != 0;" (assignment_expression "bVar32 = local_88 != 0" (identifier "bVar32") (= "=") (binary_expression "local_88 != 0" (identifier "local_88") (!= "!=") (number_literal "0"))) (; ";")) (expression_statement "local_88 = (uint)local_8c;" (assignment_expression "local_88 = (uint)local_8c" (identifier "local_88") (= "=") (cast_expression "(uint)local_8c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_8c"))) (; ";")) (if_statement "if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {\n      local_88 = (uint)local_8c;\n    }" (if "if") (parenthesized_expression "((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c))" (( "(") (binary_expression "(bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)" (parenthesized_expression "(bVar32)" (( "(") (identifier "bVar32") () ")")) (&& "&&") (parenthesized_expression "(local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)" (( "(") (comma_expression "local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c" (assignment_expression "local_88 = DAT_0004d69c" (identifier "local_88") (= "=") (identifier "DAT_0004d69c")) (, ",") (binary_expression "(int)local_8c <= (int)DAT_0004d69c" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (<= "<=") (cast_expression "(int)DAT_0004d69c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0004d69c")))) () ")"))) () ")")) (compound_statement "{\n      local_88 = (uint)local_8c;\n    }" ({ "{") (expression_statement "local_88 = (uint)local_8c;" (assignment_expression "local_88 = (uint)local_8c" (identifier "local_88") (= "=") (cast_expression "(uint)local_8c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_8c"))) (; ";")) (} "}"))) (expression_statement "uVar20 = 0x20;" (assignment_expression "uVar20 = 0x20" (identifier "uVar20") (= "=") (number_literal "0x20")) (; ";")) (if_statement "if (9 < (int)local_8c) {\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }" (if "if") (parenthesized_expression "(9 < (int)local_8c)" (( "(") (binary_expression "9 < (int)local_8c" (number_literal "9") (< "<") (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c"))) () ")")) (compound_statement "{\n      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;\n    }" ({ "{") (expression_statement "uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;" (assignment_expression "uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8" (identifier "uVar20") (= "=") (binary_expression "(uint)((int)pbVar24 - (int)local_90) / uVar8" (call_expression "(uint)((int)pbVar24 - (int)local_90)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar24 - (int)local_90)" (( "(") (binary_expression "(int)pbVar24 - (int)local_90" (cast_expression "(int)pbVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar24")) (- "-") (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90"))) () ")"))) (/ "/") (identifier "uVar8"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;\n    if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }\n  }" (else "else") (compound_statement "{\nLAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;\n    if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }\n  }" ({ "{") (labeled_statement "LAB_0001a84f:\n    local_6c = (int)local_70 - (int)pbVar28;" (statement_identifier "LAB_0001a84f") (: ":") (expression_statement "local_6c = (int)local_70 - (int)pbVar28;" (assignment_expression "local_6c = (int)local_70 - (int)pbVar28" (identifier "local_6c") (= "=") (binary_expression "(int)local_70 - (int)pbVar28" (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70")) (- "-") (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")))) (; ";"))) (if_statement "if (local_88 == 0) {\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }\n    else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }" (if "if") (parenthesized_expression "(local_88 == 0)" (( "(") (binary_expression "local_88 == 0" (identifier "local_88") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_8c = (byte *)0x0;\n      uVar20 = 0x20;\n    }" ({ "{") (expression_statement "local_8c = (byte *)0x0;" (assignment_expression "local_8c = (byte *)0x0" (identifier "local_8c") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar20 = 0x20;" (assignment_expression "uVar20 = 0x20" (identifier "uVar20") (= "=") (number_literal "0x20")) (; ";")) (} "}")) (else_clause "else {\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }" (else "else") (compound_statement "{\n      local_88 = 0;\n      uVar20 = 0x20;\n      local_8c = (byte *)0x0;\n      if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }\n    }" ({ "{") (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" (identifier "local_88") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar20 = 0x20;" (assignment_expression "uVar20 = 0x20" (identifier "uVar20") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "local_8c = (byte *)0x0;" (assignment_expression "local_8c = (byte *)0x0" (identifier "local_8c") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if ((int)DAT_0004d69c < 1) {\n        local_88 = DAT_0004d69c;\n      }" (if "if") (parenthesized_expression "((int)DAT_0004d69c < 1)" (( "(") (binary_expression "(int)DAT_0004d69c < 1" (cast_expression "(int)DAT_0004d69c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0004d69c")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        local_88 = DAT_0004d69c;\n      }" ({ "{") (expression_statement "local_88 = DAT_0004d69c;" (assignment_expression "local_88 = DAT_0004d69c" (identifier "local_88") (= "=") (identifier "DAT_0004d69c")) (; ";")) (} "}"))) (} "}")))) (} "}")))) (expression_statement "uVar8 = (uint)((int)local_7c - (int)local_70) / uVar20;" (assignment_expression "uVar8 = (uint)((int)local_7c - (int)local_70) / uVar20" (identifier "uVar8") (= "=") (binary_expression "(uint)((int)local_7c - (int)local_70) / uVar20" (call_expression "(uint)((int)local_7c - (int)local_70)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)local_7c - (int)local_70)" (( "(") (binary_expression "(int)local_7c - (int)local_70" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (- "-") (cast_expression "(int)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_70"))) () ")"))) (/ "/") (identifier "uVar20"))) (; ";")) (if_statement "if (uVar8 == 0) {\n    uVar8 = 1;\n  }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar8 = 1;\n  }" ({ "{") (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }" (if "if") (parenthesized_expression "(0xe38e389 < uVar8)" (( "(") (binary_expression "0xe38e389 < uVar8" (number_literal "0xe38e389") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n    uVar8 = 0xe38e389;\n  }" ({ "{") (expression_statement "uVar8 = 0xe38e389;" (assignment_expression "uVar8 = 0xe38e389" (identifier "uVar8") (= "=") (number_literal "0xe38e389")) (; ";")) (} "}"))) (expression_statement "uVar21 = uVar8 + 5;" (assignment_expression "uVar21 = uVar8 + 5" (identifier "uVar21") (= "=") (binary_expression "uVar8 + 5" (identifier "uVar8") (+ "+") (number_literal "5"))) (; ";")) (if_statement "if ((int)DAT_0004d69c < (int)(uVar8 + 5)) {\n    uVar21 = DAT_0004d69c;\n  }" (if "if") (parenthesized_expression "((int)DAT_0004d69c < (int)(uVar8 + 5))" (( "(") (binary_expression "(int)DAT_0004d69c < (int)(uVar8 + 5)" (cast_expression "(int)DAT_0004d69c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0004d69c")) (< "<") (cast_expression "(int)(uVar8 + 5)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar8 + 5)" (( "(") (binary_expression "uVar8 + 5" (identifier "uVar8") (+ "+") (number_literal "5")) () ")")))) () ")")) (compound_statement "{\n    uVar21 = DAT_0004d69c;\n  }" ({ "{") (expression_statement "uVar21 = DAT_0004d69c;" (assignment_expression "uVar21 = DAT_0004d69c" (identifier "uVar21") (= "=") (identifier "DAT_0004d69c")) (; ";")) (} "}"))) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (if_statement "if (local_6c / uVar20 != 0) {\n    uVar8 = local_6c / uVar20;\n  }" (if "if") (parenthesized_expression "(local_6c / uVar20 != 0)" (( "(") (binary_expression "local_6c / uVar20 != 0" (binary_expression "local_6c / uVar20" (identifier "local_6c") (/ "/") (identifier "uVar20")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar8 = local_6c / uVar20;\n  }" ({ "{") (expression_statement "uVar8 = local_6c / uVar20;" (assignment_expression "uVar8 = local_6c / uVar20" (identifier "uVar8") (= "=") (binary_expression "local_6c / uVar20" (identifier "local_6c") (/ "/") (identifier "uVar20"))) (; ";")) (} "}"))) (if_statement "if (0xe38e389 < uVar8) {\n    uVar8 = 0xe38e389;\n  }" (if "if") (parenthesized_expression "(0xe38e389 < uVar8)" (( "(") (binary_expression "0xe38e389 < uVar8" (number_literal "0xe38e389") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n    uVar8 = 0xe38e389;\n  }" ({ "{") (expression_statement "uVar8 = 0xe38e389;" (assignment_expression "uVar8 = 0xe38e389" (identifier "uVar8") (= "=") (number_literal "0xe38e389")) (; ";")) (} "}"))) (expression_statement "uVar21 = local_88 + 5 + uVar8 + uVar21;" (assignment_expression "uVar21 = local_88 + 5 + uVar8 + uVar21" (identifier "uVar21") (= "=") (binary_expression "local_88 + 5 + uVar8 + uVar21" (binary_expression "local_88 + 5 + uVar8" (binary_expression "local_88 + 5" (identifier "local_88") (+ "+") (number_literal "5")) (+ "+") (identifier "uVar8")) (+ "+") (identifier "uVar21"))) (; ";")) (expression_statement "bVar32 = (int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21;" (assignment_expression "bVar32 = (int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21" (identifier "bVar32") (= "=") (binary_expression "(int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21" (binary_expression "(int)uVar21 < (int)local_88" (cast_expression "(int)uVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar21")) (< "<") (cast_expression "(int)local_88" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_88"))) (|| "||") (binary_expression "0x1ffffffe < uVar21" (number_literal "0x1ffffffe") (< "<") (identifier "uVar21")))) (; ";")) (if_statement "if (bVar32) goto LAB_0001a9c0;" (if "if") (parenthesized_expression "(bVar32)" (( "(") (identifier "bVar32") () ")")) (goto_statement "goto LAB_0001a9c0;" (goto "goto") (statement_identifier "LAB_0001a9c0") (; ";"))) (expression_statement "puVar10 = (undefined4 *)FUN_00023c60(uVar21 * 4);" (assignment_expression "puVar10 = (undefined4 *)FUN_00023c60(uVar21 * 4)" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)FUN_00023c60(uVar21 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00023c60(uVar21 * 4)" (identifier "FUN_00023c60") (argument_list "(uVar21 * 4)" (( "(") (binary_expression "uVar21 * 4" (identifier "uVar21") (* "*") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((byte *)local_88 == local_8c) {\n    if (local_88 != 0) goto LAB_00019df3;\n  }\n  else if (0 < (int)local_88) {\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }" (if "if") (parenthesized_expression "((byte *)local_88 == local_8c)" (( "(") (binary_expression "(byte *)local_88 == local_8c" (cast_expression "(byte *)local_88" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_88")) (== "==") (identifier "local_8c")) () ")")) (compound_statement "{\n    if (local_88 != 0) goto LAB_00019df3;\n  }" ({ "{") (if_statement "if (local_88 != 0) goto LAB_00019df3;" (if "if") (parenthesized_expression "(local_88 != 0)" (( "(") (binary_expression "local_88 != 0" (identifier "local_88") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00019df3;" (goto "goto") (statement_identifier "LAB_00019df3") (; ";"))) (} "}")) (else_clause "else if (0 < (int)local_88) {\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }" (else "else") (if_statement "if (0 < (int)local_88) {\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }" (if "if") (parenthesized_expression "(0 < (int)local_88)" (( "(") (binary_expression "0 < (int)local_88" (number_literal "0") (< "<") (cast_expression "(int)local_88" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_88"))) () ")")) (compound_statement "{\n    uVar8 = (int)local_8c - DAT_0004d69c;\n    uVar20 = uVar8;\n    do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);\n    puVar17 = puVar9;\n    puVar19 = puVar10;\n    do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);\nLAB_00019df3:\n    iVar18 = 0;\n    do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);\n  }" ({ "{") (expression_statement "uVar8 = (int)local_8c - DAT_0004d69c;" (assignment_expression "uVar8 = (int)local_8c - DAT_0004d69c" (identifier "uVar8") (= "=") (binary_expression "(int)local_8c - DAT_0004d69c" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (- "-") (identifier "DAT_0004d69c"))) (; ";")) (expression_statement "uVar20 = uVar8;" (assignment_expression "uVar20 = uVar8" (identifier "uVar20") (= "=") (identifier "uVar8")) (; ";")) (do_statement "do {\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    } while (local_88 + uVar8 != uVar20);" (do "do") (compound_statement "{\n      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];\n      uVar20 = uVar20 + 1;\n    }" ({ "{") (expression_statement "puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];" (assignment_expression "puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74]" (subscript_expression "puVar10[uVar20 - uVar8]" (identifier "puVar10") ([ "[") (binary_expression "uVar20 - uVar8" (identifier "uVar20") (- "-") (identifier "uVar8")) (] "]")) (= "=") (subscript_expression "puVar9[uVar20 & local_74]" (identifier "puVar9") ([ "[") (binary_expression "uVar20 & local_74" (identifier "uVar20") (& "&") (identifier "local_74")) (] "]"))) (; ";")) (expression_statement "uVar20 = uVar20 + 1;" (assignment_expression "uVar20 = uVar20 + 1" (identifier "uVar20") (= "=") (binary_expression "uVar20 + 1" (identifier "uVar20") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_88 + uVar8 != uVar20)" (( "(") (binary_expression "local_88 + uVar8 != uVar20" (binary_expression "local_88 + uVar8" (identifier "local_88") (+ "+") (identifier "uVar8")) (!= "!=") (identifier "uVar20")) () ")")) (; ";")) (expression_statement "puVar17 = puVar9;" (assignment_expression "puVar17 = puVar9" (identifier "puVar17") (= "=") (identifier "puVar9")) (; ";")) (expression_statement "puVar19 = puVar10;" (assignment_expression "puVar19 = puVar10" (identifier "puVar19") (= "=") (identifier "puVar10")) (; ";")) (do_statement "do {\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    } while (puVar10 + local_88 != puVar19);" (do "do") (compound_statement "{\n      uVar2 = *puVar19;\n      puVar19 = puVar19 + 1;\n      *puVar17 = uVar2;\n      puVar17 = puVar17 + 1;\n    }" ({ "{") (expression_statement "uVar2 = *puVar19;" (assignment_expression "uVar2 = *puVar19" (identifier "uVar2") (= "=") (pointer_expression "*puVar19" (* "*") (identifier "puVar19"))) (; ";")) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" (identifier "puVar19") (= "=") (binary_expression "puVar19 + 1" (identifier "puVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar17 = uVar2;" (assignment_expression "*puVar17 = uVar2" (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar17 = puVar17 + 1;" (assignment_expression "puVar17 = puVar17 + 1" (identifier "puVar17") (= "=") (binary_expression "puVar17 + 1" (identifier "puVar17") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar10 + local_88 != puVar19)" (( "(") (binary_expression "puVar10 + local_88 != puVar19" (binary_expression "puVar10 + local_88" (identifier "puVar10") (+ "+") (identifier "local_88")) (!= "!=") (identifier "puVar19")) () ")")) (; ";")) (labeled_statement "LAB_00019df3:\n    iVar18 = 0;" (statement_identifier "LAB_00019df3") (: ":") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";"))) (do_statement "do {\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    } while (iVar18 < (int)local_88);" (do "do") (compound_statement "{\n      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);\n      iVar18 = iVar18 + 1;\n    }" ({ "{") (expression_statement "puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);" (assignment_expression "puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90)" (subscript_expression "puVar10[iVar18]" (identifier "puVar10") ([ "[") (identifier "iVar18") (] "]")) (= "=") (binary_expression "local_78 + (puVar9[iVar18] - (int)local_90)" (identifier "local_78") (+ "+") (parenthesized_expression "(puVar9[iVar18] - (int)local_90)" (( "(") (binary_expression "puVar9[iVar18] - (int)local_90" (subscript_expression "puVar9[iVar18]" (identifier "puVar9") ([ "[") (identifier "iVar18") (] "]")) (- "-") (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90"))) () ")")))) (; ";")) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 < (int)local_88)" (( "(") (binary_expression "iVar18 < (int)local_88" (identifier "iVar18") (< "<") (cast_expression "(int)local_88" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_88"))) () ")")) (; ";")) (} "}"))))) (expression_statement "param_1[0x49] = (int)(puVar10 + local_88);" (assignment_expression "param_1[0x49] = (int)(puVar10 + local_88)" (subscript_expression "param_1[0x49]" (identifier "param_1") ([ "[") (number_literal "0x49") (] "]")) (= "=") (cast_expression "(int)(puVar10 + local_88)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar10 + local_88)" (( "(") (binary_expression "puVar10 + local_88" (identifier "puVar10") (+ "+") (identifier "local_88")) () ")")))) (; ";")) (expression_statement "param_1[0x1d] = (int)(puVar9 + local_88);" (assignment_expression "param_1[0x1d] = (int)(puVar9 + local_88)" (subscript_expression "param_1[0x1d]" (identifier "param_1") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (cast_expression "(int)(puVar9 + local_88)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(puVar9 + local_88)" (( "(") (binary_expression "puVar9 + local_88" (identifier "puVar9") (+ "+") (identifier "local_88")) () ")")))) (; ";")) (expression_statement "param_1[0x4a] = -local_88;" (assignment_expression "param_1[0x4a] = -local_88" (subscript_expression "param_1[0x4a]" (identifier "param_1") ([ "[") (number_literal "0x4a") (] "]")) (= "=") (unary_expression "-local_88" (- "-") (identifier "local_88"))) (; ";")) (expression_statement "param_1[0x1e] = -local_88;" (assignment_expression "param_1[0x1e] = -local_88" (subscript_expression "param_1[0x1e]" (identifier "param_1") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (unary_expression "-local_88" (- "-") (identifier "local_88"))) (; ";")) (expression_statement "param_1[0x21] = (int)local_84 - local_88;" (assignment_expression "param_1[0x21] = (int)local_84 - local_88" (subscript_expression "param_1[0x21]" (identifier "param_1") ([ "[") (number_literal "0x21") (] "]")) (= "=") (binary_expression "(int)local_84 - local_88" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (- "-") (identifier "local_88"))) (; ";")) (expression_statement "uVar20 = ((int)local_84 - local_88) + 1 + (uVar21 - local_88);" (assignment_expression "uVar20 = ((int)local_84 - local_88) + 1 + (uVar21 - local_88)" (identifier "uVar20") (= "=") (binary_expression "((int)local_84 - local_88) + 1 + (uVar21 - local_88)" (binary_expression "((int)local_84 - local_88) + 1" (parenthesized_expression "((int)local_84 - local_88)" (( "(") (binary_expression "(int)local_84 - local_88" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (- "-") (identifier "local_88")) () ")")) (+ "+") (number_literal "1")) (+ "+") (parenthesized_expression "(uVar21 - local_88)" (( "(") (binary_expression "uVar21 - local_88" (identifier "uVar21") (- "-") (identifier "local_88")) () ")")))) (; ";")) (expression_statement "param_1[0x4d] = uVar21 - local_88;" (assignment_expression "param_1[0x4d] = uVar21 - local_88" (subscript_expression "param_1[0x4d]" (identifier "param_1") ([ "[") (number_literal "0x4d") (] "]")) (= "=") (binary_expression "uVar21 - local_88" (identifier "uVar21") (- "-") (identifier "local_88"))) (; ";")) (expression_statement "DAT_0004d388 = uVar20;" (assignment_expression "DAT_0004d388 = uVar20" (identifier "DAT_0004d388") (= "=") (identifier "uVar20")) (; ";")) (expression_statement "param_1[0x4f] = (int)local_8c;" (assignment_expression "param_1[0x4f] = (int)local_8c" (subscript_expression "param_1[0x4f]" (identifier "param_1") ([ "[") (number_literal "0x4f") (] "]")) (= "=") (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c"))) (; ";")) (expression_statement "param_1[0x23] = (int)local_8c;" (assignment_expression "param_1[0x23] = (int)local_8c" (subscript_expression "param_1[0x23]" (identifier "param_1") ([ "[") (number_literal "0x23") (] "]")) (= "=") (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c"))) (; ";")) (if_statement "if (uVar20 < 0x7ffffff) {\n    DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);\n    DAT_0004d38c = 1;\n    if ((uint)((int)DAT_0004d388 / 3) < 0x201) {\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }\n    else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }\n    iVar18 = FUN_0001d920(iVar18);\n    DAT_0004d398 = iVar18 + 4;\n    local_5c = param_1 + 0x1a;\n    do {\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    } while( true );\n  }" (if "if") (parenthesized_expression "(uVar20 < 0x7ffffff)" (( "(") (binary_expression "uVar20 < 0x7ffffff" (identifier "uVar20") (< "<") (number_literal "0x7ffffff")) () ")")) (compound_statement "{\n    DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);\n    DAT_0004d38c = 1;\n    if ((uint)((int)DAT_0004d388 / 3) < 0x201) {\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }\n    else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }\n    iVar18 = FUN_0001d920(iVar18);\n    DAT_0004d398 = iVar18 + 4;\n    local_5c = param_1 + 0x1a;\n    do {\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    } while( true );\n  }" ({ "{") (expression_statement "DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);" (assignment_expression "DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10)" (identifier "DAT_0004d390") (= "=") (cast_expression "(void *)FUN_00023c60(uVar20 * 0x10)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00023c60(uVar20 * 0x10)" (identifier "FUN_00023c60") (argument_list "(uVar20 * 0x10)" (( "(") (binary_expression "uVar20 * 0x10" (identifier "uVar20") (* "*") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "DAT_0004d38c = 1;" (assignment_expression "DAT_0004d38c = 1" (identifier "DAT_0004d38c") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((uint)((int)DAT_0004d388 / 3) < 0x201) {\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }\n    else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }" (if "if") (parenthesized_expression "((uint)((int)DAT_0004d388 / 3) < 0x201)" (( "(") (binary_expression "(uint)((int)DAT_0004d388 / 3) < 0x201" (call_expression "(uint)((int)DAT_0004d388 / 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)DAT_0004d388 / 3)" (( "(") (binary_expression "(int)DAT_0004d388 / 3" (cast_expression "(int)DAT_0004d388" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0004d388")) (/ "/") (number_literal "3")) () ")"))) (< "<") (number_literal "0x201")) () ")")) (compound_statement "{\n      DAT_0004d394 = 0x1fd;\n      iVar18 = 0x7f8;\n    }" ({ "{") (expression_statement "DAT_0004d394 = 0x1fd;" (assignment_expression "DAT_0004d394 = 0x1fd" (identifier "DAT_0004d394") (= "=") (number_literal "0x1fd")) (; ";")) (expression_statement "iVar18 = 0x7f8;" (assignment_expression "iVar18 = 0x7f8" (identifier "iVar18") (= "=") (number_literal "0x7f8")) (; ";")) (} "}")) (else_clause "else {\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }" (else "else") (compound_statement "{\n      iVar18 = 9;\n      do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));\n      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];\n      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;\n      iVar18 = DAT_0004d394 * 4 + 4;\n    }" ({ "{") (expression_statement "iVar18 = 9;" (assignment_expression "iVar18 = 9" (identifier "iVar18") (= "=") (number_literal "9")) (; ";")) (do_statement "do {\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));" (do "do") (compound_statement "{\n        iVar30 = iVar18;\n        iVar18 = iVar30 + 1;\n        uVar20 = 1 << ((byte)iVar18 & 0x1f);\n      }" ({ "{") (expression_statement "iVar30 = iVar18;" (assignment_expression "iVar30 = iVar18" (identifier "iVar30") (= "=") (identifier "iVar18")) (; ";")) (expression_statement "iVar18 = iVar30 + 1;" (assignment_expression "iVar18 = iVar30 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar30 + 1" (identifier "iVar30") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar20 = 1 << ((byte)iVar18 & 0x1f);" (assignment_expression "uVar20 = 1 << ((byte)iVar18 & 0x1f)" (identifier "uVar20") (= "=") (binary_expression "1 << ((byte)iVar18 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)iVar18 & 0x1f)" (( "(") (binary_expression "(byte)iVar18 & 0x1f" (cast_expression "(byte)iVar18" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "iVar18")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar20 < (uint)((int)DAT_0004d388 / 3))" (( "(") (binary_expression "uVar20 < (uint)((int)DAT_0004d388 / 3)" (identifier "uVar20") (< "<") (call_expression "(uint)((int)DAT_0004d388 / 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)DAT_0004d388 / 3)" (( "(") (binary_expression "(int)DAT_0004d388 / 3" (cast_expression "(int)DAT_0004d388" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0004d388")) (/ "/") (number_literal "3")) () ")")))) () ")")) (; ";")) (expression_statement "DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];" (assignment_expression "DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30]" (identifier "DAT_0004d394") (= "=") (binary_expression "uVar20 - (byte)(&UNK_0003e181)[iVar30]" (identifier "uVar20") (- "-") (subscript_expression "(byte)(&UNK_0003e181)[iVar30]" (call_expression "(byte)(&UNK_0003e181)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(&UNK_0003e181)" (( "(") (pointer_expression "&UNK_0003e181" (& "&") (identifier "UNK_0003e181")) () ")"))) ([ "[") (identifier "iVar30") (] "]")))) (; ";")) (if_statement "if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;" (if "if") (parenthesized_expression "(0x1ffffffe < DAT_0004d394)" (( "(") (binary_expression "0x1ffffffe < DAT_0004d394" (number_literal "0x1ffffffe") (< "<") (identifier "DAT_0004d394")) () ")")) (goto_statement "goto LAB_0001a9c0;" (goto "goto") (statement_identifier "LAB_0001a9c0") (; ";"))) (expression_statement "iVar18 = DAT_0004d394 * 4 + 4;" (assignment_expression "iVar18 = DAT_0004d394 * 4 + 4" (identifier "iVar18") (= "=") (binary_expression "DAT_0004d394 * 4 + 4" (binary_expression "DAT_0004d394 * 4" (identifier "DAT_0004d394") (* "*") (number_literal "4")) (+ "+") (number_literal "4"))) (; ";")) (} "}")))) (expression_statement "iVar18 = FUN_0001d920(iVar18);" (assignment_expression "iVar18 = FUN_0001d920(iVar18)" (identifier "iVar18") (= "=") (call_expression "FUN_0001d920(iVar18)" (identifier "FUN_0001d920") (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")")))) (; ";")) (expression_statement "DAT_0004d398 = iVar18 + 4;" (assignment_expression "DAT_0004d398 = iVar18 + 4" (identifier "DAT_0004d398") (= "=") (binary_expression "iVar18 + 4" (identifier "iVar18") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "local_5c = param_1 + 0x1a;" (assignment_expression "local_5c = param_1 + 0x1a" (identifier "local_5c") (= "=") (binary_expression "param_1 + 0x1a" (identifier "param_1") (+ "+") (number_literal "0x1a"))) (; ";")) (do_statement "do {\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    } while( true );" (do "do") (compound_statement "{\n      local_80 = (byte *)local_5c[3];\n      iVar18 = local_5c[4];\n      pbVar24 = (byte *)local_5c[8];\n      local_6c = local_5c[7];\n      local_68 = FUN_00023c60(local_6c << 2);\n      cVar4 = DAT_0004d68d;\n      uVar20 = DAT_0004d638;\n      pbVar28 = (byte *)local_5c[10];\n      local_7c = (byte *)DAT_0004d390;\n      local_64 = DAT_0004d38c;\n      local_60 = DAT_0004d388;\n      pbVar11 = (byte *)(local_5c[2] + *local_5c);\n      bVar33 = DAT_0004d638 == 0;\n      if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }\n      local_8c = (byte *)0x0;\nLAB_0001a520:\n      local_5c[5] = (int)local_8c;\n      iVar30 = 0;\n      while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }\n      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }\nLAB_0001a618:\n      local_5c[3] = (int)local_80;\n      piVar15 = local_5c + 0x2c;\n      DAT_0004d390 = local_7c;\n      local_5c[6] = (int)local_8c;\n      local_5c[7] = local_6c;\n      local_5c[0xb] = local_68;\n      DAT_0004d388 = local_60;\n      DAT_0004d38c = local_64;\n      local_5c = piVar15;\n      if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }\n    }" ({ "{") (expression_statement "local_80 = (byte *)local_5c[3];" (assignment_expression "local_80 = (byte *)local_5c[3]" (identifier "local_80") (= "=") (cast_expression "(byte *)local_5c[3]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_5c[3]" (identifier "local_5c") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "iVar18 = local_5c[4];" (assignment_expression "iVar18 = local_5c[4]" (identifier "iVar18") (= "=") (subscript_expression "local_5c[4]" (identifier "local_5c") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "pbVar24 = (byte *)local_5c[8];" (assignment_expression "pbVar24 = (byte *)local_5c[8]" (identifier "pbVar24") (= "=") (cast_expression "(byte *)local_5c[8]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_5c[8]" (identifier "local_5c") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "local_6c = local_5c[7];" (assignment_expression "local_6c = local_5c[7]" (identifier "local_6c") (= "=") (subscript_expression "local_5c[7]" (identifier "local_5c") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "local_68 = FUN_00023c60(local_6c << 2);" (assignment_expression "local_68 = FUN_00023c60(local_6c << 2)" (identifier "local_68") (= "=") (call_expression "FUN_00023c60(local_6c << 2)" (identifier "FUN_00023c60") (argument_list "(local_6c << 2)" (( "(") (binary_expression "local_6c << 2" (identifier "local_6c") (<< "<<") (number_literal "2")) () ")")))) (; ";")) (expression_statement "cVar4 = DAT_0004d68d;" (assignment_expression "cVar4 = DAT_0004d68d" (identifier "cVar4") (= "=") (identifier "DAT_0004d68d")) (; ";")) (expression_statement "uVar20 = DAT_0004d638;" (assignment_expression "uVar20 = DAT_0004d638" (identifier "uVar20") (= "=") (identifier "DAT_0004d638")) (; ";")) (expression_statement "pbVar28 = (byte *)local_5c[10];" (assignment_expression "pbVar28 = (byte *)local_5c[10]" (identifier "pbVar28") (= "=") (cast_expression "(byte *)local_5c[10]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_5c[10]" (identifier "local_5c") ([ "[") (number_literal "10") (] "]")))) (; ";")) (expression_statement "local_7c = (byte *)DAT_0004d390;" (assignment_expression "local_7c = (byte *)DAT_0004d390" (identifier "local_7c") (= "=") (cast_expression "(byte *)DAT_0004d390" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_0004d390"))) (; ";")) (expression_statement "local_64 = DAT_0004d38c;" (assignment_expression "local_64 = DAT_0004d38c" (identifier "local_64") (= "=") (identifier "DAT_0004d38c")) (; ";")) (expression_statement "local_60 = DAT_0004d388;" (assignment_expression "local_60 = DAT_0004d388" (identifier "local_60") (= "=") (identifier "DAT_0004d388")) (; ";")) (expression_statement "pbVar11 = (byte *)(local_5c[2] + *local_5c);" (assignment_expression "pbVar11 = (byte *)(local_5c[2] + *local_5c)" (identifier "pbVar11") (= "=") (cast_expression "(byte *)(local_5c[2] + *local_5c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_5c[2] + *local_5c)" (( "(") (binary_expression "local_5c[2] + *local_5c" (subscript_expression "local_5c[2]" (identifier "local_5c") ([ "[") (number_literal "2") (] "]")) (+ "+") (pointer_expression "*local_5c" (* "*") (identifier "local_5c"))) () ")")))) (; ";")) (expression_statement "bVar33 = DAT_0004d638 == 0;" (assignment_expression "bVar33 = DAT_0004d638 == 0" (identifier "bVar33") (= "=") (binary_expression "DAT_0004d638 == 0" (identifier "DAT_0004d638") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (pbVar24 < pbVar28) {\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }" (if "if") (parenthesized_expression "(pbVar24 < pbVar28)" (( "(") (binary_expression "pbVar24 < pbVar28" (identifier "pbVar24") (< "<") (identifier "pbVar28")) () ")")) (compound_statement "{\n        local_8c = (byte *)0x0;\n        local_90 = pbVar24;\n        do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );\n      }" ({ "{") (expression_statement "local_8c = (byte *)0x0;" (assignment_expression "local_8c = (byte *)0x0" (identifier "local_8c") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_90 = pbVar24;" (assignment_expression "local_90 = pbVar24" (identifier "local_90") (= "=") (identifier "pbVar24")) (; ";")) (do_statement "do {\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        } while( true );" (do "do") (compound_statement "{\n          uVar21 = DAT_0004d650;\n          bVar5 = *local_90;\n          uVar8 = (uint)bVar5;\n          pbVar24 = local_90 + 1;\n          if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }\nLAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);\n          local_84 = puVar27;\n          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }\n          uVar8 = *local_84;\n          local_78 = (byte *)uVar8;\njoined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }\n          if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }\n          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);\n          *puVar27 = uVar8;\n          puVar27[1] = uVar29;\n          puVar27[2] = (uint)local_90;\n          puVar27[3] = (uint)pbVar26;\n          *local_84 = local_64;\n          local_78 = (byte *)local_64;\n          local_64 = local_64 + 1;\njoined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }\n          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;\n          *(byte **)(local_68 + (int)local_8c * 4) = local_78;\n          local_8c = (byte *)((int)local_8c + 1);\n          local_90 = pbVar24;\n          if (pbVar28 <= pbVar24) goto LAB_0001a520;\n        }" ({ "{") (expression_statement "uVar21 = DAT_0004d650;" (assignment_expression "uVar21 = DAT_0004d650" (identifier "uVar21") (= "=") (identifier "DAT_0004d650")) (; ";")) (expression_statement "bVar5 = *local_90;" (assignment_expression "bVar5 = *local_90" (identifier "bVar5") (= "=") (pointer_expression "*local_90" (* "*") (identifier "local_90"))) (; ";")) (expression_statement "uVar8 = (uint)bVar5;" (assignment_expression "uVar8 = (uint)bVar5" (identifier "uVar8") (= "=") (cast_expression "(uint)bVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar5"))) (; ";")) (expression_statement "pbVar24 = local_90 + 1;" (assignment_expression "pbVar24 = local_90 + 1" (identifier "pbVar24") (= "=") (binary_expression "local_90 + 1" (identifier "local_90") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar20 == 4) {\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }\n          else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }" (if "if") (parenthesized_expression "(uVar20 == 4)" (( "(") (binary_expression "uVar20 == 4" (identifier "uVar20") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n            if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }\nLAB_0001a500:\n            pbVar26 = (byte *)0x0;\n            uVar29 = 0;\n          }" ({ "{") (if_statement "if (bVar5 != 10) {\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }" (if "if") (parenthesized_expression "(bVar5 != 10)" (( "(") (binary_expression "bVar5 != 10" (identifier "bVar5") (!= "!=") (number_literal "10")) () ")")) (compound_statement "{\n              ppuVar12 = __ctype_b_loc();\n              uVar29 = 0;\n              puVar3 = *ppuVar12;\n              do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);\n              goto LAB_0001a0a0;\n            }" ({ "{") (expression_statement "ppuVar12 = __ctype_b_loc();" (assignment_expression "ppuVar12 = __ctype_b_loc()" (identifier "ppuVar12") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" (identifier "uVar29") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = *ppuVar12;" (assignment_expression "puVar3 = *ppuVar12" (identifier "puVar3") (= "=") (pointer_expression "*ppuVar12" (* "*") (identifier "ppuVar12"))) (; ";")) (do_statement "do {\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              } while (bVar5 != 10);" (do "do") (compound_statement "{\n                pbVar26 = pbVar24;\n                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }\n                uVar21 = uVar8;\n                if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }\n                bVar5 = *pbVar24;\n                uVar8 = (uint)bVar5;\n                pbVar24 = pbVar24 + 1;\n                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;\n              }" ({ "{") (expression_statement "pbVar26 = pbVar24;" (assignment_expression "pbVar26 = pbVar24" (identifier "pbVar26") (= "=") (identifier "pbVar24")) (; ";")) (if_statement "if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }" (if "if") (parenthesized_expression "((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20)" (( "(") (binary_expression "*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)puVar3 + uVar8 * 2 + 1)" (* "*") (cast_expression "(byte *)((int)puVar3 + uVar8 * 2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar3 + uVar8 * 2 + 1)" (( "(") (binary_expression "(int)puVar3 + uVar8 * 2 + 1" (binary_expression "(int)puVar3 + uVar8 * 2" (cast_expression "(int)puVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar3")) (+ "+") (binary_expression "uVar8 * 2" (identifier "uVar8") (* "*") (number_literal "2"))) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;\n                }" ({ "{") (do_statement "do {\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);" (do "do") (compound_statement "{\n                    pbVar24 = pbVar26 + 1;\n                    if (*pbVar26 == 10) goto LAB_0001a0a0;\n                    uVar8 = (uint)*pbVar26;\n                    pbVar26 = pbVar24;\n                  }" ({ "{") (expression_statement "pbVar24 = pbVar26 + 1;" (assignment_expression "pbVar24 = pbVar26 + 1" (identifier "pbVar24") (= "=") (binary_expression "pbVar26 + 1" (identifier "pbVar26") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*pbVar26 == 10) goto LAB_0001a0a0;" (if "if") (parenthesized_expression "(*pbVar26 == 10)" (( "(") (binary_expression "*pbVar26 == 10" (pointer_expression "*pbVar26" (* "*") (identifier "pbVar26")) (== "==") (number_literal "10")) () ")")) (goto_statement "goto LAB_0001a0a0;" (goto "goto") (statement_identifier "LAB_0001a0a0") (; ";"))) (expression_statement "uVar8 = (uint)*pbVar26;" (assignment_expression "uVar8 = (uint)*pbVar26" (identifier "uVar8") (= "=") (binary_expression "(uint)*pbVar26" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar26"))) (; ";")) (expression_statement "pbVar26 = pbVar24;" (assignment_expression "pbVar26 = pbVar24" (identifier "pbVar26") (= "=") (identifier "pbVar24")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20)" (( "(") (binary_expression "*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)puVar3 + uVar8 * 2 + 1)" (* "*") (cast_expression "(byte *)((int)puVar3 + uVar8 * 2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar3 + uVar8 * 2 + 1)" (( "(") (binary_expression "(int)puVar3 + uVar8 * 2 + 1" (binary_expression "(int)puVar3 + uVar8 * 2" (cast_expression "(int)puVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar3")) (+ "+") (binary_expression "uVar8 * 2" (identifier "uVar8") (* "*") (number_literal "2"))) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;" (assignment_expression "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20" (identifier "uVar29") (= "=") (binary_expression "(uVar29 << 7 | uVar29 >> 0x19) + 0x20" (parenthesized_expression "(uVar29 << 7 | uVar29 >> 0x19)" (( "(") (binary_expression "uVar29 << 7 | uVar29 >> 0x19" (binary_expression "uVar29 << 7" (identifier "uVar29") (<< "<<") (number_literal "7")) (| "|") (binary_expression "uVar29 >> 0x19" (identifier "uVar29") (>> ">>") (number_literal "0x19"))) () ")")) (+ "+") (number_literal "0x20"))) (; ";")) (} "}"))) (expression_statement "uVar21 = uVar8;" (assignment_expression "uVar21 = uVar8" (identifier "uVar21") (= "=") (identifier "uVar8")) (; ";")) (if_statement "if (cVar4 != '\0') {\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }" (if "if") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar21 = (*pp_Var13)[uVar8];\n                }" ({ "{") (expression_statement "pp_Var13 = __ctype_tolower_loc();" (assignment_expression "pp_Var13 = __ctype_tolower_loc()" (identifier "pp_Var13") (= "=") (call_expression "__ctype_tolower_loc()" (identifier "__ctype_tolower_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar21 = (*pp_Var13)[uVar8];" (assignment_expression "uVar21 = (*pp_Var13)[uVar8]" (identifier "uVar21") (= "=") (subscript_expression "(*pp_Var13)[uVar8]" (parenthesized_expression "(*pp_Var13)" (( "(") (pointer_expression "*pp_Var13" (* "*") (identifier "pp_Var13")) () ")")) ([ "[") (identifier "uVar8") (] "]"))) (; ";")) (} "}"))) (expression_statement "bVar5 = *pbVar24;" (assignment_expression "bVar5 = *pbVar24" (identifier "bVar5") (= "=") (pointer_expression "*pbVar24" (* "*") (identifier "pbVar24"))) (; ";")) (expression_statement "uVar8 = (uint)bVar5;" (assignment_expression "uVar8 = (uint)bVar5" (identifier "uVar8") (= "=") (cast_expression "(uint)bVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar5"))) (; ";")) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" (identifier "pbVar24") (= "=") (binary_expression "pbVar24 + 1" (identifier "pbVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;" (assignment_expression "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21" (identifier "uVar29") (= "=") (binary_expression "(uVar29 << 7 | uVar29 >> 0x19) + uVar21" (parenthesized_expression "(uVar29 << 7 | uVar29 >> 0x19)" (( "(") (binary_expression "uVar29 << 7 | uVar29 >> 0x19" (binary_expression "uVar29 << 7" (identifier "uVar29") (<< "<<") (number_literal "7")) (| "|") (binary_expression "uVar29 >> 0x19" (identifier "uVar29") (>> ">>") (number_literal "0x19"))) () ")")) (+ "+") (identifier "uVar21"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar5 != 10)" (( "(") (binary_expression "bVar5 != 10" (identifier "bVar5") (!= "!=") (number_literal "10")) () ")")) (; ";")) (goto_statement "goto LAB_0001a0a0;" (goto "goto") (statement_identifier "LAB_0001a0a0") (; ";")) (} "}"))) (labeled_statement "LAB_0001a500:\n            pbVar26 = (byte *)0x0;" (statement_identifier "LAB_0001a500") (: ":") (expression_statement "pbVar26 = (byte *)0x0;" (assignment_expression "pbVar26 = (byte *)0x0" (identifier "pbVar26") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" (identifier "uVar29") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }" (else "else") (compound_statement "{\n            if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }\nLAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);\n          }" ({ "{") (if_statement "if (uVar20 < 5) {\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }\n            else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }" (if "if") (parenthesized_expression "(uVar20 < 5)" (( "(") (binary_expression "uVar20 < 5" (identifier "uVar20") (< "<") (number_literal "5")) () ")")) (compound_statement "{\n              if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }\n            }" ({ "{") (if_statement "if (uVar20 == 0) {\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }\n              else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }" (if "if") (parenthesized_expression "(uVar20 == 0)" (( "(") (binary_expression "uVar20 == 0" (identifier "uVar20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n              }" ({ "{") (labeled_statement "LAB_0001a398:\n                if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }" (statement_identifier "LAB_0001a398") (: ":") (if_statement "if (cVar4 == '\0') {\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }\n                else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  uVar29 = 0;\n                  pbVar26 = (byte *)0x0;\n                  pbVar23 = pbVar24;\n                  if (bVar5 == 10) goto LAB_0001a0a9;\n                  do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);\n                }" ({ "{") (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" (identifier "uVar29") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar26 = (byte *)0x0;" (assignment_expression "pbVar26 = (byte *)0x0" (identifier "pbVar26") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pbVar23 = pbVar24;" (assignment_expression "pbVar23 = pbVar24" (identifier "pbVar23") (= "=") (identifier "pbVar24")) (; ";")) (if_statement "if (bVar5 == 10) goto LAB_0001a0a9;" (if "if") (parenthesized_expression "(bVar5 == 10)" (( "(") (binary_expression "bVar5 == 10" (identifier "bVar5") (== "==") (number_literal "10")) () ")")) (goto_statement "goto LAB_0001a0a9;" (goto "goto") (statement_identifier "LAB_0001a0a9") (; ";"))) (do_statement "do {\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  } while (bVar5 != 10);" (do "do") (compound_statement "{\n                    pbVar24 = pbVar23 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                    bVar5 = *pbVar23;\n                    uVar8 = (uint)bVar5;\n                    pbVar23 = pbVar24;\n                  }" ({ "{") (expression_statement "pbVar24 = pbVar23 + 1;" (assignment_expression "pbVar24 = pbVar23 + 1" (identifier "pbVar24") (= "=") (binary_expression "pbVar23 + 1" (identifier "pbVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;" (assignment_expression "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8" (identifier "uVar29") (= "=") (binary_expression "(uVar29 << 7 | uVar29 >> 0x19) + uVar8" (parenthesized_expression "(uVar29 << 7 | uVar29 >> 0x19)" (( "(") (binary_expression "uVar29 << 7 | uVar29 >> 0x19" (binary_expression "uVar29 << 7" (identifier "uVar29") (<< "<<") (number_literal "7")) (| "|") (binary_expression "uVar29 >> 0x19" (identifier "uVar29") (>> ">>") (number_literal "0x19"))) () ")")) (+ "+") (identifier "uVar8"))) (; ";")) (expression_statement "bVar5 = *pbVar23;" (assignment_expression "bVar5 = *pbVar23" (identifier "bVar5") (= "=") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23"))) (; ";")) (expression_statement "uVar8 = (uint)bVar5;" (assignment_expression "uVar8 = (uint)bVar5" (identifier "uVar8") (= "=") (cast_expression "(uint)bVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar5"))) (; ";")) (expression_statement "pbVar23 = pbVar24;" (assignment_expression "pbVar23 = pbVar24" (identifier "pbVar23") (= "=") (identifier "pbVar24")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar5 != 10)" (( "(") (binary_expression "bVar5 != 10" (identifier "bVar5") (!= "!=") (number_literal "10")) () ")")) (; ";")) (} "}")) (else_clause "else {\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }" (else "else") (compound_statement "{\n                  if (bVar5 == 10) goto LAB_0001a500;\n                  pp_Var13 = __ctype_tolower_loc();\n                  uVar29 = 0;\n                  pbVar26 = pbVar24;\n                  do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);\n                }" ({ "{") (if_statement "if (bVar5 == 10) goto LAB_0001a500;" (if "if") (parenthesized_expression "(bVar5 == 10)" (( "(") (binary_expression "bVar5 == 10" (identifier "bVar5") (== "==") (number_literal "10")) () ")")) (goto_statement "goto LAB_0001a500;" (goto "goto") (statement_identifier "LAB_0001a500") (; ";"))) (expression_statement "pp_Var13 = __ctype_tolower_loc();" (assignment_expression "pp_Var13 = __ctype_tolower_loc()" (identifier "pp_Var13") (= "=") (call_expression "__ctype_tolower_loc()" (identifier "__ctype_tolower_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" (identifier "uVar29") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar26 = pbVar24;" (assignment_expression "pbVar26 = pbVar24" (identifier "pbVar26") (= "=") (identifier "pbVar24")) (; ";")) (do_statement "do {\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  } while (bVar5 != 10);" (do "do") (compound_statement "{\n                    pbVar24 = pbVar26 + 1;\n                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];\n                    bVar5 = *pbVar26;\n                    uVar8 = (uint)bVar5;\n                    pbVar26 = pbVar24;\n                  }" ({ "{") (expression_statement "pbVar24 = pbVar26 + 1;" (assignment_expression "pbVar24 = pbVar26 + 1" (identifier "pbVar24") (= "=") (binary_expression "pbVar26 + 1" (identifier "pbVar26") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];" (assignment_expression "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8]" (identifier "uVar29") (= "=") (binary_expression "(uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8]" (parenthesized_expression "(uVar29 << 7 | uVar29 >> 0x19)" (( "(") (binary_expression "uVar29 << 7 | uVar29 >> 0x19" (binary_expression "uVar29 << 7" (identifier "uVar29") (<< "<<") (number_literal "7")) (| "|") (binary_expression "uVar29 >> 0x19" (identifier "uVar29") (>> ">>") (number_literal "0x19"))) () ")")) (+ "+") (subscript_expression "(*pp_Var13)[uVar8]" (parenthesized_expression "(*pp_Var13)" (( "(") (pointer_expression "*pp_Var13" (* "*") (identifier "pp_Var13")) () ")")) ([ "[") (identifier "uVar8") (] "]")))) (; ";")) (expression_statement "bVar5 = *pbVar26;" (assignment_expression "bVar5 = *pbVar26" (identifier "bVar5") (= "=") (pointer_expression "*pbVar26" (* "*") (identifier "pbVar26"))) (; ";")) (expression_statement "uVar8 = (uint)bVar5;" (assignment_expression "uVar8 = (uint)bVar5" (identifier "uVar8") (= "=") (cast_expression "(uint)bVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar5"))) (; ";")) (expression_statement "pbVar26 = pbVar24;" (assignment_expression "pbVar26 = pbVar24" (identifier "pbVar26") (= "=") (identifier "pbVar24")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar5 != 10)" (( "(") (binary_expression "bVar5 != 10" (identifier "bVar5") (!= "!=") (number_literal "10")) () ")")) (; ";")) (} "}"))))) (} "}")) (else_clause "else {\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }" (else "else") (compound_statement "{\n                uVar29 = 0;\n                pbVar24 = local_90 + 1;\n                if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }\n              }" ({ "{") (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" (identifier "uVar29") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar24 = local_90 + 1;" (assignment_expression "pbVar24 = local_90 + 1" (identifier "pbVar24") (= "=") (binary_expression "local_90 + 1" (identifier "local_90") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar5 != 10) {\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }" (if "if") (parenthesized_expression "(bVar5 != 10)" (( "(") (binary_expression "bVar5 != 10" (identifier "bVar5") (!= "!=") (number_literal "10")) () ")")) (compound_statement "{\n                  uVar25 = 0;\n                  local_84 = (uint *)pbVar24;\n                  do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);\n                }" ({ "{") (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" (identifier "uVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_84 = (uint *)pbVar24;" (assignment_expression "local_84 = (uint *)pbVar24" (identifier "local_84") (= "=") (cast_expression "(uint *)pbVar24" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar24"))) (; ";")) (do_statement "do {\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  } while ((byte)uVar22 != 10);" (do "do") (compound_statement "{\n                    cVar7 = (char)uVar8;\n                    if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }\n                    uVar22 = uVar20 & 1;\n                    if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }\n                    if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }\n                    do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);\n                    pbVar24 = (byte *)((int)local_84 + 1);\n                    uVar22 = *local_84;\n                    uVar8 = (uint)(byte)uVar22;\n                    local_84 = (uint *)pbVar24;\n                  }" ({ "{") (expression_statement "cVar7 = (char)uVar8;" (assignment_expression "cVar7 = (char)uVar8" (identifier "cVar7") (= "=") (cast_expression "(char)uVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar8"))) (; ";")) (if_statement "if ((uVar20 & 2) != 0) {\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }" (if "if") (parenthesized_expression "((uVar20 & 2) != 0)" (( "(") (binary_expression "(uVar20 & 2) != 0" (parenthesized_expression "(uVar20 & 2)" (( "(") (binary_expression "uVar20 & 2" (identifier "uVar20") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      ppuVar12 = __ctype_b_loc();\n                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);\n                      puVar27 = local_84;\n                      while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }\n                    }" ({ "{") (expression_statement "ppuVar12 = __ctype_b_loc();" (assignment_expression "ppuVar12 = __ctype_b_loc()" (identifier "ppuVar12") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);" (assignment_expression "bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1)" (identifier "bVar5") (= "=") (pointer_expression "*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1)" (* "*") (cast_expression "(byte *)((int)*ppuVar12 + uVar8 * 2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*ppuVar12 + uVar8 * 2 + 1)" (( "(") (binary_expression "(int)*ppuVar12 + uVar8 * 2 + 1" (binary_expression "(int)*ppuVar12 + uVar8 * 2" (cast_expression "(int)*ppuVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*ppuVar12" (* "*") (identifier "ppuVar12"))) (+ "+") (binary_expression "uVar8 * 2" (identifier "uVar8") (* "*") (number_literal "2"))) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "puVar27 = local_84;" (assignment_expression "puVar27 = local_84" (identifier "puVar27") (= "=") (identifier "local_84")) (; ";")) (while_statement "while ((bVar5 & 0x20) != 0) {\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }" (while "while") (parenthesized_expression "((bVar5 & 0x20) != 0)" (( "(") (binary_expression "(bVar5 & 0x20) != 0" (parenthesized_expression "(bVar5 & 0x20)" (( "(") (binary_expression "bVar5 & 0x20" (identifier "bVar5") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        pbVar24 = (byte *)((int)puVar27 + 1);\n                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;\n                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);\n                        puVar27 = (uint *)pbVar24;\n                      }" ({ "{") (expression_statement "pbVar24 = (byte *)((int)puVar27 + 1);" (assignment_expression "pbVar24 = (byte *)((int)puVar27 + 1)" (identifier "pbVar24") (= "=") (cast_expression "(byte *)((int)puVar27 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar27 + 1)" (( "(") (binary_expression "(int)puVar27 + 1" (cast_expression "(int)puVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar27")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;" (if "if") (parenthesized_expression "(*(byte *)puVar27 == 10)" (( "(") (binary_expression "*(byte *)puVar27 == 10" (pointer_expression "*(byte *)puVar27" (* "*") (cast_expression "(byte *)puVar27" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar27"))) (== "==") (number_literal "10")) () ")")) (goto_statement "goto LAB_0001a0a0;" (goto "goto") (statement_identifier "LAB_0001a0a0") (; ";"))) (expression_statement "bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);" (assignment_expression "bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1)" (identifier "bVar5") (= "=") (pointer_expression "*(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1)" (* "*") (cast_expression "(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1)" (( "(") (binary_expression "(int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1" (binary_expression "(int)*ppuVar12 + (uint)*(byte *)puVar27 * 2" (cast_expression "(int)*ppuVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*ppuVar12" (* "*") (identifier "ppuVar12"))) (+ "+") (binary_expression "(uint)*(byte *)puVar27 * 2" (binary_expression "(uint)*(byte *)puVar27" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)puVar27" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar27"))) (* "*") (number_literal "2"))) (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "puVar27 = (uint *)pbVar24;" (assignment_expression "puVar27 = (uint *)pbVar24" (identifier "puVar27") (= "=") (cast_expression "(uint *)pbVar24" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar24"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar22 = uVar20 & 1;" (assignment_expression "uVar22 = uVar20 & 1" (identifier "uVar22") (= "=") (binary_expression "uVar20 & 1" (identifier "uVar20") (& "&") (number_literal "1"))) (; ";")) (if_statement "if (uVar22 == 0) {\n                      uVar22 = 1;\n                    }\n                    else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" (if "if") (parenthesized_expression "(uVar22 == 0)" (( "(") (binary_expression "uVar22 == 0" (identifier "uVar22") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      uVar22 = 1;\n                    }" ({ "{") (expression_statement "uVar22 = 1;" (assignment_expression "uVar22 = 1" (identifier "uVar22") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" (else "else") (if_statement "if (cVar7 == '\t') {\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }\n                    else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" (if "if") (parenthesized_expression "(cVar7 == '\t')" (( "(") (binary_expression "cVar7 == '\t'" (identifier "cVar7") (== "==") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) () ")")) (compound_statement "{\n                      uVar22 = uVar21 - uVar25 % uVar21;\n                      uVar8 = 0x20;\n                      bVar31 = CARRY4(uVar25,uVar22);\n                      uVar25 = uVar25 + uVar22;\n                      if (bVar31) {\n                        uVar25 = 0;\n                      }\n                    }" ({ "{") (expression_statement "uVar22 = uVar21 - uVar25 % uVar21;" (assignment_expression "uVar22 = uVar21 - uVar25 % uVar21" (identifier "uVar22") (= "=") (binary_expression "uVar21 - uVar25 % uVar21" (identifier "uVar21") (- "-") (binary_expression "uVar25 % uVar21" (identifier "uVar25") (% "%") (identifier "uVar21")))) (; ";")) (expression_statement "uVar8 = 0x20;" (assignment_expression "uVar8 = 0x20" (identifier "uVar8") (= "=") (number_literal "0x20")) (; ";")) (expression_statement "bVar31 = CARRY4(uVar25,uVar22);" (assignment_expression "bVar31 = CARRY4(uVar25,uVar22)" (identifier "bVar31") (= "=") (call_expression "CARRY4(uVar25,uVar22)" (identifier "CARRY4") (argument_list "(uVar25,uVar22)" (( "(") (identifier "uVar25") (, ",") (identifier "uVar22") () ")")))) (; ";")) (expression_statement "uVar25 = uVar25 + uVar22;" (assignment_expression "uVar25 = uVar25 + uVar22" (identifier "uVar25") (= "=") (binary_expression "uVar25 + uVar22" (identifier "uVar25") (+ "+") (identifier "uVar22"))) (; ";")) (if_statement "if (bVar31) {\n                        uVar25 = 0;\n                      }" (if "if") (parenthesized_expression "(bVar31)" (( "(") (identifier "bVar31") () ")")) (compound_statement "{\n                        uVar25 = 0;\n                      }" ({ "{") (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" (identifier "uVar25") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" (else "else") (if_statement "if (cVar7 == '\r') {\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }\n                    else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" (if "if") (parenthesized_expression "(cVar7 == '\r')" (( "(") (binary_expression "cVar7 == '\r'" (identifier "cVar7") (== "==") (char_literal "'\r'" (' "'") (escape_sequence "\r") (' "'"))) () ")")) (compound_statement "{\n                      uVar8 = 0xd;\n                      uVar25 = 0;\n                    }" ({ "{") (expression_statement "uVar8 = 0xd;" (assignment_expression "uVar8 = 0xd" (identifier "uVar8") (= "=") (number_literal "0xd")) (; ";")) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" (identifier "uVar25") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" (else "else") (if_statement "if (cVar7 == '\b') {\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }\n                    else {\n                      uVar25 = uVar25 + 1;\n                    }" (if "if") (parenthesized_expression "(cVar7 == '\b')" (( "(") (binary_expression "cVar7 == '\b'" (identifier "cVar7") (== "==") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'"))) () ")")) (compound_statement "{\n                      uVar8 = 8;\n                      uVar25 = uVar25 - (uVar25 != 0);\n                    }" ({ "{") (expression_statement "uVar8 = 8;" (assignment_expression "uVar8 = 8" (identifier "uVar8") (= "=") (number_literal "8")) (; ";")) (expression_statement "uVar25 = uVar25 - (uVar25 != 0);" (assignment_expression "uVar25 = uVar25 - (uVar25 != 0)" (identifier "uVar25") (= "=") (binary_expression "uVar25 - (uVar25 != 0)" (identifier "uVar25") (- "-") (parenthesized_expression "(uVar25 != 0)" (( "(") (binary_expression "uVar25 != 0" (identifier "uVar25") (!= "!=") (number_literal "0")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                      uVar25 = uVar25 + 1;\n                    }" (else "else") (compound_statement "{\n                      uVar25 = uVar25 + 1;\n                    }" ({ "{") (expression_statement "uVar25 = uVar25 + 1;" (assignment_expression "uVar25 = uVar25 + 1" (identifier "uVar25") (= "=") (binary_expression "uVar25 + 1" (identifier "uVar25") (+ "+") (number_literal "1"))) (; ";")) (} "}")))))))))) (if_statement "if (cVar4 != '\0') {\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }" (if "if") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                      pp_Var13 = __ctype_tolower_loc();\n                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);\n                    }" ({ "{") (expression_statement "pp_Var13 = __ctype_tolower_loc();" (assignment_expression "pp_Var13 = __ctype_tolower_loc()" (identifier "pp_Var13") (= "=") (call_expression "__ctype_tolower_loc()" (identifier "__ctype_tolower_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);" (assignment_expression "uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8)" (identifier "uVar8") (= "=") (binary_expression "(uint)*(byte *)(*pp_Var13 + uVar8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(*pp_Var13 + uVar8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*pp_Var13 + uVar8)" (( "(") (binary_expression "*pp_Var13 + uVar8" (pointer_expression "*pp_Var13" (* "*") (identifier "pp_Var13")) (+ "+") (identifier "uVar8")) () ")"))))) (; ";")) (} "}"))) (do_statement "do {\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    } while (uVar22 != 0);" (do "do") (compound_statement "{\n                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                      uVar22 = uVar22 - 1;\n                    }" ({ "{") (expression_statement "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;" (assignment_expression "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8" (identifier "uVar29") (= "=") (binary_expression "(uVar29 << 7 | uVar29 >> 0x19) + uVar8" (parenthesized_expression "(uVar29 << 7 | uVar29 >> 0x19)" (( "(") (binary_expression "uVar29 << 7 | uVar29 >> 0x19" (binary_expression "uVar29 << 7" (identifier "uVar29") (<< "<<") (number_literal "7")) (| "|") (binary_expression "uVar29 >> 0x19" (identifier "uVar29") (>> ">>") (number_literal "0x19"))) () ")")) (+ "+") (identifier "uVar8"))) (; ";")) (expression_statement "uVar22 = uVar22 - 1;" (assignment_expression "uVar22 = uVar22 - 1" (identifier "uVar22") (= "=") (binary_expression "uVar22 - 1" (identifier "uVar22") (- "-") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar22 != 0)" (( "(") (binary_expression "uVar22 != 0" (identifier "uVar22") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "pbVar24 = (byte *)((int)local_84 + 1);" (assignment_expression "pbVar24 = (byte *)((int)local_84 + 1)" (identifier "pbVar24") (= "=") (cast_expression "(byte *)((int)local_84 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_84 + 1)" (( "(") (binary_expression "(int)local_84 + 1" (cast_expression "(int)local_84" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_84")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar22 = *local_84;" (assignment_expression "uVar22 = *local_84" (identifier "uVar22") (= "=") (pointer_expression "*local_84" (* "*") (identifier "local_84"))) (; ";")) (expression_statement "uVar8 = (uint)(byte)uVar22;" (assignment_expression "uVar8 = (uint)(byte)uVar22" (identifier "uVar8") (= "=") (cast_expression "(uint)(byte)uVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)uVar22" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar22")))) (; ";")) (expression_statement "local_84 = (uint *)pbVar24;" (assignment_expression "local_84 = (uint *)pbVar24" (identifier "local_84") (= "=") (cast_expression "(uint *)pbVar24" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar24"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((byte)uVar22 != 10)" (( "(") (binary_expression "(byte)uVar22 != 10" (cast_expression "(byte)uVar22" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar22")) (!= "!=") (number_literal "10")) () ")")) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }" (else "else") (compound_statement "{\n              if (uVar20 != 5) goto LAB_0001a398;\n              uVar29 = 0;\n              pbVar24 = local_90;\n              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }\n            }" ({ "{") (if_statement "if (uVar20 != 5) goto LAB_0001a398;" (if "if") (parenthesized_expression "(uVar20 != 5)" (( "(") (binary_expression "uVar20 != 5" (identifier "uVar20") (!= "!=") (number_literal "5")) () ")")) (goto_statement "goto LAB_0001a398;" (goto "goto") (statement_identifier "LAB_0001a398") (; ";"))) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" (identifier "uVar29") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar24 = local_90;" (assignment_expression "pbVar24 = local_90" (identifier "pbVar24") (= "=") (identifier "local_90")) (; ";")) (while_statement "while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }" (while "while") (parenthesized_expression "(pbVar24 = pbVar24 + 1, (char)uVar8 != '\n')" (( "(") (comma_expression "pbVar24 = pbVar24 + 1, (char)uVar8 != '\n'" (assignment_expression "pbVar24 = pbVar24 + 1" (identifier "pbVar24") (= "=") (binary_expression "pbVar24 + 1" (identifier "pbVar24") (+ "+") (number_literal "1"))) (, ",") (binary_expression "(char)uVar8 != '\n'" (cast_expression "(char)uVar8" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar8")) (!= "!=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'")))) () ")")) (compound_statement "{\n                ppuVar12 = __ctype_b_loc();\n                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }\n                uVar8 = (uint)*pbVar24;\n              }" ({ "{") (expression_statement "ppuVar12 = __ctype_b_loc();" (assignment_expression "ppuVar12 = __ctype_b_loc()" (identifier "ppuVar12") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }" (if "if") (parenthesized_expression "((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20)" (( "(") (binary_expression "*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20" (pointer_expression "*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1)" (* "*") (cast_expression "(byte *)((int)*ppuVar12 + uVar8 * 2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*ppuVar12 + uVar8 * 2 + 1)" (( "(") (binary_expression "(int)*ppuVar12 + uVar8 * 2 + 1" (binary_expression "(int)*ppuVar12 + uVar8 * 2" (cast_expression "(int)*ppuVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*ppuVar12" (* "*") (identifier "ppuVar12"))) (+ "+") (binary_expression "uVar8 * 2" (identifier "uVar8") (* "*") (number_literal "2"))) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }\n                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;\n                }" ({ "{") (if_statement "if (cVar4 != '\0') {\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }" (if "if") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    pp_Var13 = __ctype_tolower_loc();\n                    uVar8 = (*pp_Var13)[uVar8];\n                  }" ({ "{") (expression_statement "pp_Var13 = __ctype_tolower_loc();" (assignment_expression "pp_Var13 = __ctype_tolower_loc()" (identifier "pp_Var13") (= "=") (call_expression "__ctype_tolower_loc()" (identifier "__ctype_tolower_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar8 = (*pp_Var13)[uVar8];" (assignment_expression "uVar8 = (*pp_Var13)[uVar8]" (identifier "uVar8") (= "=") (subscript_expression "(*pp_Var13)[uVar8]" (parenthesized_expression "(*pp_Var13)" (( "(") (pointer_expression "*pp_Var13" (* "*") (identifier "pp_Var13")) () ")")) ([ "[") (identifier "uVar8") (] "]"))) (; ";")) (} "}"))) (expression_statement "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;" (assignment_expression "uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8" (identifier "uVar29") (= "=") (binary_expression "(uVar29 << 7 | uVar29 >> 0x19) + uVar8" (parenthesized_expression "(uVar29 << 7 | uVar29 >> 0x19)" (( "(") (binary_expression "uVar29 << 7 | uVar29 >> 0x19" (binary_expression "uVar29 << 7" (identifier "uVar29") (<< "<<") (number_literal "7")) (| "|") (binary_expression "uVar29 >> 0x19" (identifier "uVar29") (>> ">>") (number_literal "0x19"))) () ")")) (+ "+") (identifier "uVar8"))) (; ";")) (} "}"))) (expression_statement "uVar8 = (uint)*pbVar24;" (assignment_expression "uVar8 = (uint)*pbVar24" (identifier "uVar8") (= "=") (binary_expression "(uint)*pbVar24" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar24"))) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0001a0a0:\n            pbVar26 = pbVar24 + (-1 - (int)local_90);" (statement_identifier "LAB_0001a0a0") (: ":") (expression_statement "pbVar26 = pbVar24 + (-1 - (int)local_90);" (assignment_expression "pbVar26 = pbVar24 + (-1 - (int)local_90)" (identifier "pbVar26") (= "=") (binary_expression "pbVar24 + (-1 - (int)local_90)" (identifier "pbVar24") (+ "+") (parenthesized_expression "(-1 - (int)local_90)" (( "(") (binary_expression "-1 - (int)local_90" (number_literal "-1") (- "-") (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90"))) () ")")))) (; ";"))) (} "}")))) (labeled_statement "LAB_0001a0a9:\n          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);" (statement_identifier "LAB_0001a0a9") (: ":") (expression_statement "puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);" (assignment_expression "puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4)" (identifier "puVar27") (= "=") (cast_expression "(uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4)" (( "(") (binary_expression "DAT_0004d398 + (uVar29 % DAT_0004d394) * 4" (identifier "DAT_0004d398") (+ "+") (binary_expression "(uVar29 % DAT_0004d394) * 4" (parenthesized_expression "(uVar29 % DAT_0004d394)" (( "(") (binary_expression "uVar29 % DAT_0004d394" (identifier "uVar29") (% "%") (identifier "DAT_0004d394")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";"))) (expression_statement "local_84 = puVar27;" (assignment_expression "local_84 = puVar27" (identifier "local_84") (= "=") (identifier "puVar27")) (; ";")) (if_statement "if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {\n            local_84 = puVar27;\n          }" (if "if") (parenthesized_expression "((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20))" (( "(") (binary_expression "(((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))\n             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)" (parenthesized_expression "(((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))" (( "(") (binary_expression "((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U)" (parenthesized_expression "((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0'))" (( "(") (binary_expression "(pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')" (parenthesized_expression "(pbVar11 == pbVar24)" (( "(") (binary_expression "pbVar11 == pbVar24" (identifier "pbVar11") (== "==") (identifier "pbVar24")) () ")")) (&& "&&") (parenthesized_expression "((char)local_5c[0x10] != '\0')" (( "(") (binary_expression "(char)local_5c[0x10] != '\0'" (cast_expression "(char)local_5c[0x10]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_5c[0x10]" (identifier "local_5c") ([ "[") (number_literal "0x10") (] "]"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(1 < DAT_0004d688 - 4U)" (( "(") (binary_expression "1 < DAT_0004d688 - 4U" (number_literal "1") (< "<") (binary_expression "DAT_0004d688 - 4U" (identifier "DAT_0004d688") (- "-") (number_literal "4U"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)" (( "(") (comma_expression "local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20" (assignment_expression "local_84 = (uint *)(DAT_0004d398 + -4)" (identifier "local_84") (= "=") (cast_expression "(uint *)(DAT_0004d398 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0004d398 + -4)" (( "(") (binary_expression "DAT_0004d398 + -4" (identifier "DAT_0004d398") (+ "+") (number_literal "-4")) () ")")))) (, ",") (binary_expression "1 < uVar20" (number_literal "1") (< "<") (identifier "uVar20"))) () ")"))) () ")")) (compound_statement "{\n            local_84 = puVar27;\n          }" ({ "{") (expression_statement "local_84 = puVar27;" (assignment_expression "local_84 = puVar27" (identifier "local_84") (= "=") (identifier "puVar27")) (; ";")) (} "}"))) (expression_statement "uVar8 = *local_84;" (assignment_expression "uVar8 = *local_84" (identifier "uVar8") (= "=") (pointer_expression "*local_84" (* "*") (identifier "local_84"))) (; ";")) (expression_statement "local_78 = (byte *)uVar8;" (assignment_expression "local_78 = (byte *)uVar8" (identifier "local_78") (= "=") (cast_expression "(byte *)uVar8" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar8"))) (; ";")) (labeled_statement "joined_r0x0001a0d6:\n          if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }" (statement_identifier "joined_r0x0001a0d6") (: ":") (if_statement "if (local_78 != (byte *)0x0) {\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }" (if "if") (parenthesized_expression "(local_78 != (byte *)0x0)" (( "(") (binary_expression "local_78 != (byte *)0x0" (identifier "local_78") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );\n          }" ({ "{") (do_statement "do {\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            } while( true );" (do "do") (compound_statement "{\n              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);\n              if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }\nLAB_0001a0f0:\n              local_78 = (byte *)*puVar27;\n              if (local_78 == (byte *)0x0) break;\n            }" ({ "{") (expression_statement "puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);" (assignment_expression "puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c)" (identifier "puVar27") (= "=") (cast_expression "(uint *)((int)local_78 * 0x10 + (int)local_7c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_78 * 0x10 + (int)local_7c)" (( "(") (binary_expression "(int)local_78 * 0x10 + (int)local_7c" (binary_expression "(int)local_78 * 0x10" (cast_expression "(int)local_78" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_78")) (* "*") (number_literal "0x10")) (+ "+") (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c"))) () ")")))) (; ";")) (if_statement "if (uVar29 == puVar27[1]) {\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }" (if "if") (parenthesized_expression "(uVar29 == puVar27[1])" (( "(") (binary_expression "uVar29 == puVar27[1]" (identifier "uVar29") (== "==") (subscript_expression "puVar27[1]" (identifier "puVar27") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n                __s1 = (void *)puVar27[2];\n                if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;\n                cVar7 = FUN_0001c840(__s1,local_90);\n                if (cVar7 == '\0') goto joined_r0x0001a144;\n              }" ({ "{") (expression_statement "__s1 = (void *)puVar27[2];" (assignment_expression "__s1 = (void *)puVar27[2]" (identifier "__s1") (= "=") (cast_expression "(void *)puVar27[2]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar27[2]" (identifier "puVar27") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if ((byte *)puVar27[3] == pbVar26) {\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }\n                else if (uVar20 == 0) goto LAB_0001a0f0;" (if "if") (parenthesized_expression "((byte *)puVar27[3] == pbVar26)" (( "(") (binary_expression "(byte *)puVar27[3] == pbVar26" (cast_expression "(byte *)puVar27[3]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar27[3]" (identifier "puVar27") ([ "[") (number_literal "3") (] "]"))) (== "==") (identifier "pbVar26")) () ")")) (compound_statement "{\n                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);\n                  if (iVar30 == 0) goto joined_r0x0001a144;\n                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;\n                }" ({ "{") (expression_statement "iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);" (assignment_expression "iVar30 = memcmp(__s1,local_90,(size_t)pbVar26)" (identifier "iVar30") (= "=") (call_expression "memcmp(__s1,local_90,(size_t)pbVar26)" (identifier "memcmp") (argument_list "(__s1,local_90,(size_t)pbVar26)" (( "(") (identifier "__s1") (, ",") (identifier "local_90") (, ",") (cast_expression "(size_t)pbVar26" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "pbVar26")) () ")")))) (; ";")) (if_statement "if (iVar30 == 0) goto joined_r0x0001a144;" (if "if") (parenthesized_expression "(iVar30 == 0)" (( "(") (binary_expression "iVar30 == 0" (identifier "iVar30") (== "==") (number_literal "0")) () ")")) (goto_statement "goto joined_r0x0001a144;" (goto "goto") (statement_identifier "joined_r0x0001a144") (; ";"))) (if_statement "if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;" (if "if") (parenthesized_expression "(bVar33 && cVar4 == '\0')" (( "(") (binary_expression "bVar33 && cVar4 == '\0'" (identifier "bVar33") (&& "&&") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")) (goto_statement "goto code_r0x0001a1dc;" (goto "goto") (statement_identifier "code_r0x0001a1dc") (; ";"))) (} "}")) (else_clause "else if (uVar20 == 0) goto LAB_0001a0f0;" (else "else") (if_statement "if (uVar20 == 0) goto LAB_0001a0f0;" (if "if") (parenthesized_expression "(uVar20 == 0)" (( "(") (binary_expression "uVar20 == 0" (identifier "uVar20") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001a0f0;" (goto "goto") (statement_identifier "LAB_0001a0f0") (; ";"))))) (expression_statement "cVar7 = FUN_0001c840(__s1,local_90);" (assignment_expression "cVar7 = FUN_0001c840(__s1,local_90)" (identifier "cVar7") (= "=") (call_expression "FUN_0001c840(__s1,local_90)" (identifier "FUN_0001c840") (argument_list "(__s1,local_90)" (( "(") (identifier "__s1") (, ",") (identifier "local_90") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') goto joined_r0x0001a144;" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto joined_r0x0001a144;" (goto "goto") (statement_identifier "joined_r0x0001a144") (; ";"))) (} "}"))) (labeled_statement "LAB_0001a0f0:\n              local_78 = (byte *)*puVar27;" (statement_identifier "LAB_0001a0f0") (: ":") (expression_statement "local_78 = (byte *)*puVar27;" (assignment_expression "local_78 = (byte *)*puVar27" (identifier "local_78") (= "=") (cast_expression "(byte *)*puVar27" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar27" (* "*") (identifier "puVar27")))) (; ";"))) (if_statement "if (local_78 == (byte *)0x0) break;" (if "if") (parenthesized_expression "(local_78 == (byte *)0x0)" (( "(") (binary_expression "local_78 == (byte *)0x0" (identifier "local_78") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (if_statement "if (local_60 == local_64) {\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }" (if "if") (parenthesized_expression "(local_60 == local_64)" (( "(") (binary_expression "local_60 == local_64" (identifier "local_60") (== "==") (identifier "local_64")) () ")")) (compound_statement "{\n            if (0x3fffffe < local_60) goto LAB_0001a9c0;\n            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);\n            uVar8 = *local_84;\n            local_60 = local_60 * 2;\n          }" ({ "{") (if_statement "if (0x3fffffe < local_60) goto LAB_0001a9c0;" (if "if") (parenthesized_expression "(0x3fffffe < local_60)" (( "(") (binary_expression "0x3fffffe < local_60" (number_literal "0x3fffffe") (< "<") (identifier "local_60")) () ")")) (goto_statement "goto LAB_0001a9c0;" (goto "goto") (statement_identifier "LAB_0001a9c0") (; ";"))) (expression_statement "local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);" (assignment_expression "local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5)" (identifier "local_7c") (= "=") (cast_expression "(byte *)FUN_00023ce0(local_7c,local_60 << 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00023ce0(local_7c,local_60 << 5)" (identifier "FUN_00023ce0") (argument_list "(local_7c,local_60 << 5)" (( "(") (identifier "local_7c") (, ",") (binary_expression "local_60 << 5" (identifier "local_60") (<< "<<") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "uVar8 = *local_84;" (assignment_expression "uVar8 = *local_84" (identifier "uVar8") (= "=") (pointer_expression "*local_84" (* "*") (identifier "local_84"))) (; ";")) (expression_statement "local_60 = local_60 * 2;" (assignment_expression "local_60 = local_60 * 2" (identifier "local_60") (= "=") (binary_expression "local_60 * 2" (identifier "local_60") (* "*") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);" (assignment_expression "puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c)" (identifier "puVar27") (= "=") (cast_expression "(uint *)(local_64 * 0x10 + (int)local_7c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_64 * 0x10 + (int)local_7c)" (( "(") (binary_expression "local_64 * 0x10 + (int)local_7c" (binary_expression "local_64 * 0x10" (identifier "local_64") (* "*") (number_literal "0x10")) (+ "+") (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c"))) () ")")))) (; ";")) (expression_statement "*puVar27 = uVar8;" (assignment_expression "*puVar27 = uVar8" (pointer_expression "*puVar27" (* "*") (identifier "puVar27")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar27[1] = uVar29;" (assignment_expression "puVar27[1] = uVar29" (subscript_expression "puVar27[1]" (identifier "puVar27") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar29")) (; ";")) (expression_statement "puVar27[2] = (uint)local_90;" (assignment_expression "puVar27[2] = (uint)local_90" (subscript_expression "puVar27[2]" (identifier "puVar27") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(uint)local_90" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_90"))) (; ";")) (expression_statement "puVar27[3] = (uint)pbVar26;" (assignment_expression "puVar27[3] = (uint)pbVar26" (subscript_expression "puVar27[3]" (identifier "puVar27") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(uint)pbVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pbVar26"))) (; ";")) (expression_statement "*local_84 = local_64;" (assignment_expression "*local_84 = local_64" (pointer_expression "*local_84" (* "*") (identifier "local_84")) (= "=") (identifier "local_64")) (; ";")) (expression_statement "local_78 = (byte *)local_64;" (assignment_expression "local_78 = (byte *)local_64" (identifier "local_78") (= "=") (cast_expression "(byte *)local_64" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_64"))) (; ";")) (expression_statement "local_64 = local_64 + 1;" (assignment_expression "local_64 = local_64 + 1" (identifier "local_64") (= "=") (binary_expression "local_64 + 1" (identifier "local_64") (+ "+") (number_literal "1"))) (; ";")) (labeled_statement "joined_r0x0001a144:\n          if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }" (statement_identifier "joined_r0x0001a144") (: ":") (if_statement "if (local_8c == (byte *)local_6c) {\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }" (if "if") (parenthesized_expression "(local_8c == (byte *)local_6c)" (( "(") (binary_expression "local_8c == (byte *)local_6c" (identifier "local_8c") (== "==") (cast_expression "(byte *)local_6c" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_6c"))) () ")")) (compound_statement "{\n            if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;\n            local_68 = FUN_00023ce0(local_68,local_6c * 4);\n            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);\n            local_80 = (byte *)(iVar30 + iVar18 * -4);\n          }" ({ "{") (if_statement "if (((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;" (if "if") (parenthesized_expression "(((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18)))" (( "(") (binary_expression "((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||\n               (0x1ffffffe < (uint)((int)local_8c - iVar18))" (parenthesized_expression "((0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c))" (( "(") (binary_expression "(0x2aaaaaa9 < (int)local_8c) ||\n                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)" (parenthesized_expression "(0x2aaaaaa9 < (int)local_8c)" (( "(") (binary_expression "0x2aaaaaa9 < (int)local_8c" (number_literal "0x2aaaaaa9") (< "<") (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c"))) () ")")) (|| "||") (parenthesized_expression "(local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)" (( "(") (comma_expression "local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c" (assignment_expression "local_6c = (int)local_8c * 2 - iVar18" (identifier "local_6c") (= "=") (binary_expression "(int)local_8c * 2 - iVar18" (binary_expression "(int)local_8c * 2" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (* "*") (number_literal "2")) (- "-") (identifier "iVar18"))) (, ",") (binary_expression "0x1ffffffe < local_6c" (number_literal "0x1ffffffe") (< "<") (identifier "local_6c"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(0x1ffffffe < (uint)((int)local_8c - iVar18))" (( "(") (binary_expression "0x1ffffffe < (uint)((int)local_8c - iVar18)" (number_literal "0x1ffffffe") (< "<") (call_expression "(uint)((int)local_8c - iVar18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)local_8c - iVar18)" (( "(") (binary_expression "(int)local_8c - iVar18" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (- "-") (identifier "iVar18")) () ")")))) () ")"))) () ")")) (goto_statement "goto LAB_0001a9c0;" (goto "goto") (statement_identifier "LAB_0001a9c0") (; ";"))) (expression_statement "local_68 = FUN_00023ce0(local_68,local_6c * 4);" (assignment_expression "local_68 = FUN_00023ce0(local_68,local_6c * 4)" (identifier "local_68") (= "=") (call_expression "FUN_00023ce0(local_68,local_6c * 4)" (identifier "FUN_00023ce0") (argument_list "(local_68,local_6c * 4)" (( "(") (identifier "local_68") (, ",") (binary_expression "local_6c * 4" (identifier "local_6c") (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);" (assignment_expression "iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4)" (identifier "iVar30") (= "=") (call_expression "FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4)" (identifier "FUN_00023ce0") (argument_list "((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4)" (( "(") (binary_expression "(int)local_80 + iVar18 * 4" (cast_expression "(int)local_80" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_80")) (+ "+") (binary_expression "iVar18 * 4" (identifier "iVar18") (* "*") (number_literal "4"))) (, ",") (binary_expression "(local_6c - iVar18) * 4" (parenthesized_expression "(local_6c - iVar18)" (( "(") (binary_expression "local_6c - iVar18" (identifier "local_6c") (- "-") (identifier "iVar18")) () ")")) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "local_80 = (byte *)(iVar30 + iVar18 * -4);" (assignment_expression "local_80 = (byte *)(iVar30 + iVar18 * -4)" (identifier "local_80") (= "=") (cast_expression "(byte *)(iVar30 + iVar18 * -4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 + iVar18 * -4)" (( "(") (binary_expression "iVar30 + iVar18 * -4" (identifier "iVar30") (+ "+") (binary_expression "iVar18 * -4" (identifier "iVar18") (* "*") (number_literal "-4"))) () ")")))) (; ";")) (} "}")))) (expression_statement "*(byte **)((int)local_80 + (int)local_8c * 4) = local_90;" (assignment_expression "*(byte **)((int)local_80 + (int)local_8c * 4) = local_90" (pointer_expression "*(byte **)((int)local_80 + (int)local_8c * 4)" (* "*") (cast_expression "(byte **)((int)local_80 + (int)local_8c * 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_80 + (int)local_8c * 4)" (( "(") (binary_expression "(int)local_80 + (int)local_8c * 4" (cast_expression "(int)local_80" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_80")) (+ "+") (binary_expression "(int)local_8c * 4" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "local_90")) (; ";")) (expression_statement "*(byte **)(local_68 + (int)local_8c * 4) = local_78;" (assignment_expression "*(byte **)(local_68 + (int)local_8c * 4) = local_78" (pointer_expression "*(byte **)(local_68 + (int)local_8c * 4)" (* "*") (cast_expression "(byte **)(local_68 + (int)local_8c * 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_68 + (int)local_8c * 4)" (( "(") (binary_expression "local_68 + (int)local_8c * 4" (identifier "local_68") (+ "+") (binary_expression "(int)local_8c * 4" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "local_78")) (; ";")) (expression_statement "local_8c = (byte *)((int)local_8c + 1);" (assignment_expression "local_8c = (byte *)((int)local_8c + 1)" (identifier "local_8c") (= "=") (cast_expression "(byte *)((int)local_8c + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_8c + 1)" (( "(") (binary_expression "(int)local_8c + 1" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_90 = pbVar24;" (assignment_expression "local_90 = pbVar24" (identifier "local_90") (= "=") (identifier "pbVar24")) (; ";")) (if_statement "if (pbVar28 <= pbVar24) goto LAB_0001a520;" (if "if") (parenthesized_expression "(pbVar28 <= pbVar24)" (( "(") (binary_expression "pbVar28 <= pbVar24" (identifier "pbVar28") (<= "<=") (identifier "pbVar24")) () ")")) (goto_statement "goto LAB_0001a520;" (goto "goto") (statement_identifier "LAB_0001a520") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "local_8c = (byte *)0x0;" (assignment_expression "local_8c = (byte *)0x0" (identifier "local_8c") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0001a520:\n      local_5c[5] = (int)local_8c;" (statement_identifier "LAB_0001a520") (: ":") (expression_statement "local_5c[5] = (int)local_8c;" (assignment_expression "local_5c[5] = (int)local_8c" (subscript_expression "local_5c[5]" (identifier "local_5c") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c"))) (; ";"))) (expression_statement "iVar30 = 0;" (assignment_expression "iVar30 = 0" (identifier "iVar30") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }\n        if (pbVar11 == pbVar24) break;\n        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;\n        local_8c = (byte *)((int)local_8c + 1);\n        pbVar28 = pbVar24;\n        do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);\n        iVar30 = iVar30 + 1;\n      }" ({ "{") (if_statement "if ((byte *)local_6c == local_8c) {\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }\n        else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }" (if "if") (parenthesized_expression "((byte *)local_6c == local_8c)" (( "(") (binary_expression "(byte *)local_6c == local_8c" (cast_expression "(byte *)local_6c" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_6c")) (== "==") (identifier "local_8c")) () ")")) (compound_statement "{\n          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;\n          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);\n          local_80 = (byte *)(iVar18 * -4 + iVar14);\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n          local_6c = uVar20;\n        }" ({ "{") (if_statement "if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;" (if "if") (parenthesized_expression "(((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18))" (( "(") (binary_expression "((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              ) || (0x1ffffffe < local_6c - iVar18)" (parenthesized_expression "((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)\n              )" (( "(") (binary_expression "(0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)" (parenthesized_expression "(0x2aaaaaa9 < (int)local_6c)" (( "(") (binary_expression "0x2aaaaaa9 < (int)local_6c" (number_literal "0x2aaaaaa9") (< "<") (cast_expression "(int)local_6c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_6c"))) () ")")) (|| "||") (parenthesized_expression "(uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)" (( "(") (comma_expression "uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20" (assignment_expression "uVar20 = local_6c * 2 - iVar18" (identifier "uVar20") (= "=") (binary_expression "local_6c * 2 - iVar18" (binary_expression "local_6c * 2" (identifier "local_6c") (* "*") (number_literal "2")) (- "-") (identifier "iVar18"))) (, ",") (binary_expression "0x1ffffffe < uVar20" (number_literal "0x1ffffffe") (< "<") (identifier "uVar20"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(0x1ffffffe < local_6c - iVar18)" (( "(") (binary_expression "0x1ffffffe < local_6c - iVar18" (number_literal "0x1ffffffe") (< "<") (binary_expression "local_6c - iVar18" (identifier "local_6c") (- "-") (identifier "iVar18"))) () ")"))) () ")")) (goto_statement "goto LAB_0001a9c0;" (goto "goto") (statement_identifier "LAB_0001a9c0") (; ";"))) (expression_statement "iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);" (assignment_expression "iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4)" (identifier "iVar14") (= "=") (call_expression "FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4)" (identifier "FUN_00023ce0") (argument_list "((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4)" (( "(") (binary_expression "(int)local_80 + iVar18 * 4" (cast_expression "(int)local_80" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_80")) (+ "+") (binary_expression "iVar18 * 4" (identifier "iVar18") (* "*") (number_literal "4"))) (, ",") (binary_expression "(uVar20 - iVar18) * 4" (parenthesized_expression "(uVar20 - iVar18)" (( "(") (binary_expression "uVar20 - iVar18" (identifier "uVar20") (- "-") (identifier "iVar18")) () ")")) (* "*") (number_literal "4")) () ")")))) (; ";")) (expression_statement "local_80 = (byte *)(iVar18 * -4 + iVar14);" (assignment_expression "local_80 = (byte *)(iVar18 * -4 + iVar14)" (identifier "local_80") (= "=") (cast_expression "(byte *)(iVar18 * -4 + iVar14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 * -4 + iVar14)" (( "(") (binary_expression "iVar18 * -4 + iVar14" (binary_expression "iVar18 * -4" (identifier "iVar18") (* "*") (number_literal "-4")) (+ "+") (identifier "iVar14")) () ")")))) (; ";")) (expression_statement "puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);" (assignment_expression "puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)((int)local_80 + (int)local_8c * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_80 + (int)local_8c * 4)" (( "(") (binary_expression "(int)local_80 + (int)local_8c * 4" (cast_expression "(int)local_80" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_80")) (+ "+") (binary_expression "(int)local_8c * 4" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*puVar9 = pbVar24;" (assignment_expression "*puVar9 = pbVar24" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "local_6c = uVar20;" (assignment_expression "local_6c = uVar20" (identifier "local_6c") (= "=") (identifier "uVar20")) (; ";")) (} "}")) (else_clause "else {\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }" (else "else") (compound_statement "{\n          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);\n          *puVar9 = pbVar24;\n        }" ({ "{") (expression_statement "puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);" (assignment_expression "puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4)" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)((int)local_80 + (int)local_8c * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_80 + (int)local_8c * 4)" (( "(") (binary_expression "(int)local_80 + (int)local_8c * 4" (cast_expression "(int)local_80" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_80")) (+ "+") (binary_expression "(int)local_8c * 4" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "*puVar9 = pbVar24;" (assignment_expression "*puVar9 = pbVar24" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (identifier "pbVar24")) (; ";")) (} "}")))) (if_statement "if (pbVar11 == pbVar24) break;" (if "if") (parenthesized_expression "(pbVar11 == pbVar24)" (( "(") (binary_expression "pbVar11 == pbVar24" (identifier "pbVar11") (== "==") (identifier "pbVar24")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;" (if "if") (parenthesized_expression "(((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0'))" (( "(") (binary_expression "((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')" (parenthesized_expression "((int)DAT_0004d69c <= iVar30)" (( "(") (binary_expression "(int)DAT_0004d69c <= iVar30" (cast_expression "(int)DAT_0004d69c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0004d69c")) (<= "<=") (identifier "iVar30")) () ")")) (&& "&&") (parenthesized_expression "(DAT_0004d68c != '\0')" (( "(") (binary_expression "DAT_0004d68c != '\0'" (identifier "DAT_0004d68c") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_0001a618;" (goto "goto") (statement_identifier "LAB_0001a618") (; ";"))) (expression_statement "local_8c = (byte *)((int)local_8c + 1);" (assignment_expression "local_8c = (byte *)((int)local_8c + 1)" (identifier "local_8c") (= "=") (cast_expression "(byte *)((int)local_8c + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_8c + 1)" (( "(") (binary_expression "(int)local_8c + 1" (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pbVar28 = pbVar24;" (assignment_expression "pbVar28 = pbVar24" (identifier "pbVar28") (= "=") (identifier "pbVar24")) (; ";")) (do_statement "do {\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        } while (bVar5 != 10);" (do "do") (compound_statement "{\n          pbVar24 = pbVar28 + 1;\n          bVar5 = *pbVar28;\n          pbVar28 = pbVar24;\n        }" ({ "{") (expression_statement "pbVar24 = pbVar28 + 1;" (assignment_expression "pbVar24 = pbVar28 + 1" (identifier "pbVar24") (= "=") (binary_expression "pbVar28 + 1" (identifier "pbVar28") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar5 = *pbVar28;" (assignment_expression "bVar5 = *pbVar28" (identifier "bVar5") (= "=") (pointer_expression "*pbVar28" (* "*") (identifier "pbVar28"))) (; ";")) (expression_statement "pbVar28 = pbVar24;" (assignment_expression "pbVar28 = pbVar24" (identifier "pbVar28") (= "=") (identifier "pbVar24")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar5 != 10)" (( "(") (binary_expression "bVar5 != 10" (identifier "bVar5") (!= "!=") (number_literal "10")) () ")")) (; ";")) (expression_statement "iVar30 = iVar30 + 1;" (assignment_expression "iVar30 = iVar30 + 1" (identifier "iVar30") (= "=") (binary_expression "iVar30 + 1" (identifier "iVar30") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {\n        *puVar9 = pbVar11 + -1;\n      }" (if "if") (parenthesized_expression "(((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U))" (( "(") (binary_expression "((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)" (parenthesized_expression "((char)local_5c[0x10] != '\0')" (( "(") (binary_expression "(char)local_5c[0x10] != '\0'" (cast_expression "(char)local_5c[0x10]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_5c[0x10]" (identifier "local_5c") ([ "[") (number_literal "0x10") (] "]"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(1 < DAT_0004d688 - 4U)" (( "(") (binary_expression "1 < DAT_0004d688 - 4U" (number_literal "1") (< "<") (binary_expression "DAT_0004d688 - 4U" (identifier "DAT_0004d688") (- "-") (number_literal "4U"))) () ")"))) () ")")) (compound_statement "{\n        *puVar9 = pbVar11 + -1;\n      }" ({ "{") (expression_statement "*puVar9 = pbVar11 + -1;" (assignment_expression "*puVar9 = pbVar11 + -1" (pointer_expression "*puVar9" (* "*") (identifier "puVar9")) (= "=") (binary_expression "pbVar11 + -1" (identifier "pbVar11") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (labeled_statement "LAB_0001a618:\n      local_5c[3] = (int)local_80;" (statement_identifier "LAB_0001a618") (: ":") (expression_statement "local_5c[3] = (int)local_80;" (assignment_expression "local_5c[3] = (int)local_80" (subscript_expression "local_5c[3]" (identifier "local_5c") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(int)local_80" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_80"))) (; ";"))) (expression_statement "piVar15 = local_5c + 0x2c;" (assignment_expression "piVar15 = local_5c + 0x2c" (identifier "piVar15") (= "=") (binary_expression "local_5c + 0x2c" (identifier "local_5c") (+ "+") (number_literal "0x2c"))) (; ";")) (expression_statement "DAT_0004d390 = local_7c;" (assignment_expression "DAT_0004d390 = local_7c" (identifier "DAT_0004d390") (= "=") (identifier "local_7c")) (; ";")) (expression_statement "local_5c[6] = (int)local_8c;" (assignment_expression "local_5c[6] = (int)local_8c" (subscript_expression "local_5c[6]" (identifier "local_5c") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c"))) (; ";")) (expression_statement "local_5c[7] = local_6c;" (assignment_expression "local_5c[7] = local_6c" (subscript_expression "local_5c[7]" (identifier "local_5c") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_6c")) (; ";")) (expression_statement "local_5c[0xb] = local_68;" (assignment_expression "local_5c[0xb] = local_68" (subscript_expression "local_5c[0xb]" (identifier "local_5c") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "local_68")) (; ";")) (expression_statement "DAT_0004d388 = local_60;" (assignment_expression "DAT_0004d388 = local_60" (identifier "DAT_0004d388") (= "=") (identifier "local_60")) (; ";")) (expression_statement "DAT_0004d38c = local_64;" (assignment_expression "DAT_0004d38c = local_64" (identifier "DAT_0004d38c") (= "=") (identifier "local_64")) (; ";")) (expression_statement "local_5c = piVar15;" (assignment_expression "local_5c = piVar15" (identifier "local_5c") (= "=") (identifier "piVar15")) (; ";")) (if_statement "if (param_1 + 0x72 == piVar15) {\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }" (if "if") (parenthesized_expression "(param_1 + 0x72 == piVar15)" (( "(") (binary_expression "param_1 + 0x72 == piVar15" (binary_expression "param_1 + 0x72" (identifier "param_1") (+ "+") (number_literal "0x72")) (== "==") (identifier "piVar15")) () ")")) (compound_statement "{\n        param_1[0x57] = local_64;\n        param_1[0x2b] = local_64;\n        free(local_7c);\n        free((void *)(DAT_0004d398 + -4));\n        return bVar32;\n      }" ({ "{") (expression_statement "param_1[0x57] = local_64;" (assignment_expression "param_1[0x57] = local_64" (subscript_expression "param_1[0x57]" (identifier "param_1") ([ "[") (number_literal "0x57") (] "]")) (= "=") (identifier "local_64")) (; ";")) (expression_statement "param_1[0x2b] = local_64;" (assignment_expression "param_1[0x2b] = local_64" (subscript_expression "param_1[0x2b]" (identifier "param_1") ([ "[") (number_literal "0x2b") (] "]")) (= "=") (identifier "local_64")) (; ";")) (expression_statement "free(local_7c);" (call_expression "free(local_7c)" (identifier "free") (argument_list "(local_7c)" (( "(") (identifier "local_7c") () ")"))) (; ";")) (expression_statement "free((void *)(DAT_0004d398 + -4));" (call_expression "free((void *)(DAT_0004d398 + -4))" (identifier "free") (argument_list "((void *)(DAT_0004d398 + -4))" (( "(") (cast_expression "(void *)(DAT_0004d398 + -4)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0004d398 + -4)" (( "(") (binary_expression "DAT_0004d398 + -4" (identifier "DAT_0004d398") (+ "+") (number_literal "-4")) () ")"))) () ")"))) (; ";")) (return_statement "return bVar32;" (return "return") (identifier "bVar32") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_0001a9c0:\n                    \n  FUN_00023f50();" (statement_identifier "LAB_0001a9c0") (: ":") (expression_statement "FUN_00023f50();" (call_expression "FUN_00023f50()" (identifier "FUN_00023f50") (argument_list "()" (( "(") () ")"))) (; ";"))) (labeled_statement "code_r0x0001a1dc:\n  local_78 = (byte *)*puVar27;" (statement_identifier "code_r0x0001a1dc") (: ":") (expression_statement "local_78 = (byte *)*puVar27;" (assignment_expression "local_78 = (byte *)*puVar27" (identifier "local_78") (= "=") (cast_expression "(byte *)*puVar27" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar27" (* "*") (identifier "puVar27")))) (; ";"))) (goto_statement "goto joined_r0x0001a0d6;" (goto "goto") (statement_identifier "joined_r0x0001a0d6") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */

type_1 function_1(type_2 *var_5,type_1 var_3)

{
  type_3 *puVar1;
  type_4 var_51;
  type_5 uVar3;
  char *s1;
  type_6 *puVar4;
  size_t sVar5;
  type_7 var_49;
  type_1 var_4;
  type_1 var_6;
  type_3 var_28;
  type_5 *var_40;
  type_5 *var_39;
  size_t var_61;
  void *pvVar12;
  type_4 *var_71;
  type_6 **ppuVar14;
  type_8 **pp_Var15;
  char **ppcVar16;
  size_t **var_72;
  bool var_7;
  type_9 var_19;
  size_t *var_24;
  type_5 *var_38;
  int var_31;
  char var_60;
  size_t *var_22;
  type_3 var_29;
  type_5 *var_37;
  type_9 var_25;
  type_3 var_10;
  type_7 var_59;
  type_4 *var_56;
  size_t *var_17;
  type_4 *var_53;
  type_10 *peVar34;
  size_t *var_20;
  size_t *var_23;
  int var_43;
  bool bVar38;
  bool var_67;
  size_t *var_14;
  size_t *var_16;
  type_3 var_13;
  size_t *var_21;
  char **var_18;
  type_10 *var_65;
  size_t *var_15;
  type_3 var_34;
  size_t *var_33;
  type_3 var_36;
  type_9 *local_68;
  type_3 var_70;
  type_3 var_69;
  size_t **var_64;
  type_4 *var_48;
  
  var_6 = var_2;
  var_4 = var_1(var_5,var_2 || var_3);
  var_7 = var_4 || var_3;
  if (var_5->desc == var_5[1].desc) {
    var_5[1].buffer = var_5->buffer;
    var_5[1].bufsize = var_5->bufsize;
    var_5[1].buffered = var_5->buffered;
    if (var_7) {
      return var_7;
    }
  }
  else {
    var_6 = var_1(var_5 + 1,var_3 || (var_6 || var_4));
    if (var_7 || var_6) {
      return var_7 || var_6;
    }
  }
  var_8(var_5);
  var_9(var_5);
  if (var_5->desc == var_5[1].desc) {
    var_15 = var_5->buffer;
    var_5[1].buffer = var_15;
    var_5[1].bufsize = var_5->bufsize;
    var_10 = var_5->buffered;
    var_5[1].buffered = var_10;
    var_5[1].missing_newline = var_5->missing_newline;
    var_13 = var_10;
LAB_000199ff:
    var_17 = (size_t *)((int)var_15 + var_10);
    var_18 = (char **)(var_11 - var_12);
    var_14 = var_15;
    var_21 = (size_t *)(var_13 + (int)var_15);
    var_16 = var_17;
    var_19 = horizon_lines;
    var_65 = (type_10 *)var_17;
  }
  else {
    var_8(var_5 + 1);
    var_9(var_5 + 1);
    var_13 = var_5->buffered;
    var_14 = var_5->buffer;
    var_15 = var_5[1].buffer;
    var_10 = var_5[1].buffered;
    if (var_14 == var_15) goto LAB_000199ff;
    var_21 = (size_t *)((int)var_14 + var_13);
    var_65 = (type_10 *)((int)var_15 + var_10);
    if (var_13 < var_10) {
      *(type_4 *)var_21 = ~*(type_4 *)((int)var_15 + var_13);
    }
    else {
      *(type_4 *)var_65 = ~*(type_4 *)((int)var_14 + var_10);
    }
    var_17 = var_14;
    var_16 = var_15;
    if (*var_15 == *var_14) {
      do {
        var_16 = var_16 + 1;
        var_17 = var_17 + 1;
      } while (*var_17 == *var_16);
    }
    if ((type_4)*var_16 == (type_4)*var_17) {
      do {
        var_16 = (size_t *)((int)var_16 + 1);
        var_17 = (size_t *)((int)var_17 + 1);
      } while (*(type_4 *)var_17 == *(type_4 *)var_16);
    }
    var_18 = (char **)(var_11 - var_12);
    var_19 = horizon_lines;
    if ((1 < var_18) &&
       ((size_t *)((int)var_14 + (var_13 - var_5->missing_newline)) < var_17 !=
        (size_t *)((int)var_15 + (var_10 - var_5[1].missing_newline)) < var_16)) {
      var_16 = (size_t *)((int)var_16 + -1);
      var_17 = (size_t *)((int)var_17 + -1);
    }
  }
  for (; var_28 = var_13, var_25 = horizon_lines, var_17 != var_14;
      var_17 = (size_t *)((int)var_17 + -1)) {
    while (*(type_4 *)((int)var_17 + -1) == 10) {
      if (var_19 == 0) goto LAB_00019a73;
      var_17 = (size_t *)((int)var_17 + -1);
      var_16 = (size_t *)((int)var_16 + -1);
      var_19 = var_19 + -1;
      if (var_17 == var_14) goto LAB_00019a73;
    }
    var_16 = (size_t *)((int)var_16 + -1);
  }
LAB_00019a73:
  var_5->prefix_end = (char *)var_17;
  var_5[1].prefix_end = (char *)var_16;
  if ((var_18 < 2) ||
     (var_33 = (size_t *)var_65, var_20 = var_21,
     var_5->missing_newline == var_5[1].missing_newline)) {
    var_20 = (size_t *)((var_13 - var_10) + (int)var_17);
    if (var_13 < var_10) {
      var_20 = var_17;
    }
    if ((var_20 == var_21) || (*(type_4 *)((int)var_65 + -1) != *(type_4 *)((int)var_21 + -1))) {
      var_18 = (char **)var_65;
      var_24 = var_21;
    }
    else {
      var_23 = (size_t *)((int)var_65 + ((int)var_20 - (int)var_21));
      var_20 = var_21;
      peVar34 = var_65;
      do {
        var_22 = (size_t *)((int)peVar34 + -1);
        var_24 = (size_t *)((int)var_20 + -1);
        var_18 = (char **)var_23;
        if (var_22 == var_23) break;
        var_48 = (type_4 *)((int)peVar34 + -2);
        var_71 = (type_4 *)((int)var_20 + -2);
        var_20 = var_24;
        var_18 = (char **)var_22;
        peVar34 = (type_10 *)var_22;
      } while (*var_71 == *var_48);
    }
    var_20 = var_24;
    if ((var_24 == var_14) || (*(type_4 *)((int)var_24 + -1) == 10)) {
      if ((char **)var_15 != var_18) {
        var_25 = var_25 + (type_3)(*(type_4 *)((int)var_18 + -1) != 10);
      }
    }
    else {
      var_25 = var_25 + 1;
    }
    for (; (var_20 != var_21 && (var_25 != 0)); var_25 = var_25 + -1) {
      do {
        var_23 = (size_t *)((int)var_20 + 1);
        var_61 = *var_20;
        var_20 = var_23;
      } while ((type_4)var_61 != 10);
    }
    var_33 = (size_t *)(((int)var_20 - (int)var_24) + (int)var_18);
  }
  var_7 = var_26 == false;
  var_5->suffix_begin = (char *)var_20;
  var_5[1].suffix_begin = (char *)var_33;
  if ((((var_7) || (function_regexp.fastmap != (char *)0x0)) || (0x1ffffffe < var_27)) ||
     (var_13 <= (type_3)var_27)) {
    var_34 = 0xffffffff;
    var_13 = 0;
    var_28 = var_28 >> 5;
    if (var_28 == 0) {
      var_28 = 1;
    }
    var_21 = (size_t *)(var_28 + 5);
  }
  else {
    var_34 = 0;
    var_13 = 1;
    var_10 = (type_3)((int)var_20 - (int)var_17) >> 5;
    if (var_10 == 0) {
      var_10 = 1;
    }
    var_28 = (type_3)((int)var_21 - (int)var_20) >> 5;
    if (var_28 == 0) {
      var_28 = 1;
    }
    var_29 = 1;
    if (0 < var_27) {
      do {
        var_13 = var_29 * 2;
        var_31 = var_29 * -2;
        var_29 = var_13;
      } while (var_30(var_27,var_13) == var_27 + var_31 < 0);
      var_34 = var_13 - 1;
    }
    var_31 = var_28 + 5;
    if (var_27 <= (int)(var_28 + 5)) {
      var_31 = var_27;
    }
    var_21 = (size_t *)(var_31 + var_13 + var_10 + 5);
  }
  var_40 = (type_5 *)var_32((int)var_21 << 2);
  var_17 = (size_t *)var_5->prefix_end;
  if (((var_26 == false) || (var_20 != var_17)) ||
     (var_20 = (size_t *)var_5[1].prefix_end, var_33 != var_20)) {
    if (var_14 == var_17) {
      var_20 = (size_t *)var_5[1].prefix_end;
      goto LAB_0001a84f;
    }
    var_10 = (type_3)var_21;
    var_16 = (size_t *)0;
    var_20 = var_14;
    do {
      var_28 = (type_3)var_16;
      var_16 = (size_t *)(var_28 + 1);
      var_21 = (size_t *)var_10;
      if ((var_34 & var_28) == var_10) {
        if (0xffffffe < var_10) goto LAB_0001a9c0;
        var_21 = (size_t *)(var_10 * 2);
        var_40 = (type_5 *)var_35(var_40,var_10 * 8);
      }
      var_40[var_34 & var_28] = var_20;
      var_24 = var_20;
      do {
        var_20 = (size_t *)((int)var_24 + 1);
        var_61 = *var_24;
        var_24 = var_20;
      } while ((type_4)var_61 != 10);
      var_10 = (type_3)var_21;
    } while (var_20 != var_17);
    var_36 = (int)var_33 - (int)var_5[1].prefix_end;
    var_7 = var_13 != 0;
    var_13 = (type_3)var_16;
    if ((var_7) && (var_13 = var_27, (int)var_16 <= var_27)) {
      var_13 = (type_3)var_16;
    }
    var_10 = 0x20;
    if (9 < (int)var_16) {
      var_10 = (type_3)((int)var_17 - (int)var_14) / var_28;
    }
  }
  else {
LAB_0001a84f:
    var_36 = (int)var_33 - (int)var_20;
    if (var_13 == 0) {
      var_16 = (size_t *)0x0;
      var_10 = 0x20;
    }
    else {
      var_13 = 0;
      var_10 = 0x20;
      var_16 = (size_t *)0x0;
      if (var_27 < 1) {
        var_13 = var_27;
      }
    }
  }
  var_28 = (type_3)((int)var_65 - (int)var_33) / var_10;
  if (var_28 == 0) {
    var_28 = 1;
  }
  if (0xe38e389 < var_28) {
    var_28 = 0xe38e389;
  }
  var_31 = var_28 + 5;
  if (var_27 < (int)(var_28 + 5)) {
    var_31 = var_27;
  }
  var_28 = 1;
  if (var_36 / var_10 != 0) {
    var_28 = var_36 / var_10;
  }
  if (0xe38e389 < var_28) {
    var_28 = 0xe38e389;
  }
  var_10 = var_13 + 5 + var_28 + var_31;
  var_7 = (int)var_10 < (int)var_13 || 0x1ffffffe < var_10;
  if (var_7) goto LAB_0001a9c0;
  var_39 = (type_5 *)var_32(var_10 * 4);
  if ((size_t *)var_13 == var_16) {
    if (var_13 != 0) goto LAB_00019df3;
  }
  else if (0 < (int)var_13) {
    var_29 = (int)var_16 - var_27;
    var_28 = var_29;
    do {
      var_39[var_28 - var_29] = var_40[var_28 & var_34];
      var_28 = var_28 + 1;
    } while (var_13 + var_29 != var_28);
    var_38 = var_40;
    var_37 = var_39;
    do {
      uVar3 = *var_37;
      var_37 = var_37 + 1;
      *var_38 = uVar3;
      var_38 = var_38 + 1;
    } while (var_39 + var_13 != var_37);
LAB_00019df3:
    var_31 = 0;
    do {
      var_39[var_31] = (type_4 *)((var_40[var_31] - (int)var_14) + (int)var_15);
      var_31 = var_31 + 1;
    } while (var_31 < (int)var_13);
  }
  var_5[1].linbuf = (char **)(var_39 + var_13);
  var_5->linbuf = (char **)(var_40 + var_13);
  var_5[1].linbuf_base = -var_13;
  var_5->linbuf_base = -var_13;
  var_5->alloc_lines = (int)var_21 - var_13;
  var_28 = ((int)var_21 - var_13) + 1 + (var_10 - var_13);
  var_5[1].alloc_lines = var_10 - var_13;
  var_42 = var_28;
  var_5[1].prefix_lines = (type_9)var_16;
  var_5->prefix_lines = (type_9)var_16;
  if (0x7fffffe < var_28) {
LAB_0001a9c0:
                    /* WARNING: Subroutine does not return */
    var_41();
  }
  equivs = (type_10 *)var_32(var_28 * 0x10);
  equivs_index = 1;
  if ((type_3)(var_42 / 3) < 0x201) {
    var_44 = 0x1fd;
    var_61 = 0x7f8;
  }
  else {
    var_31 = 9;
    do {
      var_43 = var_31;
      var_31 = var_43 + 1;
      var_10 = 1 << ((type_4)var_31 & 0x1f);
    } while (var_10 < (type_3)(var_42 / 3));
    var_44 = var_10 - ""[var_43 + 1];
    if (0x1ffffffe < var_44) goto LAB_0001a9c0;
    var_61 = var_44 * 4 + 4;
  }
  pvVar12 = var_45(var_61);
  var_63 = (type_9 *)((int)pvVar12 + 4);
  var_64 = &var_5->buffer;
  do {
    var_18 = (char **)var_64[3];
    var_31 = (int)var_64[4];
    var_17 = var_64[8];
    var_36 = (type_3)var_64[7];
    local_68 = (type_9 *)var_32(var_36 << 2);
    var_6 = ignore_case;
    var_49 = var_46;
    var_48 = (type_4 *)var_64[10];
    var_65 = equivs;
    var_70 = equivs_index;
    var_69 = var_42;
    var_71 = (type_4 *)((int)var_64[2] + (int)*var_64);
    var_67 = var_46 == var_47;
    if (var_17 < var_48) {
      var_16 = (size_t *)0x0;
      var_14 = var_17;
      do {
        var_61 = tabsize;
        var_51 = (type_4)*var_14;
        var_10 = (type_3)var_51;
        var_17 = (size_t *)((int)var_14 + 1);
        if (var_49 == var_50) {
          if (var_51 != 10) {
            ppuVar14 = var_52();
            var_28 = 0;
            puVar4 = *ppuVar14;
            do {
              var_53 = (type_4 *)var_17;
              if ((*(type_4 *)((int)puVar4 + var_10 * 2 + 1) & 0x20) != 0) {
                do {
                  var_17 = (size_t *)(var_53 + 1);
                  if (*var_53 == 10) goto LAB_0001a0a0;
                  var_10 = (type_3)*var_53;
                  var_53 = (type_4 *)var_17;
                } while ((*(type_4 *)((int)puVar4 + var_10 * 2 + 1) & 0x20) != 0);
                var_28 = (var_28 << 7 | var_28 >> 0x19) + 0x20;
              }
              var_29 = var_10;
              if (var_6 != false) {
                pp_Var15 = var_54();
                var_29 = (*pp_Var15)[var_10];
              }
              var_51 = *(type_4 *)var_17;
              var_10 = (type_3)var_51;
              var_17 = (size_t *)((int)var_17 + 1);
              var_28 = (var_28 << 7 | var_28 >> 0x19) + var_29;
            } while (var_51 != 10);
            goto LAB_0001a0a0;
          }
LAB_0001a500:
          var_53 = (type_4 *)0x0;
          var_28 = 0;
        }
        else {
          if (var_49 < var_55) {
            if (var_49 == var_47) {
LAB_0001a398:
              if (var_6 == false) {
                var_28 = 0;
                var_53 = (type_4 *)0x0;
                var_56 = (type_4 *)var_17;
                if (var_51 == 10) goto LAB_0001a0a9;
                do {
                  var_17 = (size_t *)(var_56 + 1);
                  var_28 = (var_28 << 7 | var_28 >> 0x19) + var_10;
                  var_51 = *var_56;
                  var_10 = (type_3)var_51;
                  var_56 = (type_4 *)var_17;
                } while (var_51 != 10);
              }
              else {
                if (var_51 == 10) goto LAB_0001a500;
                pp_Var15 = var_54();
                var_28 = 0;
                var_53 = (type_4 *)var_17;
                do {
                  var_17 = (size_t *)(var_53 + 1);
                  var_28 = (var_28 << 7 | var_28 >> 0x19) + (*pp_Var15)[var_10];
                  var_51 = *var_53;
                  var_10 = (type_3)var_51;
                  var_53 = (type_4 *)var_17;
                } while (var_51 != 10);
              }
            }
            else {
              var_28 = 0;
              var_17 = (size_t *)((int)var_14 + 1);
              if (var_51 != 10) {
                var_29 = 0;
                var_21 = var_17;
                do {
                  var_60 = (char)var_10;
                  if ((var_49 & var_57) != var_47) {
                    ppuVar14 = var_52();
                    var_51 = *(type_4 *)((int)*ppuVar14 + var_10 * 2 + 1);
                    var_20 = var_21;
                    while ((var_51 & 0x20) != 0) {
                      var_17 = (size_t *)((int)var_20 + 1);
                      if (*(type_4 *)var_20 == 10) goto LAB_0001a0a0;
                      var_51 = *(type_4 *)((int)*ppuVar14 + (type_3)*(type_4 *)var_20 * 2 + 1);
                      var_20 = var_17;
                    }
                  }
                  var_59 = var_49 & var_58;
                  if (var_59 == var_47) {
                    var_59 = var_58;
                  }
                  else if (var_60 == '\t') {
                    var_59 = var_61 - var_29 % var_61;
                    var_10 = 0x20;
                    bVar38 = var_62(var_29,var_59);
                    var_29 = var_29 + var_59;
                    if (bVar38) {
                      var_29 = 0;
                    }
                  }
                  else if (var_60 == '\r') {
                    var_10 = 0xd;
                    var_29 = 0;
                  }
                  else if (var_60 == '\b') {
                    var_10 = 8;
                    var_29 = var_29 - (var_29 != 0);
                  }
                  else {
                    var_29 = var_29 + 1;
                  }
                  if (var_6 != false) {
                    pp_Var15 = var_54();
                    var_10 = (type_3)*(type_4 *)(*pp_Var15 + var_10);
                  }
                  do {
                    var_28 = (var_28 << 7 | var_28 >> 0x19) + var_10;
                    var_59 = var_59 - var_58;
                  } while (var_59 != var_47);
                  var_17 = (size_t *)((int)var_21 + 1);
                  sVar5 = *var_21;
                  var_10 = (type_3)(type_4)sVar5;
                  var_21 = var_17;
                } while ((type_4)sVar5 != 10);
              }
            }
          }
          else {
            if (var_49 != var_55) goto LAB_0001a398;
            var_28 = 0;
            var_17 = var_14;
            while (var_17 = (size_t *)((int)var_17 + 1), (char)var_10 != '\n') {
              ppuVar14 = var_52();
              if ((*(type_4 *)((int)*ppuVar14 + var_10 * 2 + 1) & 0x20) == 0) {
                if (var_6 != false) {
                  pp_Var15 = var_54();
                  var_10 = (*pp_Var15)[var_10];
                }
                var_28 = (var_28 << 7 | var_28 >> 0x19) + var_10;
              }
              var_10 = (type_3)*(type_4 *)var_17;
            }
          }
LAB_0001a0a0:
          var_53 = (type_4 *)((int)var_17 + (-1 - (int)var_14));
        }
LAB_0001a0a9:
        puVar1 = (type_3 *)(var_63 + var_28 % var_44);
        var_21 = puVar1;
        if (((((size_t *)var_71 == var_17) && (*(type_1 *)(var_64 + 0x10) != false)) &&
            (1 < var_11 - var_12)) &&
           (var_21 = (size_t *)(var_63 + -1), var_58 < var_49)) {
          var_21 = puVar1;
        }
        var_10 = *var_21;
        var_15 = (size_t *)var_10;
joined_r0x0001a0d6:
        if (var_15 != (size_t *)0x0) {
          do {
            peVar34 = var_65 + (int)var_15;
            if (var_28 == peVar34->hash) {
              s1 = peVar34->line;
              if ((type_4 *)peVar34->length == var_53) {
                var_43 = var_66(s1,var_14,(size_t)var_53);
                if (var_43 == 0) goto joined_r0x0001a144;
                if (var_67 && var_6 == false) goto code_r0x0001a1dc;
              }
              else if (var_49 == var_47) goto LAB_0001a0f0;
              var_4 = var_68(s1,(char *)var_14);
              if (!var_4) goto joined_r0x0001a144;
            }
LAB_0001a0f0:
            var_15 = (size_t *)peVar34->next;
            if (var_15 == (size_t *)0x0) break;
          } while( true );
        }
        if (var_69 == var_70) {
          if (0x3fffffe < var_69) goto LAB_0001a9c0;
          var_65 = (type_10 *)var_35(var_65,var_69 << 5);
          var_10 = *var_21;
          var_69 = var_69 * 2;
        }
        peVar34 = var_65 + var_70;
        peVar34->next = var_10;
        peVar34->hash = var_28;
        peVar34->line = (char *)var_14;
        peVar34->length = (size_t)var_53;
        *var_21 = var_70;
        var_15 = (size_t *)var_70;
        var_70 = var_70 + 1;
joined_r0x0001a144:
        if (var_16 == (size_t *)var_36) {
          if (((0x2aaaaaa9 < (int)var_16) ||
              (var_36 = (int)var_16 * 2 - var_31, 0x1ffffffe < var_36)) ||
             (0x1ffffffe < (type_3)((int)var_16 - var_31))) goto LAB_0001a9c0;
          local_68 = (type_9 *)var_35(local_68,var_36 * 4);
          pvVar12 = var_35(var_18 + var_31,(var_36 - var_31) * 4);
          var_18 = (char **)((int)pvVar12 + var_31 * -4);
        }
        var_18[(int)var_16] = (char *)var_14;
        local_68[(int)var_16] = (type_9)var_15;
        var_16 = (size_t *)((int)var_16 + 1);
        var_14 = var_17;
        if (var_48 <= var_17) goto LAB_0001a520;
      } while( true );
    }
    var_16 = (size_t *)0x0;
LAB_0001a520:
    var_64[5] = var_16;
    var_43 = 0;
    while ((size_t *)var_36 != var_16) {
      ppcVar16 = var_18 + (int)var_16;
      *ppcVar16 = (char *)var_17;
      if ((size_t *)var_71 == var_17) goto LAB_0001a5e6;
LAB_0001a553:
      if ((var_27 <= var_43) && (var_26 != false)) goto LAB_0001a618;
      var_16 = (size_t *)((int)var_16 + 1);
      var_48 = (type_4 *)var_17;
      do {
        var_17 = (size_t *)(var_48 + 1);
        var_51 = *var_48;
        var_48 = (type_4 *)var_17;
      } while (var_51 != 10);
      var_43 = var_43 + 1;
    }
    if (((0x2aaaaaa9 < (int)var_36) || (var_10 = var_36 * 2 - var_31, 0x1ffffffe < var_10)) ||
       (0x1ffffffe < var_36 - var_31)) goto LAB_0001a9c0;
    pvVar12 = var_35(var_18 + var_31,(var_10 - var_31) * 4);
    var_18 = (char **)(var_31 * -4 + (int)pvVar12);
    ppcVar16 = var_18 + (int)var_16;
    *ppcVar16 = (char *)var_17;
    var_36 = var_10;
    if ((size_t *)var_71 != var_17) goto LAB_0001a553;
LAB_0001a5e6:
    if ((*(type_1 *)(var_64 + 0x10) != false) && (1 < var_11 - var_12)) {
      *ppcVar16 = (char *)(var_71 + -1);
    }
LAB_0001a618:
    var_64[3] = (size_t *)var_18;
    var_72 = var_64 + 0x2c;
    equivs = var_65;
    var_64[6] = var_16;
    var_64[7] = (size_t *)var_36;
    var_64[0xb] = (size_t *)local_68;
    var_42 = var_69;
    equivs_index = var_70;
    var_64 = var_72;
    if (&var_5[2].buffer == var_72) {
      var_5[1].equiv_max = var_70;
      var_5->equiv_max = var_70;
      var_73(var_65);
      var_73(var_63 + -1);
      return var_7;
    }
  } while( true );
code_r0x0001a1dc:
  var_15 = (size_t *)peVar34->next;
  goto joined_r0x0001a0d6;
}


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

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

byte MASKED(int *param_1,byte param_2)

{
  byte *pbVar1;
  undefined4 uVar2;
  void *__s1;
  ushort *puVar3;
  char cVar4;
  byte bVar5;
  byte bVar6;
  char cVar7;
  uint uVar8;
  undefined4 *puVar9;
  undefined4 *puVar10;
  byte *pbVar11;
  ushort **ppuVar12;
  __int32_t **pp_Var13;
  int iVar14;
  int *piVar15;
  uint *puVar16;
  undefined4 *puVar17;
  int iVar18;
  undefined4 *puVar19;
  uint uVar20;
  uint uVar21;
  uint uVar22;
  byte *pbVar23;
  byte *pbVar24;
  uint uVar25;
  byte *pbVar26;
  uint *puVar27;
  byte *pbVar28;
  uint uVar29;
  int iVar30;
  bool bVar31;
  bool bVar32;
  bool bVar33;
  byte *local_90;
  byte *local_8c;
  uint local_88;
  uint *local_84;
  byte *local_80;
  byte *local_7c;
  byte *local_78;
  uint local_74;
  byte *local_70;
  uint local_6c;
  int local_68;
  uint local_64;
  uint local_60;
  int *local_5c;
  
  bVar5 = FUN_000197e0();
  bVar5 = bVar5 | param_2;
  if (*param_1 == param_1[0x2c]) {
    param_1[0x46] = param_1[0x1a];
    param_1[0x47] = param_1[0x1b];
    param_1[0x48] = param_1[0x1c];
  }
  else {
    bVar6 = FUN_000197e0();
    bVar5 = bVar5 | bVar6;
  }
  if (bVar5 != 0) {
    return bVar5;
  }
  FUN_00019690();
  FUN_00019560();
  if (*param_1 == param_1[0x2c]) {
    local_78 = (byte *)param_1[0x1a];
    param_1[0x46] = (int)local_78;
    param_1[0x47] = param_1[0x1b];
    uVar20 = param_1[0x1c];
    param_1[0x48] = uVar20;
    *(char *)(param_1 + 0x56) = (char)param_1[0x2a];
    local_88 = uVar20;
LAB_000199ff:
    pbVar24 = local_78 + uVar20;
    local_80 = (byte *)(DAT_0004d688 - 4);
    local_90 = local_78;
    local_84 = (uint *)(local_78 + local_88);
    local_8c = pbVar24;
    iVar18 = DAT_0004d698;
    local_7c = pbVar24;
  }
  else {
    FUN_00019690();
    FUN_00019560();
    local_88 = param_1[0x1c];
    local_90 = (byte *)param_1[0x1a];
    local_78 = (byte *)param_1[0x46];
    uVar20 = param_1[0x48];
    if (local_90 == local_78) goto LAB_000199ff;
    local_84 = (uint *)(local_90 + local_88);
    local_7c = local_78 + uVar20;
    if (local_88 < uVar20) {
      *(byte *)local_84 = ~local_78[local_88];
    }
    else {
      *local_7c = ~local_90[uVar20];
    }
    pbVar24 = local_90;
    local_8c = local_78;
    if (*(int *)local_78 == *(int *)local_90) {
      do {
        local_8c = local_8c + 4;
        pbVar24 = pbVar24 + 4;
      } while (*(int *)pbVar24 == *(int *)local_8c);
    }
    if (*local_8c == *pbVar24) {
      do {
        local_8c = local_8c + 1;
        pbVar24 = pbVar24 + 1;
      } while (*pbVar24 == *local_8c);
    }
    local_80 = (byte *)(DAT_0004d688 - 4);
    iVar18 = DAT_0004d698;
    if ((1 < local_80) &&
       (local_90 + (local_88 - *(byte *)(param_1 + 0x2a)) < pbVar24 !=
        local_78 + (uVar20 - *(byte *)(param_1 + 0x56)) < local_8c)) {
      local_8c = local_8c + -1;
      pbVar24 = pbVar24 + -1;
    }
  }
  for (; uVar8 = local_88, iVar30 = DAT_0004d698, pbVar24 != local_90; pbVar24 = pbVar24 + -1) {
    while (pbVar24[-1] == 10) {
      if (iVar18 == 0) goto LAB_00019a73;
      pbVar24 = pbVar24 + -1;
      local_8c = local_8c + -1;
      iVar18 = iVar18 + -1;
      if (pbVar24 == local_90) goto LAB_00019a73;
    }
    local_8c = local_8c + -1;
  }
LAB_00019a73:
  param_1[0x22] = (int)pbVar24;
  param_1[0x4e] = (int)local_8c;
  if ((local_80 < 2) ||
     (local_70 = local_7c, puVar27 = local_84, (char)param_1[0x2a] == (char)param_1[0x56])) {
    pbVar28 = pbVar24 + (local_88 - uVar20);
    if (local_88 < uVar20) {
      pbVar28 = pbVar24;
    }
    if (((uint *)pbVar28 == local_84) || (local_7c[-1] != *(byte *)((int)local_84 + -1))) {
      local_80 = local_7c;
      puVar16 = local_84;
    }
    else {
      puVar27 = local_84;
      pbVar11 = local_7c;
      do {
        pbVar26 = pbVar11 + -1;
        puVar16 = (uint *)((int)puVar27 + -1);
        local_80 = local_7c + ((int)pbVar28 - (int)local_84);
        if (pbVar26 == local_7c + ((int)pbVar28 - (int)local_84)) break;
        pbVar23 = pbVar11 + -2;
        pbVar1 = (byte *)((int)puVar27 + -2);
        puVar27 = puVar16;
        local_80 = pbVar26;
        pbVar11 = pbVar26;
      } while (*pbVar1 == *pbVar23);
    }
    puVar27 = puVar16;
    if ((puVar16 == (uint *)local_90) || (*(byte *)((int)puVar16 + -1) == 10)) {
      if (local_78 != local_80) {
        iVar30 = iVar30 + (uint)(local_80[-1] != 10);
      }
    }
    else {
      iVar30 = iVar30 + 1;
    }
    for (; (puVar27 != local_84 && (iVar30 != 0)); iVar30 = iVar30 + -1) {
      do {
        pbVar28 = (byte *)((int)puVar27 + 1);
        bVar5 = *(byte *)puVar27;
        puVar27 = (uint *)pbVar28;
      } while (bVar5 != 10);
    }
    local_70 = local_80 + ((int)puVar27 - (int)puVar16);
  }
  bVar32 = DAT_0004d68c == '\0';
  param_1[0x24] = (int)puVar27;
  param_1[0x50] = (int)local_70;
  if ((((bVar32) || (DAT_0004d670 != 0)) || (0x1ffffffe < (int)DAT_0004d69c)) ||
     (local_88 <= DAT_0004d69c)) {
    local_74 = 0xffffffff;
    local_88 = 0;
    uVar8 = uVar8 >> 5;
    if (uVar8 == 0) {
      uVar8 = 1;
    }
    local_84 = (uint *)(uVar8 + 5);
  }
  else {
    local_74 = 0;
    local_88 = 1;
    uVar20 = (uint)((int)puVar27 - (int)pbVar24) >> 5;
    if (uVar20 == 0) {
      uVar20 = 1;
    }
    uVar8 = (uint)((int)local_84 - (int)puVar27) >> 5;
    if (uVar8 == 0) {
      uVar8 = 1;
    }
    uVar21 = 1;
    if (0 < (int)DAT_0004d69c) {
      do {
        local_88 = uVar21 * 2;
        iVar18 = uVar21 * -2;
        uVar21 = local_88;
      } while (SBORROW4(DAT_0004d69c,local_88) == (int)(DAT_0004d69c + iVar18) < 0);
      local_74 = local_88 - 1;
    }
    uVar21 = uVar8 + 5;
    if ((int)DAT_0004d69c <= (int)(uVar8 + 5)) {
      uVar21 = DAT_0004d69c;
    }
    local_84 = (uint *)(uVar21 + local_88 + uVar20 + 5);
  }
  puVar9 = (undefined4 *)FUN_00023c60((int)local_84 << 2);
  pbVar24 = (byte *)param_1[0x22];
  if (((DAT_0004d68c == '\0') || (puVar27 != (uint *)pbVar24)) ||
     (pbVar28 = (byte *)param_1[0x4e], local_70 != pbVar28)) {
    if (local_90 == pbVar24) {
      pbVar28 = (byte *)param_1[0x4e];
      goto LAB_0001a84f;
    }
    uVar20 = (uint)local_84;
    local_8c = (byte *)0;
    pbVar28 = local_90;
    do {
      uVar8 = (uint)local_8c;
      local_8c = (byte *)(uVar8 + 1);
      local_84 = (uint *)uVar20;
      if ((local_74 & uVar8) == uVar20) {
        if (0xffffffe < uVar20) goto LAB_0001a9c0;
        local_84 = (uint *)(uVar20 * 2);
        puVar9 = (undefined4 *)FUN_00023ce0(puVar9,uVar20 * 8);
      }
      puVar9[local_74 & uVar8] = pbVar28;
      pbVar11 = pbVar28;
      do {
        pbVar28 = pbVar11 + 1;
        bVar5 = *pbVar11;
        pbVar11 = pbVar28;
      } while (bVar5 != 10);
      uVar20 = (uint)local_84;
    } while (pbVar28 != pbVar24);
    local_6c = (int)local_70 - param_1[0x4e];
    bVar32 = local_88 != 0;
    local_88 = (uint)local_8c;
    if ((bVar32) && (local_88 = DAT_0004d69c, (int)local_8c <= (int)DAT_0004d69c)) {
      local_88 = (uint)local_8c;
    }
    uVar20 = 0x20;
    if (9 < (int)local_8c) {
      uVar20 = (uint)((int)pbVar24 - (int)local_90) / uVar8;
    }
  }
  else {
LAB_0001a84f:
    local_6c = (int)local_70 - (int)pbVar28;
    if (local_88 == 0) {
      local_8c = (byte *)0x0;
      uVar20 = 0x20;
    }
    else {
      local_88 = 0;
      uVar20 = 0x20;
      local_8c = (byte *)0x0;
      if ((int)DAT_0004d69c < 1) {
        local_88 = DAT_0004d69c;
      }
    }
  }
  uVar8 = (uint)((int)local_7c - (int)local_70) / uVar20;
  if (uVar8 == 0) {
    uVar8 = 1;
  }
  if (0xe38e389 < uVar8) {
    uVar8 = 0xe38e389;
  }
  uVar21 = uVar8 + 5;
  if ((int)DAT_0004d69c < (int)(uVar8 + 5)) {
    uVar21 = DAT_0004d69c;
  }
  uVar8 = 1;
  if (local_6c / uVar20 != 0) {
    uVar8 = local_6c / uVar20;
  }
  if (0xe38e389 < uVar8) {
    uVar8 = 0xe38e389;
  }
  uVar21 = local_88 + 5 + uVar8 + uVar21;
  bVar32 = (int)uVar21 < (int)local_88 || 0x1ffffffe < uVar21;
  if (bVar32) goto LAB_0001a9c0;
  puVar10 = (undefined4 *)FUN_00023c60(uVar21 * 4);
  if ((byte *)local_88 == local_8c) {
    if (local_88 != 0) goto LAB_00019df3;
  }
  else if (0 < (int)local_88) {
    uVar8 = (int)local_8c - DAT_0004d69c;
    uVar20 = uVar8;
    do {
      puVar10[uVar20 - uVar8] = puVar9[uVar20 & local_74];
      uVar20 = uVar20 + 1;
    } while (local_88 + uVar8 != uVar20);
    puVar17 = puVar9;
    puVar19 = puVar10;
    do {
      uVar2 = *puVar19;
      puVar19 = puVar19 + 1;
      *puVar17 = uVar2;
      puVar17 = puVar17 + 1;
    } while (puVar10 + local_88 != puVar19);
LAB_00019df3:
    iVar18 = 0;
    do {
      puVar10[iVar18] = local_78 + (puVar9[iVar18] - (int)local_90);
      iVar18 = iVar18 + 1;
    } while (iVar18 < (int)local_88);
  }
  param_1[0x49] = (int)(puVar10 + local_88);
  param_1[0x1d] = (int)(puVar9 + local_88);
  param_1[0x4a] = -local_88;
  param_1[0x1e] = -local_88;
  param_1[0x21] = (int)local_84 - local_88;
  uVar20 = ((int)local_84 - local_88) + 1 + (uVar21 - local_88);
  param_1[0x4d] = uVar21 - local_88;
  DAT_0004d388 = uVar20;
  param_1[0x4f] = (int)local_8c;
  param_1[0x23] = (int)local_8c;
  if (uVar20 < 0x7ffffff) {
    DAT_0004d390 = (void *)FUN_00023c60(uVar20 * 0x10);
    DAT_0004d38c = 1;
    if ((uint)((int)DAT_0004d388 / 3) < 0x201) {
      DAT_0004d394 = 0x1fd;
      iVar18 = 0x7f8;
    }
    else {
      iVar18 = 9;
      do {
        iVar30 = iVar18;
        iVar18 = iVar30 + 1;
        uVar20 = 1 << ((byte)iVar18 & 0x1f);
      } while (uVar20 < (uint)((int)DAT_0004d388 / 3));
      DAT_0004d394 = uVar20 - (byte)(&UNK_0003e181)[iVar30];
      if (0x1ffffffe < DAT_0004d394) goto LAB_0001a9c0;
      iVar18 = DAT_0004d394 * 4 + 4;
    }
    iVar18 = FUN_0001d920(iVar18);
    DAT_0004d398 = iVar18 + 4;
    local_5c = param_1 + 0x1a;
    do {
      local_80 = (byte *)local_5c[3];
      iVar18 = local_5c[4];
      pbVar24 = (byte *)local_5c[8];
      local_6c = local_5c[7];
      local_68 = FUN_00023c60(local_6c << 2);
      cVar4 = DAT_0004d68d;
      uVar20 = DAT_0004d638;
      pbVar28 = (byte *)local_5c[10];
      local_7c = (byte *)DAT_0004d390;
      local_64 = DAT_0004d38c;
      local_60 = DAT_0004d388;
      pbVar11 = (byte *)(local_5c[2] + *local_5c);
      bVar33 = DAT_0004d638 == 0;
      if (pbVar24 < pbVar28) {
        local_8c = (byte *)0x0;
        local_90 = pbVar24;
        do {
          uVar21 = DAT_0004d650;
          bVar5 = *local_90;
          uVar8 = (uint)bVar5;
          pbVar24 = local_90 + 1;
          if (uVar20 == 4) {
            if (bVar5 != 10) {
              ppuVar12 = __ctype_b_loc();
              uVar29 = 0;
              puVar3 = *ppuVar12;
              do {
                pbVar26 = pbVar24;
                if ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0) {
                  do {
                    pbVar24 = pbVar26 + 1;
                    if (*pbVar26 == 10) goto LAB_0001a0a0;
                    uVar8 = (uint)*pbVar26;
                    pbVar26 = pbVar24;
                  } while ((*(byte *)((int)puVar3 + uVar8 * 2 + 1) & 0x20) != 0);
                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + 0x20;
                }
                uVar21 = uVar8;
                if (cVar4 != '\0') {
                  pp_Var13 = __ctype_tolower_loc();
                  uVar21 = (*pp_Var13)[uVar8];
                }
                bVar5 = *pbVar24;
                uVar8 = (uint)bVar5;
                pbVar24 = pbVar24 + 1;
                uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar21;
              } while (bVar5 != 10);
              goto LAB_0001a0a0;
            }
LAB_0001a500:
            pbVar26 = (byte *)0x0;
            uVar29 = 0;
          }
          else {
            if (uVar20 < 5) {
              if (uVar20 == 0) {
LAB_0001a398:
                if (cVar4 == '\0') {
                  uVar29 = 0;
                  pbVar26 = (byte *)0x0;
                  pbVar23 = pbVar24;
                  if (bVar5 == 10) goto LAB_0001a0a9;
                  do {
                    pbVar24 = pbVar23 + 1;
                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;
                    bVar5 = *pbVar23;
                    uVar8 = (uint)bVar5;
                    pbVar23 = pbVar24;
                  } while (bVar5 != 10);
                }
                else {
                  if (bVar5 == 10) goto LAB_0001a500;
                  pp_Var13 = __ctype_tolower_loc();
                  uVar29 = 0;
                  pbVar26 = pbVar24;
                  do {
                    pbVar24 = pbVar26 + 1;
                    uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + (*pp_Var13)[uVar8];
                    bVar5 = *pbVar26;
                    uVar8 = (uint)bVar5;
                    pbVar26 = pbVar24;
                  } while (bVar5 != 10);
                }
              }
              else {
                uVar29 = 0;
                pbVar24 = local_90 + 1;
                if (bVar5 != 10) {
                  uVar25 = 0;
                  local_84 = (uint *)pbVar24;
                  do {
                    cVar7 = (char)uVar8;
                    if ((uVar20 & 2) != 0) {
                      ppuVar12 = __ctype_b_loc();
                      bVar5 = *(byte *)((int)*ppuVar12 + uVar8 * 2 + 1);
                      puVar27 = local_84;
                      while ((bVar5 & 0x20) != 0) {
                        pbVar24 = (byte *)((int)puVar27 + 1);
                        if (*(byte *)puVar27 == 10) goto LAB_0001a0a0;
                        bVar5 = *(byte *)((int)*ppuVar12 + (uint)*(byte *)puVar27 * 2 + 1);
                        puVar27 = (uint *)pbVar24;
                      }
                    }
                    uVar22 = uVar20 & 1;
                    if (uVar22 == 0) {
                      uVar22 = 1;
                    }
                    else if (cVar7 == '\t') {
                      uVar22 = uVar21 - uVar25 % uVar21;
                      uVar8 = 0x20;
                      bVar31 = CARRY4(uVar25,uVar22);
                      uVar25 = uVar25 + uVar22;
                      if (bVar31) {
                        uVar25 = 0;
                      }
                    }
                    else if (cVar7 == '\r') {
                      uVar8 = 0xd;
                      uVar25 = 0;
                    }
                    else if (cVar7 == '\b') {
                      uVar8 = 8;
                      uVar25 = uVar25 - (uVar25 != 0);
                    }
                    else {
                      uVar25 = uVar25 + 1;
                    }
                    if (cVar4 != '\0') {
                      pp_Var13 = __ctype_tolower_loc();
                      uVar8 = (uint)*(byte *)(*pp_Var13 + uVar8);
                    }
                    do {
                      uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;
                      uVar22 = uVar22 - 1;
                    } while (uVar22 != 0);
                    pbVar24 = (byte *)((int)local_84 + 1);
                    uVar22 = *local_84;
                    uVar8 = (uint)(byte)uVar22;
                    local_84 = (uint *)pbVar24;
                  } while ((byte)uVar22 != 10);
                }
              }
            }
            else {
              if (uVar20 != 5) goto LAB_0001a398;
              uVar29 = 0;
              pbVar24 = local_90;
              while (pbVar24 = pbVar24 + 1, (char)uVar8 != '\n') {
                ppuVar12 = __ctype_b_loc();
                if ((*(byte *)((int)*ppuVar12 + uVar8 * 2 + 1) & 0x20) == 0) {
                  if (cVar4 != '\0') {
                    pp_Var13 = __ctype_tolower_loc();
                    uVar8 = (*pp_Var13)[uVar8];
                  }
                  uVar29 = (uVar29 << 7 | uVar29 >> 0x19) + uVar8;
                }
                uVar8 = (uint)*pbVar24;
              }
            }
LAB_0001a0a0:
            pbVar26 = pbVar24 + (-1 - (int)local_90);
          }
LAB_0001a0a9:
          puVar27 = (uint *)(DAT_0004d398 + (uVar29 % DAT_0004d394) * 4);
          local_84 = puVar27;
          if ((((pbVar11 == pbVar24) && ((char)local_5c[0x10] != '\0')) && (1 < DAT_0004d688 - 4U))
             && (local_84 = (uint *)(DAT_0004d398 + -4), 1 < uVar20)) {
            local_84 = puVar27;
          }
          uVar8 = *local_84;
          local_78 = (byte *)uVar8;
joined_r0x0001a0d6:
          if (local_78 != (byte *)0x0) {
            do {
              puVar27 = (uint *)((int)local_78 * 0x10 + (int)local_7c);
              if (uVar29 == puVar27[1]) {
                __s1 = (void *)puVar27[2];
                if ((byte *)puVar27[3] == pbVar26) {
                  iVar30 = memcmp(__s1,local_90,(size_t)pbVar26);
                  if (iVar30 == 0) goto joined_r0x0001a144;
                  if (bVar33 && cVar4 == '\0') goto code_r0x0001a1dc;
                }
                else if (uVar20 == 0) goto LAB_0001a0f0;
                cVar7 = FUN_0001c840(__s1,local_90);
                if (cVar7 == '\0') goto joined_r0x0001a144;
              }
LAB_0001a0f0:
              local_78 = (byte *)*puVar27;
              if (local_78 == (byte *)0x0) break;
            } while( true );
          }
          if (local_60 == local_64) {
            if (0x3fffffe < local_60) goto LAB_0001a9c0;
            local_7c = (byte *)FUN_00023ce0(local_7c,local_60 << 5);
            uVar8 = *local_84;
            local_60 = local_60 * 2;
          }
          puVar27 = (uint *)(local_64 * 0x10 + (int)local_7c);
          *puVar27 = uVar8;
          puVar27[1] = uVar29;
          puVar27[2] = (uint)local_90;
          puVar27[3] = (uint)pbVar26;
          *local_84 = local_64;
          local_78 = (byte *)local_64;
          local_64 = local_64 + 1;
joined_r0x0001a144:
          if (local_8c == (byte *)local_6c) {
            if (((0x2aaaaaa9 < (int)local_8c) ||
                (local_6c = (int)local_8c * 2 - iVar18, 0x1ffffffe < local_6c)) ||
               (0x1ffffffe < (uint)((int)local_8c - iVar18))) goto LAB_0001a9c0;
            local_68 = FUN_00023ce0(local_68,local_6c * 4);
            iVar30 = FUN_00023ce0((int)local_80 + iVar18 * 4,(local_6c - iVar18) * 4);
            local_80 = (byte *)(iVar30 + iVar18 * -4);
          }
          *(byte **)((int)local_80 + (int)local_8c * 4) = local_90;
          *(byte **)(local_68 + (int)local_8c * 4) = local_78;
          local_8c = (byte *)((int)local_8c + 1);
          local_90 = pbVar24;
          if (pbVar28 <= pbVar24) goto LAB_0001a520;
        } while( true );
      }
      local_8c = (byte *)0x0;
LAB_0001a520:
      local_5c[5] = (int)local_8c;
      iVar30 = 0;
      while( true ) {
        if ((byte *)local_6c == local_8c) {
          if (((0x2aaaaaa9 < (int)local_6c) || (uVar20 = local_6c * 2 - iVar18, 0x1ffffffe < uVar20)
              ) || (0x1ffffffe < local_6c - iVar18)) goto LAB_0001a9c0;
          iVar14 = FUN_00023ce0((int)local_80 + iVar18 * 4,(uVar20 - iVar18) * 4);
          local_80 = (byte *)(iVar18 * -4 + iVar14);
          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);
          *puVar9 = pbVar24;
          local_6c = uVar20;
        }
        else {
          puVar9 = (undefined4 *)((int)local_80 + (int)local_8c * 4);
          *puVar9 = pbVar24;
        }
        if (pbVar11 == pbVar24) break;
        if (((int)DAT_0004d69c <= iVar30) && (DAT_0004d68c != '\0')) goto LAB_0001a618;
        local_8c = (byte *)((int)local_8c + 1);
        pbVar28 = pbVar24;
        do {
          pbVar24 = pbVar28 + 1;
          bVar5 = *pbVar28;
          pbVar28 = pbVar24;
        } while (bVar5 != 10);
        iVar30 = iVar30 + 1;
      }
      if (((char)local_5c[0x10] != '\0') && (1 < DAT_0004d688 - 4U)) {
        *puVar9 = pbVar11 + -1;
      }
LAB_0001a618:
      local_5c[3] = (int)local_80;
      piVar15 = local_5c + 0x2c;
      DAT_0004d390 = local_7c;
      local_5c[6] = (int)local_8c;
      local_5c[7] = local_6c;
      local_5c[0xb] = local_68;
      DAT_0004d388 = local_60;
      DAT_0004d38c = local_64;
      local_5c = piVar15;
      if (param_1 + 0x72 == piVar15) {
        param_1[0x57] = local_64;
        param_1[0x2b] = local_64;
        free(local_7c);
        free((void *)(DAT_0004d398 + -4));
        return bVar32;
      }
    } while( true );
  }
LAB_0001a9c0:
                    /* WARNING: Subroutine does not return */
  FUN_00023f50();
code_r0x0001a1dc:
  local_78 = (byte *)*puVar27;
  goto joined_r0x0001a0d6;
}

