
/* WARNING: Removing unreachable block (ram,0x000179ec) */

int keycompare(line *a,line *b)

{
  char cVar1;
  char cVar2;
  char cVar3;
  bool bVar4;
  undefined *puVar5;
  undefined *puVar6;
  int iVar7;
  byte bVar13;
  int iVar8;
  uint32_t *puVar9;
  uint32_t *puVar10;
  int iVar11;
  uint uVar12;
  code *pcVar14;
  code *pcVar15;
  char *pcVar16;
  uint32_t uVar17;
  uint32_t uVar18;
  line *plVar19;
  md5_ctx *pmVar20;
  uint32_t uVar21;
  md5_ctx *pmVar22;
  md5_ctx *pmVar23;
  md5_ctx *pmVar24;
  md5_ctx *pmVar25;
  keyfield *key;
  md5_ctx *pmVar26;
  keyfield *key_00;
  md5_ctx *pmVar27;
  md5_ctx *pmVar28;
  md5_ctx *pmVar29;
  md5_ctx *pmVar30;
  md5_ctx *pmVar31;
  md5_ctx *pmVar32;
  line *line_1;
  code *pcVar33;
  double dVar34;
  double dVar35;
  uint local_2158;
  md5_ctx *local_2154;
  md5_ctx *local_2150;
  md5_ctx *local_214c;
  md5_ctx *pmStack_213c;
  md5_ctx *pmStack_2138;
  md5_ctx *pmStack_2134;
  md5_ctx *pmStack_2130;
  md5_ctx *pmStack_2120;
  md5_ctx *pmStack_211c;
  md5_ctx *pmStack_2118;
  line *plStack_2114;
  md5_ctx *pmStack_2110;
  md5_ctx *pmStack_210c;
  md5_ctx *pmStack_2108;
  md5_ctx *pmStack_2104;
  md5_ctx *pmStack_2100;
  md5_ctx *pmStack_20fc;
  md5_ctx *pmStack_20ec;
  char *ea;
  char *eb;
  longdouble a_1;
  longdouble b_1;
  uint32_t dig [2] [4];
  md5_ctx s [2];
  char stackbuf [4000];
  char stackbuf_1 [4000];
  
  puVar6 = PTR___stack_chk_guard_0003e550;
  puVar5 = PTR_DAT_0003e1a8;
  pmVar25 = (md5_ctx *)a->keylim;
  pcVar14 = (code *)(PTR_0003e1b4 + 0x6938);
  pmVar26 = (md5_ctx *)b->keylim;
  line_1 = *(line **)(PTR_DAT_0003e1a8 + -0x1908);
  iVar7 = *(int *)PTR___stack_chk_guard_0003e550;
  pmVar30 = (md5_ctx *)a->keybeg;
  pcVar15 = (code *)(PTR_0003e1b4 + 0x613c);
  pmVar27 = (md5_ctx *)b->keybeg;
  cVar1 = '\0';
  cVar2 = '\0';
LAB_0001743c:
  bVar4 = pmVar30 < pmVar25;
LAB_00017440:
  if (!bVar4) {
    pmVar25 = pmVar30;
  }
  if (pmVar26 <= pmVar27) {
    pmVar26 = pmVar27;
  }
  pmVar22 = (md5_ctx *)((int)pmVar25 - (int)pmVar30);
  pmVar24 = (md5_ctx *)line_1[1].length;
  pmVar29 = (md5_ctx *)((int)pmVar26 - (int)pmVar27);
  pmVar23 = (md5_ctx *)line_1[1].text;
  if (((((puVar5[-0x14df] != '\0') || (*(char *)((int)&line_1[1].keybeg + 2) != '\0')) ||
       (((uint)line_1[1].keylim & 0xffff0000) != 0)) ||
      ((*(char *)((int)&line_1[1].keylim + 2) != '\0' ||
       (*(char *)((int)&line_1[1].keybeg + 3) != '\0')))) || (*(char *)&line_1[2].text != '\0')) {
    pmVar31 = pmVar29;
    if ((pmVar23 == (md5_ctx *)0x0) && (pmVar24 == (md5_ctx *)0x0)) {
      cVar1 = *(char *)&pmVar25->A;
      *(char *)&pmVar25->A = '\0';
      cVar2 = *(char *)&pmVar26->A;
      *(char *)&pmVar26->A = '\0';
      cVar3 = *(char *)((int)&line_1[1].keybeg + 2);
      pmVar28 = pmVar27;
      pmVar26 = pmVar30;
    }
    else {
      pmVar26 = (md5_ctx *)stackbuf;
      if ((char *)((int)pmVar22 + (int)pmVar29) + 2 < (char *)0xfa1) {
        local_2154 = (md5_ctx *)0x0;
        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));
      }
      else {
        pmVar26 = (md5_ctx *)xmalloc((size_t)((char *)((int)pmVar22 + (int)pmVar29) + 2));
        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));
        local_214c = pmVar22;
        local_2150 = pmVar23;
        local_2154 = pmVar26;
      }
      if (pmVar22 == (md5_ctx *)0x0) {
        *(char *)&pmVar26->A = '\0';
      }
      else {
        pmVar32 = (md5_ctx *)((int)pmVar30 + (int)pmVar22);
        pmVar22 = (md5_ctx *)0x0;
        pmVar25 = pmVar30;
        do {
          bVar13 = *(byte *)&pmVar25->A;
          if ((pmVar23 == (md5_ctx *)0x0) ||
             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {
            puVar10 = pmVar22->total;
            if (pmVar24 != (md5_ctx *)0x0) {
              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));
            }
            pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);
            *(byte *)((int)puVar10 + (int)(pmVar26->total + -8)) = bVar13;
          }
          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);
        } while (pmVar32 != pmVar25);
        *(undefined1 *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = 0;
      }
      if (pmVar29 == (md5_ctx *)0x0) {
        *(char *)&pmVar28->A = '\0';
      }
      else {
        pmVar29 = (md5_ctx *)((int)pmVar27 + (int)pmVar29);
        pmVar31 = (md5_ctx *)0x0;
        pmVar25 = pmVar27;
        do {
          bVar13 = *(byte *)&pmVar25->A;
          if ((pmVar23 == (md5_ctx *)0x0) ||
             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {
            puVar10 = pmVar31->total;
            if (pmVar24 != (md5_ctx *)0x0) {
              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));
            }
            pmVar31 = (md5_ctx *)((int)&pmVar31->A + 1);
            *(byte *)((int)puVar10 + (int)(pmVar28->total + -8)) = bVar13;
          }
          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);
        } while (pmVar29 != pmVar25);
        *(undefined1 *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = 0;
      }
      cVar3 = *(char *)((int)&line_1[1].keybeg + 2);
    }
    pmVar25 = pmVar26;
    pmVar32 = pmVar28;
    if (cVar3 == '\0') {
      if (*(char *)&line_1[1].keylim != '\0') {
        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pmVar26,&ea);
        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pmVar28,&eb);
        if (pmVar26 == (md5_ctx *)ea) {
          local_2158 = -(uint)(pmVar28 != (md5_ctx *)eb);
          local_2150 = pmVar23;
          goto LAB_000175d8;
        }
        local_2150 = pmVar23;
        if (pmVar28 != (md5_ctx *)eb) {
          if (dVar35 <= dVar34) {
            if (dVar35 < dVar34) goto LAB_000179f8;
            if (dVar34 == dVar35) {
              local_2158 = 0;
              goto LAB_000175d8;
            }
          }
          local_2158 = 0xffffffff;
          goto LAB_000175d8;
        }
LAB_000179f8:
        local_2158 = 1;
        goto LAB_000175d8;
      }
      if (*(char *)((int)&line_1[1].keylim + 1) == '\0') {
        if (*(char *)((int)&line_1[1].keylim + 2) != '\0') {
          pcVar33 = pcVar15;
          iVar11 = (*pcVar15)(pmVar26,0);
          iVar8 = (*pcVar33)(pmVar28,0);
          local_2158 = iVar11 - iVar8;
          local_2150 = pmVar24;
          local_214c = pmVar23;
          goto LAB_000175d8;
        }
        if (*(char *)((int)&line_1[1].keybeg + 3) != '\0') {
          pmStack_2138 = s + 1;
          puVar10 = (uint32_t *)(puVar5 + -0x1a38);
          pmVar25 = pmStack_2138;
          do {
            pmVar27 = pmVar25;
            puVar9 = puVar10;
            puVar10 = puVar9 + 4;
            uVar21 = puVar9[1];
            uVar18 = puVar9[2];
            uVar17 = puVar9[3];
            pmVar27->A = *puVar9;
            pmVar27->B = uVar21;
            pmVar27->C = uVar18;
            pmVar27->D = uVar17;
            pmVar25 = (md5_ctx *)pmVar27->total;
          } while (puVar10 != (uint32_t *)(puVar5 + -0x19a8));
          pmStack_2130 = s;
          uVar18 = puVar9[5];
          uVar17 = puVar9[6];
          pmVar27->total[0] = *puVar10;
          pmVar27->total[1] = uVar18;
          pmVar27->buflen = uVar17;
          pmVar25 = pmStack_2138;
          pmVar27 = pmStack_2130;
          do {
            pmVar29 = pmVar27;
            pmVar30 = pmVar25;
            pmVar25 = (md5_ctx *)pmVar30->total;
            uVar21 = pmVar30->B;
            uVar18 = pmVar30->C;
            uVar17 = pmVar30->D;
            pmVar29->A = pmVar30->A;
            pmVar29->B = uVar21;
            pmVar29->C = uVar18;
            pmVar29->D = uVar17;
            pmVar27 = (md5_ctx *)pmVar29->total;
          } while (pmVar25 != (md5_ctx *)(s[1].buffer + 0x1d));
          uVar18 = pmVar30->total[1];
          uVar17 = pmVar30->buflen;
          cVar3 = puVar5[-0x14df];
          pmVar29->total[0] = *(uint32_t *)pmVar25;
          pmVar29->total[1] = uVar18;
          pmVar29->buflen = uVar17;
          if (cVar3 == '\0') {
            pmVar25 = (md5_ctx *)(dig + 1);
            md5_process_bytes(pmVar26,(size_t)pmVar22,pmStack_2130);
            pmVar27 = (md5_ctx *)dig;
            md5_finish_ctx(pmStack_2130,pmVar27);
            md5_process_bytes(pmVar28,(size_t)pmVar31,pmStack_2138);
            md5_finish_ctx(pmStack_2138,pmVar25);
            uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmVar25,0x10);
            local_214c = (md5_ctx *)0x0;
            pmVar29 = pmVar22;
            pmVar30 = pmStack_2138;
            pmVar32 = pmVar26;
            local_2150 = pmVar31;
            pmStack_213c = pmVar28;
            if (uVar12 != 0) goto LAB_00018040;
            goto LAB_00017ff4;
          }
          pmStack_2120 = (md5_ctx *)((int)pmVar22->total + (int)(pmVar26->total + -8));
          local_214c = (md5_ctx *)0x0;
          pmVar30 = (md5_ctx *)stackbuf_1;
          local_2158 = 0;
          pmStack_211c = (md5_ctx *)((int)pmVar31->total + (int)(pmVar28->total + -8));
          pmStack_2134 = (md5_ctx *)(((int)pmVar31->total + (int)(pmVar22->total + -8)) * 3 + 2);
          pmVar27 = (md5_ctx *)0xfa0;
          local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);
          pmStack_2118 = (md5_ctx *)0x55555555;
          pmVar32 = (md5_ctx *)(uint)(pmVar26 < pmStack_2120);
          pmStack_213c = pmVar26;
          plStack_2114 = line_1;
          pmStack_2110 = pmVar26;
          pmStack_210c = pmVar28;
          pmStack_2108 = pmVar22;
          pmStack_2104 = pmVar31;
          pmStack_2100 = pmVar24;
          pmStack_20fc = pmVar23;
          pmStack_20ec = pmVar30;
          goto LAB_00017c30;
        }
        if (*(char *)&line_1[2].text != '\0') {
          local_2158 = filevercmp((char *)pmVar26,(char *)pmVar28);
          local_2150 = pmVar24;
          local_214c = pmVar23;
          goto LAB_000175d8;
        }
        if (pmVar22 == (md5_ctx *)0x0) {
          local_2158 = -(uint)(pmVar31 != (md5_ctx *)0x0);
          goto LAB_000175d8;
        }
        if (pmVar31 == (md5_ctx *)0x0) goto LAB_000179f8;
        pcVar16 = (char *)((int)&pmVar31->A + 1);
        pmVar32 = (md5_ctx *)((int)&pmVar22->A + 1);
        pmVar20 = pmVar28;
        pcVar33 = (code *)PTR_xmemcoll0_0003e200;
        goto LAB_000177ec;
      }
      cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];
      while (cVar3 != '\0') {
        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);
        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];
      }
      cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];
      while (cVar3 != '\0') {
        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);
        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];
      }
      pmVar30 = (md5_ctx *)(PTR_0003e1b4 + 0x6090);
      iVar11 = find_unit_order((char *)pmVar25);
      iVar8 = find_unit_order((char *)pmVar32);
      local_2158 = iVar11 - iVar8;
      pmVar27 = pmVar25;
      pmVar29 = pmVar32;
      local_2150 = pmVar24;
      local_214c = pmVar23;
      if (local_2158 != 0) goto LAB_000175d8;
    }
    else {
      cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];
      while (cVar3 != '\0') {
        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);
        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];
      }
      cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];
      while (cVar3 != '\0') {
        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);
        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];
      }
    }
    pcVar16 = *(char **)(PTR_DAT_0003e1a8 + -0x14dc);
    pmVar20 = *(md5_ctx **)(PTR_DAT_0003e1a8 + -0x14d8);
    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;
LAB_000177ec:
    local_2158 = (*pcVar33)(pmVar25,pmVar32,pmVar20,pcVar16);
    local_2150 = pmVar24;
    local_214c = pmVar23;
    if (pmVar23 != (md5_ctx *)0x0) goto LAB_000175e4;
LAB_00017808:
    if (pmVar24 != (md5_ctx *)0x0) goto LAB_000175e4;
    *(char *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = cVar1;
    *(char *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = cVar2;
    pmVar28 = pmVar22;
    pmVar32 = pmVar31;
joined_r0x0001782c:
    do {
      if (local_2158 == 0) {
        line_1 = (line *)line_1[2].length;
        if (line_1 != (line *)0x0) {
          pmVar30 = (md5_ctx *)a->text;
          key_00 = (keyfield *)a->length;
          pmVar29 = (md5_ctx *)b->text;
          key = (keyfield *)b->length;
          if (line_1->keybeg == (char *)0xffffffff) {
            pcVar16 = line_1->text;
            pmVar25 = (md5_ctx *)
                      ((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4));
            pmVar26 = (md5_ctx *)
                      ((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4));
          }
          else {
            plVar19 = line_1;
            pmVar25 = (md5_ctx *)limfield((line *)pmVar30,key_00,line_1);
            pmVar26 = (md5_ctx *)limfield((line *)pmVar29,key,plVar19);
            pcVar16 = line_1->text;
          }
          if (pcVar16 != (char *)0xffffffff) {
            plVar19 = line_1;
            pmVar30 = (md5_ctx *)begfield((line *)pmVar30,key_00,line_1);
            pmVar27 = (md5_ctx *)begfield((line *)pmVar29,key,plVar19);
            goto LAB_0001743c;
          }
          bVar4 = pmVar30 < pmVar25;
          pmVar27 = pmVar29;
          if (*(char *)&line_1[1].keybeg == '\0') goto LAB_00017440;
          pmVar22 = pmVar30;
          if (pmVar25 <= pmVar30) goto LAB_000178f8;
          goto LAB_000178dc;
        }
      }
      else {
LAB_00017838:
        if (*(char *)((int)&line_1[1].keylim + 3) != '\0') {
          local_2158 = -local_2158;
        }
      }
      if (iVar7 == *(int *)puVar6) {
        return local_2158;
      }
      (*(code *)PTR___stack_chk_fail_0003e518)();
LAB_00017dc0:
      iVar11 = (*pcVar14)();
      pmVar22 = (md5_ctx *)(iVar11 + 1);
      pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar22->total + -8));
      if (line_1 == (line *)0x0) goto LAB_00018174;
LAB_00017de0:
      pmVar27 = pmVar25;
      if (pmVar27 < pmStack_2118) {
        pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);
      }
      (*(code *)PTR_free_0003e558)(local_214c);
      pmVar26 = (md5_ctx *)xmalloc((size_t)pmVar27);
      if (pmVar32 != (md5_ctx *)0x0) {
        (*(code *)PTR_strxfrm_0003e464)(pmVar26,pmStack_213c,pmVar29);
      }
      pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));
      local_214c = pmVar26;
      if (local_2150 != (md5_ctx *)0x0) {
        (*(code *)PTR_strxfrm_0003e464)(pmVar25,pmVar28,pmVar22);
        if (pmVar32 == (md5_ctx *)0x0) goto LAB_0001809c;
        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);
        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);
        goto LAB_00017c8c;
      }
      if (pmVar32 != (md5_ctx *)0x0) {
        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);
        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);
FUN_00017f2c:
        if (pmStack_213c < pmStack_2120) {
          pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);
          pmVar30 = pmVar26;
LAB_00017cc8:
          do {
            md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130);
            md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138);
            if (local_2158 == 0) {
              pmVar26 = pmVar22;
              if (pmVar22 < pmVar29 == 0) {
                pmVar26 = pmVar29;
              }
              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);
              if (local_2158 != 0) goto LAB_00017c30;
              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);
              if (pmVar27 < pmStack_2134) goto LAB_00017d44;
LAB_00017c40:
              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;
LAB_00017d8c:
              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);
              pmVar29 = (md5_ctx *)(iVar11 + 1);
              if (local_2150 != (md5_ctx *)0x0) {
                line_1 = (line *)(uint)(pmVar27 < pmVar29);
                goto LAB_00017dc0;
              }
              pmVar22 = (md5_ctx *)0x0;
              pmVar25 = pmVar29;
              if (pmVar27 < pmVar29) goto LAB_00017de0;
LAB_00018174:
              pmVar26 = pmVar30;
              if (pmVar27 < pmVar25) goto LAB_00017de0;
            }
            else {
LAB_00017c30:
              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;
LAB_00017d44:
              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);
              if (pmVar27 <= pmStack_2134) {
                pmVar27 = pmStack_2134;
              }
              (*(code *)PTR_free_0003e558)(local_214c);
              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);
              local_214c = pmVar30;
              if (pmVar30 == (md5_ctx *)0x0) {
                pmVar27 = (md5_ctx *)0xfa0;
                pmVar30 = pmStack_20ec;
                goto LAB_00017c40;
              }
              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;
LAB_00017c48:
              pmVar22 = (md5_ctx *)0x0;
              if (local_2150 != (md5_ctx *)0x0) {
                pmVar29 = (md5_ctx *)0x0;
                line_1 = (line *)0x0;
                goto LAB_00017dc0;
              }
              pmVar29 = (md5_ctx *)0x0;
              pmVar26 = pmVar30;
            }
            pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));
            if (pmVar32 == (md5_ctx *)0x0) {
              if (local_2150 == (md5_ctx *)0x0) break;
LAB_0001809c:
              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);
              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);
            }
            else {
              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);
              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);
              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;
LAB_00017c8c:
              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);
              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);
              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);
              if (pmVar32 != (md5_ctx *)0x0) {
                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);
                pmVar30 = pmVar26;
                goto LAB_00017cc8;
              }
            }
            local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);
            pmVar30 = pmVar26;
            if (pmStack_211c <= pmVar28) break;
          } while( true );
        }
      }
      pmStack_213c = pmVar25;
      local_2150 = pmVar22;
      pmStack_211c = pmStack_20fc;
      pmStack_2120 = pmStack_2100;
      md5_process_bytes(pmVar26,(size_t)pmVar29,pmStack_2130);
      pmVar27 = (md5_ctx *)dig;
      md5_finish_ctx(pmStack_2130,pmVar27);
      md5_process_bytes(pmStack_213c,(size_t)local_2150,pmStack_2138);
      pmStack_2134 = (md5_ctx *)(dig + 1);
      md5_finish_ctx(pmStack_2138,pmStack_2134);
      uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmStack_2134,0x10);
      pmVar23 = pmStack_20fc;
      pmVar24 = pmStack_2100;
      pmVar22 = pmStack_2108;
      pmVar25 = pmVar29;
      pmVar30 = pmVar26;
      pmVar31 = pmStack_2104;
      pmVar32 = pmStack_2110;
      pmVar28 = pmStack_210c;
      line_1 = plStack_2114;
      if ((uVar12 == 0) && (uVar12 = local_2158, local_2158 == 0)) {
LAB_00017ff4:
        pmVar27 = (md5_ctx *)(uint)(local_2150 < pmVar29);
        pmVar25 = local_2150;
        if (pmVar27 == (md5_ctx *)0x0) {
          pmVar25 = pmVar29;
        }
        uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar26,pmStack_213c,pmVar25);
        pmVar25 = pmVar29;
        pmVar30 = pmVar26;
        pmStack_2138 = pmVar24;
        pmStack_2134 = pmVar23;
        if (uVar12 == 0) {
          uVar12 = (int)pmVar27 - (uint)(pmVar29 < local_2150);
        }
      }
LAB_00018040:
      local_2158 = uVar12;
      pmVar26 = pmVar32;
      (*(code *)PTR_free_0003e558)(local_214c);
      pmVar29 = pmVar25;
      local_2150 = pmVar24;
      pmStack_213c = pmVar23;
LAB_000175d8:
      if (pmVar23 == (md5_ctx *)0x0) goto LAB_00017808;
LAB_000175e4:
      (*(code *)PTR_free_0003e558)(local_2154);
      pmVar28 = pmVar22;
      pmVar32 = pmVar31;
    } while( true );
  }
  pmVar32 = pmVar29;
  if (pmVar23 == (md5_ctx *)0x0) {
    pmVar28 = (md5_ctx *)(uint)(pmVar29 != (md5_ctx *)0x0);
    if (pmVar22 == (md5_ctx *)0x0) {
      local_2158 = -(int)pmVar28;
      goto joined_r0x0001782c;
    }
    if (pmVar29 != (md5_ctx *)0x0) {
      if (pmVar24 == (md5_ctx *)0x0) {
        pmVar26 = pmVar29;
        if (pmVar22 <= pmVar29) {
          pmVar26 = pmVar22;
        }
        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar27,pmVar26);
        local_2150 = pmVar22;
        if (local_2158 != 0) goto LAB_00017838;
      }
      else if ((pmVar30 < pmVar25) && (pmVar27 < pmVar26)) {
        pmVar28 = (md5_ctx *)(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar30->A - 0x10));
        local_2158 = (int)pmVar28 -
                     (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));
        if (local_2158 != 0) goto LAB_00017838;
        pmVar23 = (md5_ctx *)((int)pmVar30 + (int)pmVar29);
        pmVar26 = pmVar27;
        pmVar25 = pmVar30;
        while( true ) {
          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);
          pmVar26 = (md5_ctx *)((int)&pmVar26->A + 1);
          pmVar30 = pmVar23;
          if ((pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22)) || (pmVar25 == pmVar23)) break;
          local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10)) -
                       (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10));
          if (local_2158 != 0) goto LAB_00017838;
        }
      }
      if (pmVar22 < pmVar29) {
        local_2158 = 0xffffffff;
        goto LAB_00017838;
      }
      local_2158 = (uint)(pmVar22 != pmVar29);
      goto joined_r0x0001782c;
    }
    local_2158 = 1;
    goto LAB_00017838;
  }
  pmVar22 = pmVar30;
  if (pmVar24 != (md5_ctx *)0x0) goto LAB_000174c0;
LAB_000181d0:
  if ((pmVar25 <= pmVar22) ||
     (*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0')) {
    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);
    pmVar31 = pmVar27;
    if (pmVar26 <= pmVar27) {
      local_2158 = (uint)(pmVar27 < pmVar26);
      goto LAB_00018290;
    }
    while (pmVar27 = (md5_ctx *)((int)&pmVar31->A + 1),
          *(char *)((int)pmVar23->total + (*(byte *)&pmVar31->A - 0x10)) != '\0') {
      pmVar31 = pmVar27;
      if (pmVar26 == pmVar27) goto LAB_00018284;
    }
    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);
    if (pmVar28 == (md5_ctx *)0x0) goto LAB_0001828c;
    local_2158 = (uint)*(byte *)&pmVar22->A - (uint)*(byte *)&pmVar31->A;
    if (local_2158 != 0) goto LAB_00017838;
  }
  pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);
  goto LAB_000181d0;
LAB_000174c0:
  if ((pmVar25 <= pmVar22) ||
     (*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0')) {
    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);
    if (pmVar26 <= pmVar27) {
      local_2158 = (uint)(pmVar27 < pmVar26);
      goto LAB_00018290;
    }
    while (pmVar28 = (md5_ctx *)((int)&pmVar27->A + 1),
          *(char *)((int)pmVar23->total + (*(byte *)&pmVar27->A - 0x10)) != '\0') {
      pmVar27 = pmVar28;
      if (pmVar26 == pmVar28) goto LAB_00018284;
    }
    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);
    pmVar31 = pmVar27;
    if (pmVar28 == (md5_ctx *)0x0) goto LAB_0001828c;
    local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar22->A - 0x10)) -
                 (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));
    pmVar27 = (md5_ctx *)((int)&pmVar27->A + 1);
    if (local_2158 != 0) goto LAB_00017838;
  }
  pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);
  goto LAB_000174c0;
LAB_00018284:
  pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);
  pmVar31 = pmVar26;
LAB_0001828c:
  local_2158 = (uint)(pmVar31 < pmVar26);
  pmVar27 = pmVar31;
LAB_00018290:
  local_2158 = (int)pmVar28 - local_2158;
  goto joined_r0x0001782c;
  while (pmVar30 = pmVar25, pmVar22 = pmVar23, pmVar25 != pmVar23) {
LAB_000178dc:
    pmVar23 = (md5_ctx *)((int)&pmVar22->A + 1);
    pmVar30 = pmVar22;
    if (puVar5[*(byte *)&pmVar22->A - 0x15f0] == '\0') break;
  }
LAB_000178f8:
  bVar4 = pmVar30 < pmVar25;
  if (pmVar29 < pmVar26) {
    do {
      bVar4 = pmVar30 < pmVar25;
      pmVar27 = pmVar29;
      if (puVar5[*(byte *)&pmVar29->A - 0x15f0] == '\0') break;
      pmVar29 = (md5_ctx *)((int)&pmVar29->A + 1);
      pmVar27 = pmVar26;
    } while (pmVar26 != pmVar29);
  }
  goto LAB_00017440;
}



/* WARNING: Removing unreachable block (ram,0x000179ec) */

uint FUN_00017390(undefined4 *param_1,undefined4 *param_2)

{
  byte bVar1;
  byte bVar2;
  char cVar3;
  bool bVar4;
  undefined *puVar5;
  undefined *puVar6;
  byte bVar10;
  undefined4 *puVar7;
  undefined4 *puVar8;
  uint uVar9;
  code *pcVar11;
  code *pcVar12;
  int iVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  byte *pbVar16;
  undefined4 uVar17;
  byte *pbVar18;
  byte *pbVar19;
  byte *pbVar20;
  byte *pbVar21;
  byte *pbVar22;
  int iVar23;
  byte *pbVar24;
  int iVar25;
  byte *pbVar26;
  byte *pbVar27;
  byte *pbVar28;
  byte *pbVar29;
  byte *pbVar30;
  byte *pbVar31;
  int *piVar32;
  code *pcVar33;
  double dVar34;
  double dVar35;
  uint local_2158;
  byte *local_2154;
  byte *local_2150;
  byte *local_214c;
  byte *local_213c;
  byte *local_2138;
  byte *local_2134;
  undefined4 *local_2130;
  byte *local_2120;
  byte *local_211c;
  byte *local_2118;
  int *local_2114;
  byte *local_2110;
  byte *local_210c;
  byte *local_2108;
  byte *local_2104;
  byte *local_2100;
  byte *local_20fc;
  byte *local_20ec;
  byte *local_20e8;
  byte *local_20e4 [6];
  byte abStack_20cc [16];
  byte abStack_20bc [16];
  undefined4 local_20ac [39];
  byte local_2010 [4];
  undefined4 local_200c [35];
  byte abStack_1f80 [12];
  byte local_1f74 [4000];
  byte abStack_fd4 [4000];
  int local_34;
  
  puVar6 = PTR___stack_chk_guard_0003e550;
  puVar5 = PTR_DAT_0003e1a8;
  pbVar22 = (byte *)param_1[3];
  pcVar11 = (code *)(PTR_0003e1b4 + 0x6938);
  pbVar24 = (byte *)param_2[3];
  piVar32 = *(int **)(PTR_DAT_0003e1a8 + -0x1908);
  local_34 = *(int *)PTR___stack_chk_guard_0003e550;
  pbVar29 = (byte *)param_1[2];
  pcVar12 = (code *)(PTR_0003e1b4 + 0x613c);
  pbVar26 = (byte *)param_2[2];
  bVar1 = 0;
  bVar2 = 0;
LAB_0001743c:
  bVar4 = pbVar29 < pbVar22;
LAB_00017440:
  if (!bVar4) {
    pbVar22 = pbVar29;
  }
  if (pbVar24 <= pbVar26) {
    pbVar24 = pbVar26;
  }
  pbVar18 = pbVar22 + -(int)pbVar29;
  pbVar21 = (byte *)piVar32[5];
  pbVar28 = pbVar24 + -(int)pbVar26;
  pbVar20 = (byte *)piVar32[4];
  if (((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||
       ((piVar32[7] & 0xffff0000U) != 0)) ||
      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||
     (*(char *)(piVar32 + 8) != '\0')) {
    pbVar30 = pbVar28;
    if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {
      bVar1 = *pbVar22;
      *pbVar22 = 0;
      bVar2 = *pbVar24;
      *pbVar24 = 0;
      cVar3 = *(char *)((int)piVar32 + 0x1a);
      pbVar27 = pbVar26;
      pbVar24 = pbVar29;
    }
    else {
      pbVar24 = local_1f74;
      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {
        local_2154 = (byte *)0x0;
        pbVar27 = pbVar24 + (int)(pbVar18 + 1);
      }
      else {
        pbVar24 = (byte *)xmalloc();
        pbVar27 = pbVar24 + (int)(pbVar18 + 1);
        local_214c = pbVar18;
        local_2150 = pbVar20;
        local_2154 = pbVar24;
      }
      if (pbVar18 == (byte *)0x0) {
        *pbVar24 = 0;
      }
      else {
        pbVar31 = pbVar29 + (int)pbVar18;
        pbVar18 = (byte *)0x0;
        pbVar22 = pbVar29;
        do {
          bVar10 = *pbVar22;
          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {
            pbVar16 = pbVar24 + (int)pbVar18;
            if (pbVar21 != (byte *)0x0) {
              bVar10 = pbVar21[bVar10];
            }
            pbVar18 = pbVar18 + 1;
            *pbVar16 = bVar10;
          }
          pbVar22 = pbVar22 + 1;
        } while (pbVar31 != pbVar22);
        pbVar24[(int)pbVar18] = 0;
      }
      if (pbVar28 == (byte *)0x0) {
        *pbVar27 = 0;
      }
      else {
        pbVar28 = pbVar26 + (int)pbVar28;
        pbVar30 = (byte *)0x0;
        pbVar22 = pbVar26;
        do {
          bVar10 = *pbVar22;
          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {
            pbVar31 = pbVar27 + (int)pbVar30;
            if (pbVar21 != (byte *)0x0) {
              bVar10 = pbVar21[bVar10];
            }
            pbVar30 = pbVar30 + 1;
            *pbVar31 = bVar10;
          }
          pbVar22 = pbVar22 + 1;
        } while (pbVar28 != pbVar22);
        pbVar27[(int)pbVar30] = 0;
      }
      cVar3 = *(char *)((int)piVar32 + 0x1a);
    }
    pbVar22 = pbVar24;
    pbVar31 = pbVar27;
    if (cVar3 == '\0') {
      if (*(char *)(piVar32 + 7) != '\0') {
        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);
        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);
        if (pbVar24 == local_20e8) {
          local_2158 = -(uint)(pbVar27 != local_20e4[0]);
          local_2150 = pbVar20;
          goto LAB_000175d8;
        }
        local_2150 = pbVar20;
        if (pbVar27 != local_20e4[0]) {
          if (dVar35 <= dVar34) {
            if (dVar35 < dVar34) goto LAB_000179f8;
            if (dVar34 == dVar35) {
              local_2158 = 0;
              goto LAB_000175d8;
            }
          }
          local_2158 = 0xffffffff;
          goto LAB_000175d8;
        }
LAB_000179f8:
        local_2158 = 1;
        goto LAB_000175d8;
      }
      if (*(char *)((int)piVar32 + 0x1d) == '\0') {
        if (*(char *)((int)piVar32 + 0x1e) != '\0') {
          pcVar33 = pcVar12;
          iVar23 = (*pcVar12)(pbVar24,0);
          iVar25 = (*pcVar33)(pbVar27,0);
          local_2158 = iVar23 - iVar25;
          local_2150 = pbVar21;
          local_214c = pbVar20;
          goto LAB_000175d8;
        }
        if (*(char *)((int)piVar32 + 0x1b) != '\0') {
          local_2138 = local_2010;
          puVar8 = (undefined4 *)(puVar5 + -0x1a38);
          pbVar22 = local_2138;
          do {
            pbVar26 = pbVar22;
            puVar7 = puVar8;
            puVar8 = puVar7 + 4;
            uVar17 = puVar7[1];
            uVar15 = puVar7[2];
            uVar14 = puVar7[3];
            *(undefined4 *)pbVar26 = *puVar7;
            *(undefined4 *)(pbVar26 + 4) = uVar17;
            *(undefined4 *)(pbVar26 + 8) = uVar15;
            *(undefined4 *)(pbVar26 + 0xc) = uVar14;
            pbVar22 = pbVar26 + 0x10;
          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));
          local_2130 = local_20ac;
          uVar15 = puVar7[5];
          uVar14 = puVar7[6];
          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;
          *(undefined4 *)(pbVar26 + 0x14) = uVar15;
          *(undefined4 *)(pbVar26 + 0x18) = uVar14;
          pbVar22 = local_2138;
          puVar8 = local_2130;
          do {
            puVar7 = puVar8;
            pbVar26 = pbVar22;
            pbVar22 = pbVar26 + 0x10;
            uVar17 = *(undefined4 *)(pbVar26 + 4);
            uVar15 = *(undefined4 *)(pbVar26 + 8);
            uVar14 = *(undefined4 *)(pbVar26 + 0xc);
            *puVar7 = *(undefined4 *)pbVar26;
            puVar7[1] = uVar17;
            puVar7[2] = uVar15;
            puVar7[3] = uVar14;
            puVar8 = puVar7 + 4;
          } while (pbVar22 != abStack_1f80);
          uVar15 = *(undefined4 *)(pbVar26 + 0x14);
          uVar14 = *(undefined4 *)(pbVar26 + 0x18);
          cVar3 = puVar5[-0x14df];
          puVar7[4] = *(undefined4 *)pbVar22;
          puVar7[5] = uVar15;
          puVar7[6] = uVar14;
          if (cVar3 == '\0') {
            md5_process_bytes(pbVar24,pbVar18,local_2130);
            pbVar26 = abStack_20cc;
            md5_finish_ctx(local_2130,pbVar26);
            md5_process_bytes(pbVar27,pbVar30,local_2138);
            md5_finish_ctx(local_2138,abStack_20bc);
            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);
            local_214c = (byte *)0x0;
            pbVar28 = pbVar18;
            pbVar22 = abStack_20bc;
            pbVar29 = local_2138;
            pbVar31 = pbVar24;
            local_2150 = pbVar30;
            local_213c = pbVar27;
            if (uVar9 != 0) goto LAB_00018040;
            goto LAB_00017ff4;
          }
          local_2120 = pbVar24 + (int)pbVar18;
          local_214c = (byte *)0x0;
          pbVar29 = abStack_fd4;
          local_2158 = 0;
          local_211c = pbVar27 + (int)pbVar30;
          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);
          pbVar26 = (byte *)0xfa0;
          local_2150 = (byte *)(uint)(pbVar27 < local_211c);
          local_2118 = (byte *)0x55555555;
          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);
          local_213c = pbVar24;
          local_2114 = piVar32;
          local_2110 = pbVar24;
          local_210c = pbVar27;
          local_2108 = pbVar18;
          local_2104 = pbVar30;
          local_2100 = pbVar21;
          local_20fc = pbVar20;
          local_20ec = pbVar29;
          goto LAB_00017c30;
        }
        if (*(char *)(piVar32 + 8) != '\0') {
          local_2158 = filevercmp(pbVar24,pbVar27);
          local_2150 = pbVar21;
          local_214c = pbVar20;
          goto LAB_000175d8;
        }
        if (pbVar18 == (byte *)0x0) {
          local_2158 = -(uint)(pbVar30 != (byte *)0x0);
          goto LAB_000175d8;
        }
        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;
        pbVar19 = pbVar30 + 1;
        pbVar31 = pbVar18 + 1;
        pbVar16 = pbVar27;
        pcVar33 = (code *)PTR_xmemcoll0_0003e200;
        goto LAB_000177ec;
      }
      cVar3 = puVar5[*pbVar24 - 0x15f0];
      while (cVar3 != '\0') {
        pbVar22 = pbVar22 + 1;
        cVar3 = puVar5[*pbVar22 - 0x15f0];
      }
      cVar3 = puVar5[*pbVar27 - 0x15f0];
      while (cVar3 != '\0') {
        pbVar31 = pbVar31 + 1;
        cVar3 = puVar5[*pbVar31 - 0x15f0];
      }
      pbVar29 = PTR_0003e1b4 + 0x6090;
      iVar23 = FUN_00016090(pbVar22);
      iVar25 = FUN_00016090(pbVar31);
      local_2158 = iVar23 - iVar25;
      pbVar26 = pbVar22;
      pbVar28 = pbVar31;
      local_2150 = pbVar21;
      local_214c = pbVar20;
      if (local_2158 != 0) goto LAB_000175d8;
    }
    else {
      cVar3 = puVar5[*pbVar24 - 0x15f0];
      while (cVar3 != '\0') {
        pbVar22 = pbVar22 + 1;
        cVar3 = puVar5[*pbVar22 - 0x15f0];
      }
      cVar3 = puVar5[*pbVar27 - 0x15f0];
      while (cVar3 != '\0') {
        pbVar31 = pbVar31 + 1;
        cVar3 = puVar5[*pbVar31 - 0x15f0];
      }
    }
    pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);
    pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);
    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;
LAB_000177ec:
    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);
    local_2150 = pbVar21;
    local_214c = pbVar20;
    if (pbVar20 != (byte *)0x0) goto LAB_000175e4;
LAB_00017808:
    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;
    pbVar24[(int)pbVar18] = bVar1;
    pbVar27[(int)pbVar30] = bVar2;
    pbVar27 = pbVar18;
    pbVar31 = pbVar30;
joined_r0x0001782c:
    do {
      if (local_2158 == 0) {
        piVar32 = (int *)piVar32[9];
        if (piVar32 != (int *)0x0) {
          pbVar29 = (byte *)*param_1;
          iVar25 = param_1[1];
          pbVar28 = (byte *)*param_2;
          iVar23 = param_2[1];
          if (piVar32[2] == -1) {
            iVar13 = *piVar32;
            pbVar22 = pbVar29 + iVar25 + -1;
            pbVar24 = pbVar28 + iVar23 + -1;
          }
          else {
            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);
            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);
            iVar13 = *piVar32;
          }
          if (iVar13 != -1) {
            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);
            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);
            goto LAB_0001743c;
          }
          bVar4 = pbVar29 < pbVar22;
          pbVar26 = pbVar28;
          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;
          pbVar18 = pbVar29;
          if (pbVar22 <= pbVar29) goto LAB_000178f8;
          goto LAB_000178dc;
        }
      }
      else {
LAB_00017838:
        if (*(char *)((int)piVar32 + 0x1f) != '\0') {
          local_2158 = -local_2158;
        }
      }
      if (local_34 == *(int *)puVar6) {
        return local_2158;
      }
      (*(code *)PTR___stack_chk_fail_0003e518)();
LAB_00017dc0:
      iVar23 = (*pcVar11)();
      pbVar18 = (byte *)(iVar23 + 1);
      pbVar22 = pbVar18 + (int)pbVar28;
      if (piVar32 == (int *)0x0) goto LAB_00018174;
LAB_00017de0:
      pbVar26 = pbVar22;
      if (pbVar26 < local_2118) {
        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);
      }
      (*(code *)PTR_free_0003e558)(local_214c);
      pbVar24 = (byte *)xmalloc(pbVar26);
      if (pbVar31 != (byte *)0x0) {
        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);
      }
      pbVar22 = pbVar24 + (int)pbVar28;
      local_214c = pbVar24;
      if (local_2150 != (byte *)0x0) {
        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);
        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;
        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);
        local_213c = local_213c + iVar23 + 1;
        goto LAB_00017c8c;
      }
      if (pbVar31 != (byte *)0x0) {
        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);
        local_213c = local_213c + iVar23 + 1;
LAB_00017f2c:
        if (local_213c < local_2120) {
          pbVar31 = (byte *)(uint)(local_213c < local_2120);
          pbVar29 = pbVar24;
LAB_00017cc8:
          do {
            md5_process_bytes(pbVar29,pbVar28,local_2130);
            md5_process_bytes(pbVar22,pbVar18,local_2138);
            if (local_2158 == 0) {
              pbVar24 = pbVar18;
              if (pbVar18 < pbVar28 == 0) {
                pbVar24 = pbVar28;
              }
              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);
              if (local_2158 != 0) goto LAB_00017c30;
              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);
              if (pbVar26 < local_2134) goto LAB_00017d44;
LAB_00017c40:
              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;
LAB_00017d8c:
              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);
              pbVar28 = (byte *)(iVar23 + 1);
              if (local_2150 != (byte *)0x0) {
                piVar32 = (int *)(uint)(pbVar26 < pbVar28);
                goto LAB_00017dc0;
              }
              pbVar18 = (byte *)0x0;
              pbVar22 = pbVar28;
              if (pbVar26 < pbVar28) goto LAB_00017de0;
LAB_00018174:
              pbVar24 = pbVar29;
              if (pbVar26 < pbVar22) goto LAB_00017de0;
            }
            else {
LAB_00017c30:
              if (local_2134 <= pbVar26) goto LAB_00017c40;
LAB_00017d44:
              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);
              if (pbVar26 <= local_2134) {
                pbVar26 = local_2134;
              }
              (*(code *)PTR_free_0003e558)(local_214c);
              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);
              local_214c = pbVar29;
              if (pbVar29 == (byte *)0x0) {
                pbVar26 = (byte *)0xfa0;
                pbVar29 = local_20ec;
                goto LAB_00017c40;
              }
              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;
LAB_00017c48:
              pbVar18 = (byte *)0x0;
              if (local_2150 != (byte *)0x0) {
                pbVar28 = (byte *)0x0;
                piVar32 = (int *)0x0;
                goto LAB_00017dc0;
              }
              pbVar28 = (byte *)0x0;
              pbVar24 = pbVar29;
            }
            pbVar22 = pbVar24 + (int)pbVar28;
            if (pbVar31 == (byte *)0x0) {
              if (local_2150 == (byte *)0x0) break;
LAB_0001809c:
              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);
              pbVar27 = pbVar27 + iVar23 + 1;
            }
            else {
              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);
              local_213c = local_213c + iVar23 + 1;
              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;
LAB_00017c8c:
              pbVar31 = (byte *)(uint)(local_213c < local_2120);
              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);
              pbVar27 = pbVar27 + iVar23 + 1;
              if (pbVar31 != (byte *)0x0) {
                local_2150 = (byte *)(uint)(pbVar27 < local_211c);
                pbVar29 = pbVar24;
                goto LAB_00017cc8;
              }
            }
            local_2150 = (byte *)(uint)(pbVar27 < local_211c);
            pbVar29 = pbVar24;
            if (local_211c <= pbVar27) break;
          } while( true );
        }
      }
      local_213c = pbVar22;
      local_2150 = pbVar18;
      local_211c = local_20fc;
      local_2120 = local_2100;
      md5_process_bytes(pbVar24,pbVar28,local_2130);
      pbVar26 = abStack_20cc;
      md5_finish_ctx(local_2130,pbVar26);
      md5_process_bytes(local_213c,local_2150,local_2138);
      md5_finish_ctx(local_2138,abStack_20bc);
      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);
      pbVar20 = local_20fc;
      pbVar21 = local_2100;
      pbVar18 = local_2108;
      pbVar22 = pbVar28;
      pbVar29 = pbVar24;
      pbVar30 = local_2104;
      pbVar31 = local_2110;
      pbVar27 = local_210c;
      piVar32 = local_2114;
      local_2134 = abStack_20bc;
      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {
LAB_00017ff4:
        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);
        pbVar22 = local_2150;
        if (pbVar26 == (byte *)0x0) {
          pbVar22 = pbVar28;
        }
        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);
        pbVar22 = pbVar28;
        pbVar29 = pbVar24;
        local_2138 = pbVar21;
        local_2134 = pbVar20;
        if (uVar9 == 0) {
          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);
        }
      }
LAB_00018040:
      local_2158 = uVar9;
      pbVar24 = pbVar31;
      (*(code *)PTR_free_0003e558)(local_214c);
      pbVar28 = pbVar22;
      local_2150 = pbVar21;
      local_213c = pbVar20;
LAB_000175d8:
      if (pbVar20 == (byte *)0x0) goto LAB_00017808;
LAB_000175e4:
      (*(code *)PTR_free_0003e558)(local_2154);
      pbVar27 = pbVar18;
      pbVar31 = pbVar30;
    } while( true );
  }
  pbVar31 = pbVar28;
  if (pbVar20 == (byte *)0x0) {
    pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);
    if (pbVar18 == (byte *)0x0) {
      local_2158 = -(int)pbVar27;
      goto joined_r0x0001782c;
    }
    if (pbVar28 != (byte *)0x0) {
      if (pbVar21 == (byte *)0x0) {
        pbVar24 = pbVar28;
        if (pbVar18 <= pbVar28) {
          pbVar24 = pbVar18;
        }
        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);
        local_2150 = pbVar18;
        if (local_2158 != 0) goto LAB_00017838;
      }
      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {
        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];
        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];
        if (local_2158 != 0) goto LAB_00017838;
        pbVar20 = pbVar29 + (int)pbVar28;
        pbVar24 = pbVar26;
        pbVar22 = pbVar29;
        while( true ) {
          pbVar22 = pbVar22 + 1;
          pbVar24 = pbVar24 + 1;
          pbVar29 = pbVar20;
          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;
          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];
          if (local_2158 != 0) goto LAB_00017838;
        }
      }
      if (pbVar18 < pbVar28) {
        local_2158 = 0xffffffff;
        goto LAB_00017838;
      }
      local_2158 = (uint)(pbVar18 != pbVar28);
      goto joined_r0x0001782c;
    }
    local_2158 = 1;
    goto LAB_00017838;
  }
  pbVar18 = pbVar29;
  if (pbVar21 != (byte *)0x0) goto LAB_000174c0;
LAB_000181d0:
  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {
    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);
    pbVar30 = pbVar26;
    if (pbVar24 <= pbVar26) {
      local_2158 = (uint)(pbVar26 < pbVar24);
      goto LAB_00018290;
    }
    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {
      pbVar30 = pbVar26;
      if (pbVar24 == pbVar26) goto LAB_00018284;
    }
    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);
    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;
    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;
    if (local_2158 != 0) goto LAB_00017838;
  }
  pbVar18 = pbVar18 + 1;
  goto LAB_000181d0;
LAB_000174c0:
  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {
    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);
    if (pbVar24 <= pbVar26) {
      local_2158 = (uint)(pbVar26 < pbVar24);
      goto LAB_00018290;
    }
    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {
      pbVar26 = pbVar27;
      if (pbVar24 == pbVar27) goto LAB_00018284;
    }
    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);
    pbVar30 = pbVar26;
    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;
    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];
    pbVar26 = pbVar26 + 1;
    if (local_2158 != 0) goto LAB_00017838;
  }
  pbVar18 = pbVar18 + 1;
  goto LAB_000174c0;
LAB_00018284:
  pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);
  pbVar30 = pbVar24;
LAB_0001828c:
  local_2158 = (uint)(pbVar30 < pbVar24);
  pbVar26 = pbVar30;
LAB_00018290:
  local_2158 = (int)pbVar27 - local_2158;
  goto joined_r0x0001782c;
  while (pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20) {
LAB_000178dc:
    pbVar20 = pbVar18 + 1;
    pbVar29 = pbVar18;
    if (puVar5[*pbVar18 - 0x15f0] == '\0') break;
  }
LAB_000178f8:
  bVar4 = pbVar29 < pbVar22;
  if (pbVar28 < pbVar24) {
    do {
      bVar4 = pbVar29 < pbVar22;
      pbVar26 = pbVar28;
      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;
      pbVar28 = pbVar28 + 1;
      pbVar26 = pbVar24;
    } while (pbVar24 != pbVar28);
  }
  goto LAB_00017440;
}


lui gp,0x3
addiu gp,gp,-0x1210
addu gp,gp,t9
lw v1,-0x7fcc(gp)
addiu sp,sp,-0x2170
lw v0,-0x7c30(gp)
lw t3,0xc(a0)
addiu v1,v1,0x6938
sw s6,0x2158(sp)
sw s4,0x2150(sp)
sw v1,0x4c(sp)
lw v1,-0x7fd8(gp)
lw t5,0xc(a1)
sw v0,0x80(sp)
sw s3,0x214c(sp)
lw s6,-0x1908(v1)
lw v1,-0x7fcc(gp)
lw v0,0x0(v0)
lw s3,0x8(a0)
addiu v1,v1,0x613c
sw s0,0x2140(sp)
sw s8,0x2160(sp)
or s8,s6,zero
sw v1,0x78(sp)
lw v1,-0x7fd8(gp)
lw s0,0x8(a1)
sdc1 f20,0x2168(sp)
addiu s4,v1,-0x15f0
lw v1,-0x7fd8(gp)
sw gp,0x10(sp)
sw ra,0x2164(sp)
sw v1,0x28(sp)
sw s7,0x215c(sp)
sw s5,0x2154(sp)
sw s2,0x2148(sp)
sw s1,0x2144(sp)
sw a0,0x2c(sp)
sw a1,0x30(sp)
sw zero,0x44(sp)
sw zero,0x48(sp)
sw v0,0x213c(sp)
lw v1,-0x7fd8(gp)
sw v1,0x7c(sp)
sltu v0,s3,t3
lw v1,0x28(sp)
sltu a0,s0,t5
movz t3,s3,v0
movz t5,s0,a0
lbu v1,-0x14df(v1)
subu a3,t3,s3
lw t1,0x14(s8)
subu s2,t5,s0
lw t0,0x10(s8)
or s1,a3,zero
bne v1,zero,0x00017544
_or s5,s2,zero
lbu v0,0x1a(s8)
bne v0,zero,0x00017544
_lui v1,0xffff
lw v0,0x1c(s8)
and v0,v0,v1
bne v0,zero,0x00017544
_nop
lbu v0,0x1e(s8)
bne v0,zero,0x00017544
_nop
lbu v0,0x1b(s8)
bne v0,zero,0x00017544
_nop
lbu v0,0x20(s8)
bne v0,zero,0x00017544
_nop
beq t0,zero,0x0001829c
_nop
beq t1,zero,0x000181d0
_or a0,s3,zero
sltu v0,a0,t3
beq v0,zero,0x000174e0
_sltu v0,s0,t5
lbu v0,0x0(a0)
addu v0,t0,v0
lbu v0,0x0(v0)
bne v0,zero,0x0001753c
_sltu v0,s0,t5
bne v0,zero,0x000174f8
_sltu s1,a0,t3
b 0x00018290
_sltu a0,s0,t5
beq t5,s0,0x00018284
_nop
lbu v0,0x0(s0)
addu v0,t0,v0
lbu v0,0x0(v0)
bne v0,zero,0x000174f0
_addiu s0,s0,0x1
sltu s1,a0,t3
beq s1,zero,0x0001828c
_addiu s0,s0,-0x1
lbu v0,0x0(a0)
lbu v1,0x0(s0)
addu v0,t1,v0
addu v1,t1,v1
lbu v0,0x0(v0)
lbu v1,0x0(v1)
subu v0,v0,v1
bne v0,zero,0x000182b0
_addiu s0,s0,0x1
b 0x000174c0
_addiu a0,a0,0x1
bne t0,zero,0x00017698
_addu a0,a3,s2
bne t1,zero,0x00017698
_or s7,s0,zero
lb v0,0x0(t3)
sb zero,0x0(t3)
sw v0,0x44(sp)
lb v0,0x0(t5)
sb zero,0x0(t5)
sw v0,0x48(sp)
lbu v0,0x1a(s8)
bne v0,zero,0x00017778
_or s6,s3,zero
lbu v0,0x1c(s8)
bne v0,zero,0x00017978
_lw t9,-0x7c5c(gp)
lbu v0,0x1d(s8)
bne v0,zero,0x00017a00
_nop
lbu v0,0x1e(s8)
bne v0,zero,0x00017aac
_lw t9,0x78(sp)
lbu v0,0x1b(s8)
bne v0,zero,0x00017afc
_lw v0,0x7c(sp)
lbu v0,0x20(s8)
beq v0,zero,0x00017ae8
_lw t9,-0x7f94(gp)
or a1,s7,zero
sw t0,0x24(sp)
or a0,s6,zero
bal 0x0001e164
_sw t1,0x20(sp)
lw gp,0x10(sp)
lw t1,0x20(sp)
lw t0,0x24(sp)
sw v0,0x18(sp)
beq t0,zero,0x00017808
_nop
lw t9,-0x7c28(gp)
jalr t9
_lw a0,0x1c(sp)
lw gp,0x10(sp)
lw v0,0x18(sp)
bne v0,zero,0x00017834
_nop
lw s8,0x24(s8)
beq s8,zero,0x00017850
_lw a0,0x2c(sp)
li v0,-0x1
lw v1,0x8(s8)
lw s3,0x0(a0)
lw t7,0x4(a0)
lw a0,0x30(sp)
lw s0,0x0(a0)
beq v1,v0,0x00017898
_lw t4,0x4(a0)
lw t9,-0x7fcc(gp)
or a1,t7,zero
or a2,s8,zero
addiu t9,t9,0x71d0
bal 0x000171d0
_or a0,s3,zero
or a0,s0,zero
or a1,t4,zero
bal 0x000171d0
_or t3,v0,zero
lw v1,0x0(s8)
or t5,v0,zero
li v0,-0x1
beq v1,v0,0x000178b4
_lw gp,0x10(sp)
lw t9,-0x7fcc(gp)
or a0,s3,zero
or a1,t7,zero
addiu t9,t9,0x7028
bal 0x00017028
_or a2,s8,zero
or a0,s0,zero
or a1,t4,zero
bal 0x00017028
_or s3,v0,zero
lw gp,0x10(sp)
b 0x0001743c
_or s0,v0,zero
addiu a0,a0,0x2
sltiu v0,a0,0xfa1
beq v0,zero,0x00017928
_addiu s6,sp,0x1fc
sw zero,0x1c(sp)
addiu t7,a3,0x1
beq a3,zero,0x00017960
_addu s7,s6,t7
addu a1,s3,a3
or s1,zero,zero
or a0,s3,zero
beq t0,zero,0x000176e0
_lb v0,0x0(a0)
andi v1,v0,0xff
addu v1,t0,v1
lbu v1,0x0(v1)
bne v1,zero,0x000176fc
_nop
beq t1,zero,0x000176f4
_addu v1,s6,s1
andi v0,v0,0xff
addu v0,t1,v0
lb v0,0x0(v0)
addiu s1,s1,0x1
sb v0,0x0(v1)
addiu a0,a0,0x1
bne a1,a0,0x000176c4
_nop
addu v0,s6,s1
beq s2,zero,0x0001796c
_sb zero,0x0(v0)
addu s2,s0,s2
or s5,zero,zero
or a0,s0,zero
beq t0,zero,0x0001773c
_lb v0,0x0(a0)
andi v1,v0,0xff
addu v1,t0,v1
lbu v1,0x0(v1)
bne v1,zero,0x00017758
_nop
beq t1,zero,0x00017750
_addu v1,s7,s5
andi v0,v0,0xff
addu v0,t1,v0
lb v0,0x0(v0)
addiu s5,s5,0x1
sb v0,0x0(v1)
addiu a0,a0,0x1
bne s2,a0,0x00017720
_nop
addu v0,s7,s5
sb zero,0x0(v0)
lbu v0,0x1a(s8)
beq v0,zero,0x00017578
_nop
lbu v0,0x0(s6)
addu v0,s4,v0
lbu v0,0x0(v0)
beq v0,zero,0x000177a4
_or a0,s6,zero
addiu a0,a0,0x1
lbu v0,0x0(a0)
addu v0,s4,v0
lbu v0,0x0(v0)
bne v0,zero,0x0001778c
_nop
lbu v0,0x0(s7)
addu v0,s4,v0
lbu v0,0x0(v0)
beq v0,zero,0x000177d0
_or a1,s7,zero
addiu a1,a1,0x1
lbu v0,0x0(a1)
addu v0,s4,v0
lbu v0,0x0(v0)
bne v0,zero,0x000177b8
_nop
sw t0,0x24(sp)
sw t1,0x20(sp)
lw v0,-0x7fd8(gp)
lw t9,-0x7f90(gp)
lw a3,-0x14dc(v0)
lw v0,-0x7fd8(gp)
lw a2,-0x14d8(v0)
jalr t9
_nop
lw t0,0x24(sp)
lw gp,0x10(sp)
lw t1,0x20(sp)
bne t0,zero,0x000175e0
_sw v0,0x18(sp)
bne t1,zero,0x000175e4
_lw t9,-0x7c28(gp)
lw v0,0x44(sp)
addu t2,s6,s1
addu t4,s7,s5
sb v0,0x0(t2)
lw v0,0x48(sp)
sb v0,0x0(t4)
lw v0,0x18(sp)
beq v0,zero,0x000175fc
_nop
or s6,s8,zero
lbu v0,0x1f(s6)
beq v0,zero,0x00017854
_lw v1,0x80(sp)
lw v0,0x18(sp)
subu v0,zero,v0
sw v0,0x18(sp)
lw v1,0x80(sp)
lw a0,0x213c(sp)
lw v0,0x18(sp)
lw v1,0x0(v1)
bne a0,v1,0x000183c0
_lw ra,0x2164(sp)
lw s8,0x2160(sp)
lw s7,0x215c(sp)
lw s6,0x2158(sp)
lw s5,0x2154(sp)
lw s4,0x2150(sp)
lw s3,0x214c(sp)
lw s2,0x2148(sp)
lw s1,0x2144(sp)
lw s0,0x2140(sp)
ldc1 f20,0x2168(sp)
jr ra
_addiu sp,sp,0x2170
lw v1,0x0(s8)
addiu t3,t7,-0x1
addiu t5,t4,-0x1
li v0,-0x1
addu t3,s3,t3
bne v1,v0,0x00017664
_addu t5,s0,t5
lbu v0,0x18(s8)
beq v0,zero,0x00017440
_sltu v0,s3,t3
sltu v0,s3,t3
bne v0,zero,0x000178dc
_sltu v0,s0,t5
b 0x000178f8
_nop
beq t3,s3,0x0001813c
_nop
lbu v0,0x0(s3)
addu v0,s4,v0
lbu v0,0x0(v0)
bne v0,zero,0x000178d4
_addiu s3,s3,0x1
addiu s3,s3,-0x1
sltu v0,s0,t5
beq v0,zero,0x00017440
_sltu v0,s3,t3
lbu v0,0x0(s0)
addu v0,s4,v0
lbu v0,0x0(v0)
beq v0,zero,0x00017440
_sltu v0,s3,t3
addiu s0,s0,0x1
bne t5,s0,0x00017900
_nop
b 0x00017440
_or s0,t5,zero
lw t9,-0x7f8c(gp)
sw a3,0x24(sp)
sw t0,0x20(sp)
bal 0x00025360
_sw t1,0x18(sp)
lw a3,0x24(sp)
or s6,v0,zero
lw gp,0x10(sp)
lw t1,0x18(sp)
addiu t7,a3,0x1
lw t0,0x20(sp)
sw v0,0x1c(sp)
bne a3,zero,0x000176b8
_addu s7,s6,t7
or v0,s6,zero
bne s2,zero,0x00017714
_sb zero,0x0(v0)
or v0,s7,zero
b 0x0001776c
_sb zero,0x0(v0)
addiu a1,sp,0x88
sw t0,0x20(sp)
or a0,s6,zero
jalr t9
_sw t1,0x18(sp)
addiu a1,sp,0x8c
lw gp,0x10(sp)
or a0,s7,zero
lw t9,-0x7c5c(gp)
jalr t9
_mov.D f20,f0
lw v0,0x88(sp)
lw gp,0x10(sp)
lw t1,0x18(sp)
beq s6,v0,0x00018144
_lw t0,0x20(sp)
lw v0,0x8c(sp)
beq s7,v0,0x000179f4
_nop
c.lt.D f20,f0
bc1t 0x00018318
_nop
c.lt.D f0,f20
bc1t 0x1,0x000179f4
_c.eq.D f20,f0
bc1t 0x2,0x0001815c
_c.eq.D f0,f0
bc1t 0x3,0x00018318
_c.eq.D f20,f20
bc1f 0x4,0x00018228
_lw t9,-0x7c5c(gp)
li v0,0x1
b 0x000175d8
_sw v0,0x18(sp)
lbu v0,0x0(s6)
addu v0,s4,v0
lbu v0,0x0(v0)
beq v0,zero,0x00017a2c
_or s0,s6,zero
addiu s0,s0,0x1
lbu v0,0x0(s0)
addu v0,s4,v0
lbu v0,0x0(v0)
bne v0,zero,0x00017a14
_nop
lbu v0,0x0(s7)
addu v0,s4,v0
lbu v0,0x0(v0)
beq v0,zero,0x00017a58
_or s2,s7,zero
addiu s2,s2,0x1
lbu v0,0x0(s2)
addu v0,s4,v0
lbu v0,0x0(v0)
bne v0,zero,0x00017a40
_nop
lw s3,-0x7fcc(gp)
or a0,s0,zero
sw t0,0x24(sp)
addiu s3,s3,0x6090
or t9,s3,zero
bal 0x00016090
_sw t1,0x20(sp)
or a0,s2,zero
or t9,s3,zero
bal 0x00016090
_sw v0,0x18(sp)
lw v1,0x18(sp)
lw gp,0x10(sp)
lw t1,0x20(sp)
subu v0,v1,v0
lw t0,0x24(sp)
bne v0,zero,0x000175d8
_sw v0,0x18(sp)
or a1,s2,zero
b 0x000177d8
_or a0,s0,zero
or a1,zero,zero
sw t0,0x24(sp)
or a0,s6,zero
jalr t9
_sw t1,0x20(sp)
or a1,zero,zero
or a0,s7,zero
jalr t9
_or t7,v0,zero
subu v0,t7,v0
lw gp,0x10(sp)
lw t1,0x20(sp)
lw t0,0x24(sp)
b 0x000175d8
_sw v0,0x18(sp)
bne s1,zero,0x00018188
_sltu v0,zero,s5
subu v0,zero,v0
b 0x000175d8
_sw v0,0x18(sp)
addiu v1,sp,0x160
sw v1,0x38(sp)
or a0,v1,zero
addiu v0,v0,-0x1a38
addiu t5,v0,0x90
lw a3,0x0(v0)
addiu v0,v0,0x10
addiu a0,a0,0x10
lw a2,-0xc(v0)
lw a1,-0x8(v0)
lw v1,-0x4(v0)
sw a3,-0x10(a0)
sw a2,-0xc(a0)
sw a1,-0x8(a0)
bne v0,t5,0x00017b10
_sw v1,-0x4(a0)
lw v1,0x0(v0)
addiu a3,sp,0xc4
lw a2,0x4(v0)
addiu t5,sp,0x1f0
lw a1,0x8(v0)
lw v0,0x38(sp)
sw a3,0x40(sp)
sw v1,0x0(a0)
or v1,a3,zero
sw a2,0x4(a0)
sw a1,0x8(a0)
lw a3,0x0(v0)
addiu v0,v0,0x10
addiu v1,v1,0x10
lw a2,-0xc(v0)
lw a1,-0x8(v0)
lw a0,-0x4(v0)
sw a3,-0x10(v1)
sw a2,-0xc(v1)
sw a1,-0x8(v1)
bne v0,t5,0x00017b68
_sw a0,-0x4(v1)
lw a2,0x0(v0)
lw a1,0x4(v0)
lw a0,0x8(v0)
lw v0,0x28(sp)
lbu v0,-0x14df(v0)
sw a2,0x0(v1)
sw a1,0x4(v1)
beq v0,zero,0x00017f44
_sw a0,0x8(v1)
addu v1,s1,s5
sw s1,0x68(sp)
addu a0,s6,s1
sw s5,0x6c(sp)
sll v0,v1,0x1
sw zero,0x24(sp)
addiu s3,sp,0x119c
sw a0,0x50(sp)
addu v0,v0,v1
sw zero,0x18(sp)
addu v1,s7,s5
sw s3,0x84(sp)
addiu v0,v0,0x2
sw s6,0x34(sp)
sw v1,0x54(sp)
li s0,0xfa0
sw v0,0x3c(sp)
lui v0,0x5555
sltu v1,s7,v1
sw s8,0x5c(sp)
addiu v0,v0,0x5555
sw v1,0x20(sp)
sw s6,0x60(sp)
or s1,s7,zero
sw v0,0x58(sp)
sltu v0,s6,a0
sw s7,0x64(sp)
or s5,v0,zero
sw t1,0x70(sp)
sw t0,0x74(sp)
lw v0,0x3c(sp)
sltu v0,s0,v0
bne v0,zero,0x00017d44
_sll v0,s0,0x1
bne s5,zero,0x00017d8c
_lw a1,0x34(sp)
lw v0,0x20(sp)
bne v0,zero,0x00018060
_or s6,zero,zero
or s2,zero,zero
beq s5,zero,0x000180d0
_addu s8,s3,s2
lw s5,0x34(sp)
lw t9,-0x7cf8(gp)
jalr t9
_or a0,s5,zero
addiu v0,v0,0x1
lw gp,0x10(sp)
addu v0,s5,v0
sw v0,0x34(sp)
lw v0,0x20(sp)
beq v0,zero,0x00017f2c
_lw v1,0x34(sp)
lw t9,-0x7cf8(gp)
or a0,s1,zero
lw v0,0x50(sp)
lw v1,0x34(sp)
jalr t9
_sltu s5,v1,v0
addiu v0,v0,0x1
lw gp,0x10(sp)
bne s5,zero,0x000183d4
_addu s1,s1,v0
lw v1,0x54(sp)
sltu v0,s1,v1
beq v0,zero,0x000180dc
_sltu v0,s1,v1
sw v0,0x20(sp)
lw t9,-0x7f88(gp)
or a1,s2,zero
lw a2,0x40(sp)
bal 0x0001db18
_or a0,s3,zero
or a1,s6,zero
lw gp,0x10(sp)
or a0,s8,zero
lw t9,-0x7f88(gp)
bal 0x0001db18
_lw a2,0x38(sp)
lw v0,0x18(sp)
bne v0,zero,0x00017c30
_lw gp,0x10(sp)
sltu s7,s6,s2
lw t9,-0x7c54(gp)
or a2,s6,zero
movz a2,s2,s7
or a1,s8,zero
jalr t9
_or a0,s3,zero
lw gp,0x10(sp)
bne v0,zero,0x00017c30
_sw v0,0x18(sp)
sltu s2,s2,s6
subu v0,s7,s2
sw v0,0x18(sp)
lw v0,0x3c(sp)
sltu v0,s0,v0
beq v0,zero,0x00017c40
_sll v0,s0,0x1
lw v1,0x3c(sp)
lw t9,-0x7c28(gp)
addu s0,v0,s0
lw a0,0x24(sp)
srl s0,s0,0x1
sltu v0,v1,s0
jalr t9
_movz s0,v1,v0
lw gp,0x10(sp)
lw t9,-0x7cdc(gp)
jalr t9
_or a0,s0,zero
lw gp,0x10(sp)
beq v0,zero,0x00018130
_sw v0,0x24(sp)
beq s5,zero,0x00017c48
_lw s3,0x24(sp)
lw a1,0x34(sp)
or a2,s0,zero
lw t9,0x4c(sp)
jalr t9
_or a0,s3,zero
addiu s2,v0,0x1
lw v0,0x20(sp)
beq v0,zero,0x00018164
_lw gp,0x10(sp)
sltu s8,s0,s2
beq s8,zero,0x000183cc
_addu a0,s3,s2
or a0,zero,zero
or a2,zero,zero
lw t9,0x4c(sp)
jalr t9
_or a1,s1,zero
addiu s6,v0,0x1
lw gp,0x10(sp)
beq s8,zero,0x00018174
_addu s7,s6,s2
lw v0,0x58(sp)
sltu v0,s7,v0
beq v0,zero,0x00017df8
_lw t9,-0x7c28(gp)
sll v0,s7,0x1
addu s7,v0,s7
srl s7,s7,0x1
jalr t9
_lw a0,0x24(sp)
lw gp,0x10(sp)
lw t9,-0x7f8c(gp)
bal 0x00025360
_or a0,s7,zero
lw gp,0x10(sp)
bne s5,zero,0x000180b4
_or s3,v0,zero
lw v0,0x20(sp)
bne v0,zero,0x00018074
_addu s8,s3,s2
bne s5,zero,0x00017f00
_lw s5,0x6c(sp)
lw s7,0x64(sp)
lw s1,0x68(sp)
lw t1,0x70(sp)
lw t0,0x74(sp)
sw s6,0x20(sp)
sw s8,0x34(sp)
sw s3,0x24(sp)
lw s6,0x60(sp)
lw s8,0x5c(sp)
lw s0,0x40(sp)
or a1,s2,zero
lw t9,-0x7f88(gp)
or a0,s3,zero
sw t0,0x54(sp)
sw t1,0x50(sp)
bal 0x0001db18
_or a2,s0,zero
or a0,s0,zero
lw gp,0x10(sp)
addiu s0,sp,0xa4
lw t9,-0x7f84(gp)
bal 0x0001d9ec
_or a1,s0,zero
lw gp,0x10(sp)
lw a2,0x38(sp)
lw a1,0x20(sp)
lw t9,-0x7f88(gp)
bal 0x0001db18
_lw a0,0x34(sp)
addiu v1,sp,0xb4
lw gp,0x10(sp)
lw a0,0x38(sp)
or a1,v1,zero
lw t9,-0x7f84(gp)
bal 0x0001d9ec
_sw v1,0x3c(sp)
li a2,0x10
lw gp,0x10(sp)
or a0,s0,zero
lw v1,0x3c(sp)
lw t9,-0x7c54(gp)
jalr t9
_or a1,v1,zero
lw gp,0x10(sp)
lw t1,0x50(sp)
bne v0,zero,0x00018038
_lw t0,0x54(sp)
lw v0,0x18(sp)
bne v0,zero,0x00018040
_lw t9,-0x7c28(gp)
b 0x00017ff4
_lw v0,0x20(sp)
lw s5,0x34(sp)
or s0,s7,zero
lw t9,-0x7cf8(gp)
jalr t9
_or a0,s5,zero
addiu v0,v0,0x1
lw gp,0x10(sp)
sw s3,0x24(sp)
addu v0,s5,v0
sw v0,0x34(sp)
lw v1,0x34(sp)
lw a0,0x50(sp)
sltu v0,v1,a0
beq v0,zero,0x000180e0
_lw s7,0x64(sp)
b 0x00017cc8
_sltu s5,v1,a0
lw s0,0x40(sp)
or a1,s1,zero
lw t9,-0x7f88(gp)
or a0,s6,zero
sw t0,0x24(sp)
addiu s2,sp,0xb4
sw t1,0x20(sp)
bal 0x0001db18
_or a2,s0,zero
or a0,s0,zero
lw gp,0x10(sp)
addiu s0,sp,0xa4
lw t9,-0x7f84(gp)
bal 0x0001d9ec
_or a1,s0,zero
or a1,s5,zero
lw gp,0x10(sp)
or a0,s7,zero
lw s3,0x38(sp)
lw t9,-0x7f88(gp)
bal 0x0001db18
_or a2,s3,zero
or a1,s2,zero
lw gp,0x10(sp)
lw t9,-0x7f84(gp)
bal 0x0001d9ec
_or a0,s3,zero
li a2,0x10
lw gp,0x10(sp)
or a1,s2,zero
lw t9,-0x7c54(gp)
jalr t9
_or a0,s0,zero
lw t0,0x24(sp)
lw gp,0x10(sp)
lw t1,0x20(sp)
sw v0,0x18(sp)
bne v0,zero,0x0001803c
_sw zero,0x24(sp)
sw s5,0x20(sp)
or s2,s1,zero
sw s7,0x34(sp)
or s3,s6,zero
lw v0,0x20(sp)
or a0,s3,zero
lw t9,-0x7c54(gp)
lw a1,0x34(sp)
sltu s0,v0,s2
sw t0,0x3c(sp)
or a2,v0,zero
sw t1,0x38(sp)
jalr t9
_movz a2,s2,s0
lw gp,0x10(sp)
lw t1,0x38(sp)
lw t0,0x3c(sp)
bne v0,zero,0x0001803c
_sw v0,0x18(sp)
lw v0,0x20(sp)
sltu v0,s2,v0
subu v0,s0,v0
sw v0,0x18(sp)
lw t9,-0x7c28(gp)
lw a0,0x24(sp)
sw t0,0x34(sp)
jalr t9
_sw t1,0x20(sp)
lw gp,0x10(sp)
lw t1,0x20(sp)
b 0x000175d8
_lw t0,0x34(sp)
or a2,s0,zero
or a0,s3,zero
or s2,zero,zero
b 0x00017dc0
_or s8,zero,zero
lw t9,-0x7d1c(gp)
or a2,s6,zero
or a1,s1,zero
jalr t9
_or a0,s8,zero
bne s5,zero,0x00018104
_lw gp,0x10(sp)
sw s3,0x24(sp)
or s0,s7,zero
lw t9,-0x7cf8(gp)
jalr t9
_or a0,s1,zero
addiu v0,v0,0x1
lw gp,0x10(sp)
b 0x00017cb4
_addu s1,s1,v0
lw t9,-0x7d1c(gp)
or a2,s2,zero
lw a1,0x34(sp)
jalr t9
_or a0,v0,zero
b 0x00017e1c
_lw gp,0x10(sp)
lw v0,0x20(sp)
bne v0,zero,0x0001809c
_lw t9,-0x7cf8(gp)
lw s7,0x64(sp)
lw s1,0x68(sp)
lw s5,0x6c(sp)
lw t1,0x70(sp)
lw t0,0x74(sp)
sw s6,0x20(sp)
sw s8,0x34(sp)
lw s6,0x60(sp)
b 0x00017e54
_lw s8,0x5c(sp)
lw s5,0x34(sp)
or s0,s7,zero
lw t9,-0x7cf8(gp)
jalr t9
_or a0,s5,zero
addiu v0,v0,0x1
lw gp,0x10(sp)
sw s3,0x24(sp)
addu v0,s5,v0
b 0x00017c8c
_sw v0,0x34(sp)
li s0,0xfa0
b 0x00017c40
_lw s3,0x84(sp)
b 0x000178f4
_or s3,t3,zero
lw v0,0x8c(sp)
xor v0,s7,v0
sltu v0,zero,v0
subu v0,zero,v0
b 0x000175d8
_sw v0,0x18(sp)
b 0x000175d8
_sw zero,0x18(sp)
sltu s8,s0,s2
or s6,zero,zero
bne s8,zero,0x00017ddc
_or s7,s2,zero
sltu v0,s0,s7
bne v0,zero,0x00017de0
_lw v0,0x58(sp)
b 0x00017c58
_nop
beq s5,zero,0x000179f8
_li v0,0x1
lw t9,-0x7f80(gp)
addiu a3,s5,0x1
sw t0,0x24(sp)
addiu a1,s1,0x1
sw t1,0x20(sp)
or a2,s7,zero
b 0x000177ec
_or a0,s6,zero
beq s1,zero,0x0001828c
_nop
lbu v0,0x0(a0)
lbu v1,0x0(s0)
subu v0,v0,v1
bne v0,zero,0x000182b0
_addiu s0,s0,0x1
addiu a0,a0,0x1
sltu v0,a0,t3
beq v0,zero,0x000181f0
_sltu v0,s0,t5
lbu v0,0x0(a0)
addu v0,t0,v0
lbu v0,0x0(v0)
bne v0,zero,0x000181cc
_sltu v0,s0,t5
bne v0,zero,0x00018208
_sltu s1,a0,t3
b 0x00018290
_sltu a0,s0,t5
beq t5,s0,0x00018284
_nop
lbu v0,0x0(s0)
addu v0,t0,v0
lbu v0,0x0(v0)
bne v0,zero,0x00018200
_addiu s0,s0,0x1
addiu s0,s0,-0x1
b 0x000181b0
_sltu s1,a0,t3
or a1,zero,zero
sw t0,0x24(sp)
or a0,s6,zero
jalr t9
_sw t1,0x20(sp)
or a1,zero,zero
lw gp,0x10(sp)
or a0,s7,zero
lw t9,-0x7c5c(gp)
jalr t9
_sdc1 f0,0x90(sp)
li a2,0x8
lw gp,0x10(sp)
addiu a1,sp,0x98
addiu a0,sp,0x90
lw t9,-0x7c54(gp)
jalr t9
_sdc1 f0,0x98(sp)
lw gp,0x10(sp)
lw t1,0x20(sp)
lw t0,0x24(sp)
b 0x000175d8
_sw v0,0x18(sp)
or s0,t5,zero
sltu s1,a0,t3
sltu a0,s0,t5
subu v0,s1,a0
b 0x000175f0
_sw v0,0x18(sp)
bne a3,zero,0x000182bc
_sltu s1,zero,s2
subu v0,zero,s1
b 0x000175f0
_sw v0,0x18(sp)
or s6,s8,zero
b 0x00017838
_sw v0,0x18(sp)
beq s2,zero,0x000183b4
_li v0,0x1
bne t1,zero,0x00018330
_sltu a2,s2,a3
lw t9,-0x7c54(gp)
or v0,s2,zero
sw a3,0x20(sp)
movz v0,a3,a2
or a1,s0,zero
or a0,s3,zero
jalr t9
_or a2,v0,zero
lw gp,0x10(sp)
bne v0,zero,0x00017834
_sw v0,0x18(sp)
lw a3,0x20(sp)
sltu v0,a3,s2
bne v0,zero,0x00018324
_li v0,-0x1
xor a1,a3,s2
sltu v0,zero,a1
b 0x000175f0
_sw v0,0x18(sp)
li v0,-0x1
b 0x000175d8
_sw v0,0x18(sp)
or s6,s8,zero
b 0x00017838
_sw v0,0x18(sp)
sltu t3,s3,t3
beq t3,zero,0x000182fc
_sltu t5,s0,t5
beq t5,zero,0x000182fc
_addiu v0,s3,0x1
lbu a1,0x0(s3)
lbu a0,0x0(s0)
addiu v1,s0,0x1
addu a1,t1,a1
addu a0,t1,a0
lbu s1,0x0(a1)
lbu a0,0x0(a0)
subu a0,s1,a0
bne a0,zero,0x00017834
_sw a0,0x18(sp)
addu a0,s0,a3
addu s3,s3,s2
beq v1,a0,0x000182fc
_nop
beq v0,s3,0x000182fc
_addiu v0,v0,0x1
lbu a2,0x0(v1)
lbu a1,-0x1(v0)
addu a2,t1,a2
addu a1,t1,a1
lbu a2,0x0(a2)
lbu a1,0x0(a1)
subu a1,a1,a2
beq a1,zero,0x00018374
_addiu v1,v1,0x1
or s6,s8,zero
b 0x00017838
_sw a1,0x18(sp)
or s6,s8,zero
b 0x00017838
_sw v0,0x18(sp)
lw t9,-0x7c68(gp)
jalr t9
_nop
b 0x00017dc0
_subu a2,s0,s2
lw v0,0x54(sp)
sltu v0,s1,v0
b 0x00017cc8
_sw v0,0x20(sp)
(translation_unit "/* WARNING: Removing unreachable block (ram,0x000179ec) */\n\nuint FUN_00017390(undefined4 *param_1,undefined4 *param_2)\n\n{\n  byte bVar1;\n  byte bVar2;\n  char cVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  byte bVar10;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  uint uVar9;\n  code *pcVar11;\n  code *pcVar12;\n  int iVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  byte *pbVar16;\n  undefined4 uVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  int iVar23;\n  byte *pbVar24;\n  int iVar25;\n  byte *pbVar26;\n  byte *pbVar27;\n  byte *pbVar28;\n  byte *pbVar29;\n  byte *pbVar30;\n  byte *pbVar31;\n  int *piVar32;\n  code *pcVar33;\n  double dVar34;\n  double dVar35;\n  uint local_2158;\n  byte *local_2154;\n  byte *local_2150;\n  byte *local_214c;\n  byte *local_213c;\n  byte *local_2138;\n  byte *local_2134;\n  undefined4 *local_2130;\n  byte *local_2120;\n  byte *local_211c;\n  byte *local_2118;\n  int *local_2114;\n  byte *local_2110;\n  byte *local_210c;\n  byte *local_2108;\n  byte *local_2104;\n  byte *local_2100;\n  byte *local_20fc;\n  byte *local_20ec;\n  byte *local_20e8;\n  byte *local_20e4 [6];\n  byte abStack_20cc [16];\n  byte abStack_20bc [16];\n  undefined4 local_20ac [39];\n  byte local_2010 [4];\n  undefined4 local_200c [35];\n  byte abStack_1f80 [12];\n  byte local_1f74 [4000];\n  byte abStack_fd4 [4000];\n  int local_34;\n  \n  puVar6 = PTR___stack_chk_guard_0003e550;\n  puVar5 = PTR_DAT_0003e1a8;\n  pbVar22 = (byte *)param_1[3];\n  pcVar11 = (code *)(PTR_0003e1b4 + 0x6938);\n  pbVar24 = (byte *)param_2[3];\n  piVar32 = *(int **)(PTR_DAT_0003e1a8 + -0x1908);\n  local_34 = *(int *)PTR___stack_chk_guard_0003e550;\n  pbVar29 = (byte *)param_1[2];\n  pcVar12 = (code *)(PTR_0003e1b4 + 0x613c);\n  pbVar26 = (byte *)param_2[2];\n  bVar1 = 0;\n  bVar2 = 0;\nLAB_0001743c:\n  bVar4 = pbVar29 < pbVar22;\nLAB_00017440:\n  if (!bVar4) {\n    pbVar22 = pbVar29;\n  }\n  if (pbVar24 <= pbVar26) {\n    pbVar24 = pbVar26;\n  }\n  pbVar18 = pbVar22 + -(int)pbVar29;\n  pbVar21 = (byte *)piVar32[5];\n  pbVar28 = pbVar24 + -(int)pbVar26;\n  pbVar20 = (byte *)piVar32[4];\n  if (((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||\n     (*(char *)(piVar32 + 8) != '\0')) {\n    pbVar30 = pbVar28;\n    if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }\n    else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }\n    pbVar22 = pbVar24;\n    pbVar31 = pbVar27;\n    if (cVar3 == '\0') {\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }\n    pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);\n    local_2150 = pbVar21;\n    local_214c = pbVar20;\n    if (pbVar20 != (byte *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;\n    pbVar24[(int)pbVar18] = bVar1;\n    pbVar27[(int)pbVar30] = bVar2;\n    pbVar27 = pbVar18;\n    pbVar31 = pbVar30;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );\n  }\n  pbVar31 = pbVar28;\n  if (pbVar20 == (byte *)0x0) {\n    pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);\n    if (pbVar18 == (byte *)0x0) {\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }\n    if (pbVar28 != (byte *)0x0) {\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }\n  pbVar18 = pbVar29;\n  if (pbVar21 != (byte *)0x0) goto LAB_000174c0;\nLAB_000181d0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pbVar18 = pbVar18 + 1;\n  goto LAB_000181d0;\nLAB_000174c0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];\n    pbVar26 = pbVar26 + 1;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pbVar18 = pbVar18 + 1;\n  goto LAB_000174c0;\nLAB_00018284:\n  pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n  pbVar30 = pbVar24;\nLAB_0001828c:\n  local_2158 = (uint)(pbVar30 < pbVar24);\n  pbVar26 = pbVar30;\nLAB_00018290:\n  local_2158 = (int)pbVar27 - local_2158;\n  goto joined_r0x0001782c;\n  while (pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20) {\nLAB_000178dc:\n    pbVar20 = pbVar18 + 1;\n    pbVar29 = pbVar18;\n    if (puVar5[*pbVar18 - 0x15f0] == '\0') break;\n  }\nLAB_000178f8:\n  bVar4 = pbVar29 < pbVar22;\n  if (pbVar28 < pbVar24) {\n    do {\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    } while (pbVar24 != pbVar28);\n  }\n  goto LAB_00017440;\n}\n\n" comment (function_definition "uint FUN_00017390(undefined4 *param_1,undefined4 *param_2)\n\n{\n  byte bVar1;\n  byte bVar2;\n  char cVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  byte bVar10;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  uint uVar9;\n  code *pcVar11;\n  code *pcVar12;\n  int iVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  byte *pbVar16;\n  undefined4 uVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  int iVar23;\n  byte *pbVar24;\n  int iVar25;\n  byte *pbVar26;\n  byte *pbVar27;\n  byte *pbVar28;\n  byte *pbVar29;\n  byte *pbVar30;\n  byte *pbVar31;\n  int *piVar32;\n  code *pcVar33;\n  double dVar34;\n  double dVar35;\n  uint local_2158;\n  byte *local_2154;\n  byte *local_2150;\n  byte *local_214c;\n  byte *local_213c;\n  byte *local_2138;\n  byte *local_2134;\n  undefined4 *local_2130;\n  byte *local_2120;\n  byte *local_211c;\n  byte *local_2118;\n  int *local_2114;\n  byte *local_2110;\n  byte *local_210c;\n  byte *local_2108;\n  byte *local_2104;\n  byte *local_2100;\n  byte *local_20fc;\n  byte *local_20ec;\n  byte *local_20e8;\n  byte *local_20e4 [6];\n  byte abStack_20cc [16];\n  byte abStack_20bc [16];\n  undefined4 local_20ac [39];\n  byte local_2010 [4];\n  undefined4 local_200c [35];\n  byte abStack_1f80 [12];\n  byte local_1f74 [4000];\n  byte abStack_fd4 [4000];\n  int local_34;\n  \n  puVar6 = PTR___stack_chk_guard_0003e550;\n  puVar5 = PTR_DAT_0003e1a8;\n  pbVar22 = (byte *)param_1[3];\n  pcVar11 = (code *)(PTR_0003e1b4 + 0x6938);\n  pbVar24 = (byte *)param_2[3];\n  piVar32 = *(int **)(PTR_DAT_0003e1a8 + -0x1908);\n  local_34 = *(int *)PTR___stack_chk_guard_0003e550;\n  pbVar29 = (byte *)param_1[2];\n  pcVar12 = (code *)(PTR_0003e1b4 + 0x613c);\n  pbVar26 = (byte *)param_2[2];\n  bVar1 = 0;\n  bVar2 = 0;\nLAB_0001743c:\n  bVar4 = pbVar29 < pbVar22;\nLAB_00017440:\n  if (!bVar4) {\n    pbVar22 = pbVar29;\n  }\n  if (pbVar24 <= pbVar26) {\n    pbVar24 = pbVar26;\n  }\n  pbVar18 = pbVar22 + -(int)pbVar29;\n  pbVar21 = (byte *)piVar32[5];\n  pbVar28 = pbVar24 + -(int)pbVar26;\n  pbVar20 = (byte *)piVar32[4];\n  if (((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||\n     (*(char *)(piVar32 + 8) != '\0')) {\n    pbVar30 = pbVar28;\n    if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }\n    else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }\n    pbVar22 = pbVar24;\n    pbVar31 = pbVar27;\n    if (cVar3 == '\0') {\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }\n    pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);\n    local_2150 = pbVar21;\n    local_214c = pbVar20;\n    if (pbVar20 != (byte *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;\n    pbVar24[(int)pbVar18] = bVar1;\n    pbVar27[(int)pbVar30] = bVar2;\n    pbVar27 = pbVar18;\n    pbVar31 = pbVar30;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );\n  }\n  pbVar31 = pbVar28;\n  if (pbVar20 == (byte *)0x0) {\n    pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);\n    if (pbVar18 == (byte *)0x0) {\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }\n    if (pbVar28 != (byte *)0x0) {\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }\n  pbVar18 = pbVar29;\n  if (pbVar21 != (byte *)0x0) goto LAB_000174c0;\nLAB_000181d0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pbVar18 = pbVar18 + 1;\n  goto LAB_000181d0;\nLAB_000174c0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];\n    pbVar26 = pbVar26 + 1;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pbVar18 = pbVar18 + 1;\n  goto LAB_000174c0;\nLAB_00018284:\n  pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n  pbVar30 = pbVar24;\nLAB_0001828c:\n  local_2158 = (uint)(pbVar30 < pbVar24);\n  pbVar26 = pbVar30;\nLAB_00018290:\n  local_2158 = (int)pbVar27 - local_2158;\n  goto joined_r0x0001782c;\n  while (pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20) {\nLAB_000178dc:\n    pbVar20 = pbVar18 + 1;\n    pbVar29 = pbVar18;\n    if (puVar5[*pbVar18 - 0x15f0] == '\0') break;\n  }\nLAB_000178f8:\n  bVar4 = pbVar29 < pbVar22;\n  if (pbVar28 < pbVar24) {\n    do {\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    } while (pbVar24 != pbVar28);\n  }\n  goto LAB_00017440;\n}" type_identifier (function_declarator "FUN_00017390(undefined4 *param_1,undefined4 *param_2)" identifier (parameter_list "(undefined4 *param_1,undefined4 *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  char cVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  byte bVar10;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  uint uVar9;\n  code *pcVar11;\n  code *pcVar12;\n  int iVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  byte *pbVar16;\n  undefined4 uVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  int iVar23;\n  byte *pbVar24;\n  int iVar25;\n  byte *pbVar26;\n  byte *pbVar27;\n  byte *pbVar28;\n  byte *pbVar29;\n  byte *pbVar30;\n  byte *pbVar31;\n  int *piVar32;\n  code *pcVar33;\n  double dVar34;\n  double dVar35;\n  uint local_2158;\n  byte *local_2154;\n  byte *local_2150;\n  byte *local_214c;\n  byte *local_213c;\n  byte *local_2138;\n  byte *local_2134;\n  undefined4 *local_2130;\n  byte *local_2120;\n  byte *local_211c;\n  byte *local_2118;\n  int *local_2114;\n  byte *local_2110;\n  byte *local_210c;\n  byte *local_2108;\n  byte *local_2104;\n  byte *local_2100;\n  byte *local_20fc;\n  byte *local_20ec;\n  byte *local_20e8;\n  byte *local_20e4 [6];\n  byte abStack_20cc [16];\n  byte abStack_20bc [16];\n  undefined4 local_20ac [39];\n  byte local_2010 [4];\n  undefined4 local_200c [35];\n  byte abStack_1f80 [12];\n  byte local_1f74 [4000];\n  byte abStack_fd4 [4000];\n  int local_34;\n  \n  puVar6 = PTR___stack_chk_guard_0003e550;\n  puVar5 = PTR_DAT_0003e1a8;\n  pbVar22 = (byte *)param_1[3];\n  pcVar11 = (code *)(PTR_0003e1b4 + 0x6938);\n  pbVar24 = (byte *)param_2[3];\n  piVar32 = *(int **)(PTR_DAT_0003e1a8 + -0x1908);\n  local_34 = *(int *)PTR___stack_chk_guard_0003e550;\n  pbVar29 = (byte *)param_1[2];\n  pcVar12 = (code *)(PTR_0003e1b4 + 0x613c);\n  pbVar26 = (byte *)param_2[2];\n  bVar1 = 0;\n  bVar2 = 0;\nLAB_0001743c:\n  bVar4 = pbVar29 < pbVar22;\nLAB_00017440:\n  if (!bVar4) {\n    pbVar22 = pbVar29;\n  }\n  if (pbVar24 <= pbVar26) {\n    pbVar24 = pbVar26;\n  }\n  pbVar18 = pbVar22 + -(int)pbVar29;\n  pbVar21 = (byte *)piVar32[5];\n  pbVar28 = pbVar24 + -(int)pbVar26;\n  pbVar20 = (byte *)piVar32[4];\n  if (((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||\n     (*(char *)(piVar32 + 8) != '\0')) {\n    pbVar30 = pbVar28;\n    if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }\n    else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }\n    pbVar22 = pbVar24;\n    pbVar31 = pbVar27;\n    if (cVar3 == '\0') {\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }\n    pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);\n    local_2150 = pbVar21;\n    local_214c = pbVar20;\n    if (pbVar20 != (byte *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;\n    pbVar24[(int)pbVar18] = bVar1;\n    pbVar27[(int)pbVar30] = bVar2;\n    pbVar27 = pbVar18;\n    pbVar31 = pbVar30;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );\n  }\n  pbVar31 = pbVar28;\n  if (pbVar20 == (byte *)0x0) {\n    pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);\n    if (pbVar18 == (byte *)0x0) {\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }\n    if (pbVar28 != (byte *)0x0) {\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }\n  pbVar18 = pbVar29;\n  if (pbVar21 != (byte *)0x0) goto LAB_000174c0;\nLAB_000181d0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pbVar18 = pbVar18 + 1;\n  goto LAB_000181d0;\nLAB_000174c0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];\n    pbVar26 = pbVar26 + 1;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pbVar18 = pbVar18 + 1;\n  goto LAB_000174c0;\nLAB_00018284:\n  pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n  pbVar30 = pbVar24;\nLAB_0001828c:\n  local_2158 = (uint)(pbVar30 < pbVar24);\n  pbVar26 = pbVar30;\nLAB_00018290:\n  local_2158 = (int)pbVar27 - local_2158;\n  goto joined_r0x0001782c;\n  while (pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20) {\nLAB_000178dc:\n    pbVar20 = pbVar18 + 1;\n    pbVar29 = pbVar18;\n    if (puVar5[*pbVar18 - 0x15f0] == '\0') break;\n  }\nLAB_000178f8:\n  bVar4 = pbVar29 < pbVar22;\n  if (pbVar28 < pbVar24) {\n    do {\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    } while (pbVar24 != pbVar28);\n  }\n  goto LAB_00017440;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "byte *pbVar27;" type_identifier (pointer_declarator "*pbVar27" * identifier) ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "byte *pbVar29;" type_identifier (pointer_declarator "*pbVar29" * identifier) ;) (declaration "byte *pbVar30;" type_identifier (pointer_declarator "*pbVar30" * identifier) ;) (declaration "byte *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "int *piVar32;" primitive_type (pointer_declarator "*piVar32" * identifier) ;) (declaration "code *pcVar33;" type_identifier (pointer_declarator "*pcVar33" * identifier) ;) (declaration "double dVar34;" primitive_type identifier ;) (declaration "double dVar35;" primitive_type identifier ;) (declaration "uint local_2158;" type_identifier identifier ;) (declaration "byte *local_2154;" type_identifier (pointer_declarator "*local_2154" * identifier) ;) (declaration "byte *local_2150;" type_identifier (pointer_declarator "*local_2150" * identifier) ;) (declaration "byte *local_214c;" type_identifier (pointer_declarator "*local_214c" * identifier) ;) (declaration "byte *local_213c;" type_identifier (pointer_declarator "*local_213c" * identifier) ;) (declaration "byte *local_2138;" type_identifier (pointer_declarator "*local_2138" * identifier) ;) (declaration "byte *local_2134;" type_identifier (pointer_declarator "*local_2134" * identifier) ;) (declaration "undefined4 *local_2130;" type_identifier (pointer_declarator "*local_2130" * identifier) ;) (declaration "byte *local_2120;" type_identifier (pointer_declarator "*local_2120" * identifier) ;) (declaration "byte *local_211c;" type_identifier (pointer_declarator "*local_211c" * identifier) ;) (declaration "byte *local_2118;" type_identifier (pointer_declarator "*local_2118" * identifier) ;) (declaration "int *local_2114;" primitive_type (pointer_declarator "*local_2114" * identifier) ;) (declaration "byte *local_2110;" type_identifier (pointer_declarator "*local_2110" * identifier) ;) (declaration "byte *local_210c;" type_identifier (pointer_declarator "*local_210c" * identifier) ;) (declaration "byte *local_2108;" type_identifier (pointer_declarator "*local_2108" * identifier) ;) (declaration "byte *local_2104;" type_identifier (pointer_declarator "*local_2104" * identifier) ;) (declaration "byte *local_2100;" type_identifier (pointer_declarator "*local_2100" * identifier) ;) (declaration "byte *local_20fc;" type_identifier (pointer_declarator "*local_20fc" * identifier) ;) (declaration "byte *local_20ec;" type_identifier (pointer_declarator "*local_20ec" * identifier) ;) (declaration "byte *local_20e8;" type_identifier (pointer_declarator "*local_20e8" * identifier) ;) (declaration "byte *local_20e4 [6];" type_identifier (pointer_declarator "*local_20e4 [6]" * (array_declarator "local_20e4 [6]" identifier [ number_literal ])) ;) (declaration "byte abStack_20cc [16];" type_identifier (array_declarator "abStack_20cc [16]" identifier [ number_literal ]) ;) (declaration "byte abStack_20bc [16];" type_identifier (array_declarator "abStack_20bc [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_20ac [39];" type_identifier (array_declarator "local_20ac [39]" identifier [ number_literal ]) ;) (declaration "byte local_2010 [4];" type_identifier (array_declarator "local_2010 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 local_200c [35];" type_identifier (array_declarator "local_200c [35]" identifier [ number_literal ]) ;) (declaration "byte abStack_1f80 [12];" type_identifier (array_declarator "abStack_1f80 [12]" identifier [ number_literal ]) ;) (declaration "byte local_1f74 [4000];" type_identifier (array_declarator "local_1f74 [4000]" identifier [ number_literal ]) ;) (declaration "byte abStack_fd4 [4000];" type_identifier (array_declarator "abStack_fd4 [4000]" identifier [ number_literal ]) ;) (declaration "int local_34;" primitive_type identifier ;) (expression_statement "puVar6 = PTR___stack_chk_guard_0003e550;" (assignment_expression "puVar6 = PTR___stack_chk_guard_0003e550" identifier = identifier) ;) (expression_statement "puVar5 = PTR_DAT_0003e1a8;" (assignment_expression "puVar5 = PTR_DAT_0003e1a8" identifier = identifier) ;) (expression_statement "pbVar22 = (byte *)param_1[3];" (assignment_expression "pbVar22 = (byte *)param_1[3]" identifier = (cast_expression "(byte *)param_1[3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "pcVar11 = (code *)(PTR_0003e1b4 + 0x6938);" (assignment_expression "pcVar11 = (code *)(PTR_0003e1b4 + 0x6938)" identifier = (cast_expression "(code *)(PTR_0003e1b4 + 0x6938)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_0003e1b4 + 0x6938)" ( (binary_expression "PTR_0003e1b4 + 0x6938" identifier + number_literal) )))) ;) (expression_statement "pbVar24 = (byte *)param_2[3];" (assignment_expression "pbVar24 = (byte *)param_2[3]" identifier = (cast_expression "(byte *)param_2[3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "piVar32 = *(int **)(PTR_DAT_0003e1a8 + -0x1908);" (assignment_expression "piVar32 = *(int **)(PTR_DAT_0003e1a8 + -0x1908)" identifier = (pointer_expression "*(int **)(PTR_DAT_0003e1a8 + -0x1908)" * (cast_expression "(int **)(PTR_DAT_0003e1a8 + -0x1908)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0003e1a8 + -0x1908)" ( (binary_expression "PTR_DAT_0003e1a8 + -0x1908" identifier + number_literal) ))))) ;) (expression_statement "local_34 = *(int *)PTR___stack_chk_guard_0003e550;" (assignment_expression "local_34 = *(int *)PTR___stack_chk_guard_0003e550" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0003e550" * (cast_expression "(int *)PTR___stack_chk_guard_0003e550" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar29 = (byte *)param_1[2];" (assignment_expression "pbVar29 = (byte *)param_1[2]" identifier = (cast_expression "(byte *)param_1[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "pcVar12 = (code *)(PTR_0003e1b4 + 0x613c);" (assignment_expression "pcVar12 = (code *)(PTR_0003e1b4 + 0x613c)" identifier = (cast_expression "(code *)(PTR_0003e1b4 + 0x613c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_0003e1b4 + 0x613c)" ( (binary_expression "PTR_0003e1b4 + 0x613c" identifier + number_literal) )))) ;) (expression_statement "pbVar26 = (byte *)param_2[2];" (assignment_expression "pbVar26 = (byte *)param_2[2]" identifier = (cast_expression "(byte *)param_2[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) ;) (expression_statement "bVar1 = 0;" (assignment_expression "bVar1 = 0" identifier = number_literal) ;) (expression_statement "bVar2 = 0;" (assignment_expression "bVar2 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0001743c:\n  bVar4 = pbVar29 < pbVar22;" statement_identifier : (expression_statement "bVar4 = pbVar29 < pbVar22;" (assignment_expression "bVar4 = pbVar29 < pbVar22" identifier = (binary_expression "pbVar29 < pbVar22" identifier < identifier)) ;)) (labeled_statement "LAB_00017440:\n  if (!bVar4) {\n    pbVar22 = pbVar29;\n  }" statement_identifier : (if_statement "if (!bVar4) {\n    pbVar22 = pbVar29;\n  }" if (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) (compound_statement "{\n    pbVar22 = pbVar29;\n  }" { (expression_statement "pbVar22 = pbVar29;" (assignment_expression "pbVar22 = pbVar29" identifier = identifier) ;) }))) (if_statement "if (pbVar24 <= pbVar26) {\n    pbVar24 = pbVar26;\n  }" if (parenthesized_expression "(pbVar24 <= pbVar26)" ( (binary_expression "pbVar24 <= pbVar26" identifier <= identifier) )) (compound_statement "{\n    pbVar24 = pbVar26;\n  }" { (expression_statement "pbVar24 = pbVar26;" (assignment_expression "pbVar24 = pbVar26" identifier = identifier) ;) })) (expression_statement "pbVar18 = pbVar22 + -(int)pbVar29;" (assignment_expression "pbVar18 = pbVar22 + -(int)pbVar29" identifier = (binary_expression "pbVar22 + -(int)pbVar29" identifier + (unary_expression "-(int)pbVar29" - (cast_expression "(int)pbVar29" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar21 = (byte *)piVar32[5];" (assignment_expression "pbVar21 = (byte *)piVar32[5]" identifier = (cast_expression "(byte *)piVar32[5]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar32[5]" identifier [ number_literal ]))) ;) (expression_statement "pbVar28 = pbVar24 + -(int)pbVar26;" (assignment_expression "pbVar28 = pbVar24 + -(int)pbVar26" identifier = (binary_expression "pbVar24 + -(int)pbVar26" identifier + (unary_expression "-(int)pbVar26" - (cast_expression "(int)pbVar26" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar20 = (byte *)piVar32[4];" (assignment_expression "pbVar20 = (byte *)piVar32[4]" identifier = (cast_expression "(byte *)piVar32[4]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar32[4]" identifier [ number_literal ]))) ;) (if_statement "if (((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||\n     (*(char *)(piVar32 + 8) != '\0')) {\n    pbVar30 = pbVar28;\n    if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }\n    else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }\n    pbVar22 = pbVar24;\n    pbVar31 = pbVar27;\n    if (cVar3 == '\0') {\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }\n    pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);\n    local_2150 = pbVar21;\n    local_214c = pbVar20;\n    if (pbVar20 != (byte *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;\n    pbVar24[(int)pbVar18] = bVar1;\n    pbVar27[(int)pbVar30] = bVar2;\n    pbVar27 = pbVar18;\n    pbVar31 = pbVar30;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );\n  }" if (parenthesized_expression "(((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||\n     (*(char *)(piVar32 + 8) != '\0'))" ( (binary_expression "((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||\n     (*(char *)(piVar32 + 8) != '\0')" (parenthesized_expression "((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0'))))" ( (binary_expression "(((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))" (parenthesized_expression "(((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0))" ( (binary_expression "((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)" (parenthesized_expression "((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0'))" ( (binary_expression "(puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')" (parenthesized_expression "(puVar5[-0x14df] != '\0')" ( (binary_expression "puVar5[-0x14df] != '\0'" (subscript_expression "puVar5[-0x14df]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)((int)piVar32 + 0x1a) != '\0')" ( (binary_expression "*(char *)((int)piVar32 + 0x1a) != '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1a)" * (cast_expression "(char *)((int)piVar32 + 0x1a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar32 + 0x1a)" ( (binary_expression "(int)piVar32 + 0x1a" (cast_expression "(int)piVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "((piVar32[7] & 0xffff0000U) != 0)" ( (binary_expression "(piVar32[7] & 0xffff0000U) != 0" (parenthesized_expression "(piVar32[7] & 0xffff0000U)" ( (binary_expression "piVar32[7] & 0xffff0000U" (subscript_expression "piVar32[7]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))" ( (parenthesized_expression "(*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0'))" ( (binary_expression "*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')" (binary_expression "*(char *)((int)piVar32 + 0x1e) != '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1e)" * (cast_expression "(char *)((int)piVar32 + 0x1e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar32 + 0x1e)" ( (binary_expression "(int)piVar32 + 0x1e" (cast_expression "(int)piVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(*(char *)((int)piVar32 + 0x1b) != '\0')" ( (binary_expression "*(char *)((int)piVar32 + 0x1b) != '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1b)" * (cast_expression "(char *)((int)piVar32 + 0x1b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar32 + 0x1b)" ( (binary_expression "(int)piVar32 + 0x1b" (cast_expression "(int)piVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) || (parenthesized_expression "(*(char *)(piVar32 + 8) != '\0')" ( (binary_expression "*(char *)(piVar32 + 8) != '\0'" (pointer_expression "*(char *)(piVar32 + 8)" * (cast_expression "(char *)(piVar32 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar32 + 8)" ( (binary_expression "piVar32 + 8" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    pbVar30 = pbVar28;\n    if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }\n    else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }\n    pbVar22 = pbVar24;\n    pbVar31 = pbVar27;\n    if (cVar3 == '\0') {\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }\n    pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);\n    local_2150 = pbVar21;\n    local_214c = pbVar20;\n    if (pbVar20 != (byte *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;\n    pbVar24[(int)pbVar18] = bVar1;\n    pbVar27[(int)pbVar30] = bVar2;\n    pbVar27 = pbVar18;\n    pbVar31 = pbVar30;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );\n  }" { (expression_statement "pbVar30 = pbVar28;" (assignment_expression "pbVar30 = pbVar28" identifier = identifier) ;) (if_statement "if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }\n    else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }" if (parenthesized_expression "((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0))" ( (binary_expression "(pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)" (parenthesized_expression "(pbVar20 == (byte *)0x0)" ( (binary_expression "pbVar20 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pbVar21 == (byte *)0x0)" ( (binary_expression "pbVar21 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }" { (expression_statement "bVar1 = *pbVar22;" (assignment_expression "bVar1 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) (expression_statement "*pbVar22 = 0;" (assignment_expression "*pbVar22 = 0" (pointer_expression "*pbVar22" * identifier) = number_literal) ;) (expression_statement "bVar2 = *pbVar24;" (assignment_expression "bVar2 = *pbVar24" identifier = (pointer_expression "*pbVar24" * identifier)) ;) (expression_statement "*pbVar24 = 0;" (assignment_expression "*pbVar24 = 0" (pointer_expression "*pbVar24" * identifier) = number_literal) ;) (expression_statement "cVar3 = *(char *)((int)piVar32 + 0x1a);" (assignment_expression "cVar3 = *(char *)((int)piVar32 + 0x1a)" identifier = (pointer_expression "*(char *)((int)piVar32 + 0x1a)" * (cast_expression "(char *)((int)piVar32 + 0x1a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar32 + 0x1a)" ( (binary_expression "(int)piVar32 + 0x1a" (cast_expression "(int)piVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pbVar27 = pbVar26;" (assignment_expression "pbVar27 = pbVar26" identifier = identifier) ;) (expression_statement "pbVar24 = pbVar29;" (assignment_expression "pbVar24 = pbVar29" identifier = identifier) ;) }) (else_clause "else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }" else (compound_statement "{\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }" { (expression_statement "pbVar24 = local_1f74;" (assignment_expression "pbVar24 = local_1f74" identifier = identifier) ;) (if_statement "if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }" if (parenthesized_expression "(pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1)" ( (binary_expression "pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1" (binary_expression "pbVar18 + (int)pbVar28 + 2" (binary_expression "pbVar18 + (int)pbVar28" identifier + (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) < (cast_expression "(byte *)0xfa1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }" { (expression_statement "local_2154 = (byte *)0x0;" (assignment_expression "local_2154 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar27 = pbVar24 + (int)(pbVar18 + 1);" (assignment_expression "pbVar27 = pbVar24 + (int)(pbVar18 + 1)" identifier = (binary_expression "pbVar24 + (int)(pbVar18 + 1)" identifier + (cast_expression "(int)(pbVar18 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + 1)" ( (binary_expression "pbVar18 + 1" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }" else (compound_statement "{\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }" { (expression_statement "pbVar24 = (byte *)xmalloc();" (assignment_expression "pbVar24 = (byte *)xmalloc()" identifier = (cast_expression "(byte *)xmalloc()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pbVar27 = pbVar24 + (int)(pbVar18 + 1);" (assignment_expression "pbVar27 = pbVar24 + (int)(pbVar18 + 1)" identifier = (binary_expression "pbVar24 + (int)(pbVar18 + 1)" identifier + (cast_expression "(int)(pbVar18 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + 1)" ( (binary_expression "pbVar18 + 1" identifier + number_literal) ))))) ;) (expression_statement "local_214c = pbVar18;" (assignment_expression "local_214c = pbVar18" identifier = identifier) ;) (expression_statement "local_2150 = pbVar20;" (assignment_expression "local_2150 = pbVar20" identifier = identifier) ;) (expression_statement "local_2154 = pbVar24;" (assignment_expression "local_2154 = pbVar24" identifier = identifier) ;) }))) (if_statement "if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }" if (parenthesized_expression "(pbVar18 == (byte *)0x0)" ( (binary_expression "pbVar18 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *pbVar24 = 0;\n      }" { (expression_statement "*pbVar24 = 0;" (assignment_expression "*pbVar24 = 0" (pointer_expression "*pbVar24" * identifier) = number_literal) ;) }) (else_clause "else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }" else (compound_statement "{\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }" { (expression_statement "pbVar31 = pbVar29 + (int)pbVar18;" (assignment_expression "pbVar31 = pbVar29 + (int)pbVar18" identifier = (binary_expression "pbVar29 + (int)pbVar18" identifier + (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar18 = (byte *)0x0;" (assignment_expression "pbVar18 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar22 = pbVar29;" (assignment_expression "pbVar22 = pbVar29" identifier = identifier) ;) (do_statement "do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);" do (compound_statement "{\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        }" { (expression_statement "bVar10 = *pbVar22;" (assignment_expression "bVar10 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) (if_statement "if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }" if (parenthesized_expression "((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0))" ( (binary_expression "(pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)" (parenthesized_expression "(pbVar20 == (byte *)0x0)" ( (binary_expression "pbVar20 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pbVar20[bVar10] == 0)" ( (binary_expression "pbVar20[bVar10] == 0" (subscript_expression "pbVar20[bVar10]" identifier [ identifier ]) == number_literal) ))) )) (compound_statement "{\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }" { (expression_statement "pbVar16 = pbVar24 + (int)pbVar18;" (assignment_expression "pbVar16 = pbVar24 + (int)pbVar18" identifier = (binary_expression "pbVar24 + (int)pbVar18" identifier + (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }" if (parenthesized_expression "(pbVar21 != (byte *)0x0)" ( (binary_expression "pbVar21 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              bVar10 = pbVar21[bVar10];\n            }" { (expression_statement "bVar10 = pbVar21[bVar10];" (assignment_expression "bVar10 = pbVar21[bVar10]" identifier = (subscript_expression "pbVar21[bVar10]" identifier [ identifier ])) ;) })) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar16 = bVar10;" (assignment_expression "*pbVar16 = bVar10" (pointer_expression "*pbVar16" * identifier) = identifier) ;) })) (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar31 != pbVar22)" ( (binary_expression "pbVar31 != pbVar22" identifier != identifier) )) ;) (expression_statement "pbVar24[(int)pbVar18] = 0;" (assignment_expression "pbVar24[(int)pbVar18] = 0" (subscript_expression "pbVar24[(int)pbVar18]" identifier [ (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) ]) = number_literal) ;) }))) (if_statement "if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }" if (parenthesized_expression "(pbVar28 == (byte *)0x0)" ( (binary_expression "pbVar28 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *pbVar27 = 0;\n      }" { (expression_statement "*pbVar27 = 0;" (assignment_expression "*pbVar27 = 0" (pointer_expression "*pbVar27" * identifier) = number_literal) ;) }) (else_clause "else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }" else (compound_statement "{\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }" { (expression_statement "pbVar28 = pbVar26 + (int)pbVar28;" (assignment_expression "pbVar28 = pbVar26 + (int)pbVar28" identifier = (binary_expression "pbVar26 + (int)pbVar28" identifier + (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar30 = (byte *)0x0;" (assignment_expression "pbVar30 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar22 = pbVar26;" (assignment_expression "pbVar22 = pbVar26" identifier = identifier) ;) (do_statement "do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);" do (compound_statement "{\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        }" { (expression_statement "bVar10 = *pbVar22;" (assignment_expression "bVar10 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) (if_statement "if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }" if (parenthesized_expression "((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0))" ( (binary_expression "(pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)" (parenthesized_expression "(pbVar20 == (byte *)0x0)" ( (binary_expression "pbVar20 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pbVar20[bVar10] == 0)" ( (binary_expression "pbVar20[bVar10] == 0" (subscript_expression "pbVar20[bVar10]" identifier [ identifier ]) == number_literal) ))) )) (compound_statement "{\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }" { (expression_statement "pbVar31 = pbVar27 + (int)pbVar30;" (assignment_expression "pbVar31 = pbVar27 + (int)pbVar30" identifier = (binary_expression "pbVar27 + (int)pbVar30" identifier + (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }" if (parenthesized_expression "(pbVar21 != (byte *)0x0)" ( (binary_expression "pbVar21 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              bVar10 = pbVar21[bVar10];\n            }" { (expression_statement "bVar10 = pbVar21[bVar10];" (assignment_expression "bVar10 = pbVar21[bVar10]" identifier = (subscript_expression "pbVar21[bVar10]" identifier [ identifier ])) ;) })) (expression_statement "pbVar30 = pbVar30 + 1;" (assignment_expression "pbVar30 = pbVar30 + 1" identifier = (binary_expression "pbVar30 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar31 = bVar10;" (assignment_expression "*pbVar31 = bVar10" (pointer_expression "*pbVar31" * identifier) = identifier) ;) })) (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar28 != pbVar22)" ( (binary_expression "pbVar28 != pbVar22" identifier != identifier) )) ;) (expression_statement "pbVar27[(int)pbVar30] = 0;" (assignment_expression "pbVar27[(int)pbVar30] = 0" (subscript_expression "pbVar27[(int)pbVar30]" identifier [ (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier) ]) = number_literal) ;) }))) (expression_statement "cVar3 = *(char *)((int)piVar32 + 0x1a);" (assignment_expression "cVar3 = *(char *)((int)piVar32 + 0x1a)" identifier = (pointer_expression "*(char *)((int)piVar32 + 0x1a)" * (cast_expression "(char *)((int)piVar32 + 0x1a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar32 + 0x1a)" ( (binary_expression "(int)piVar32 + 0x1a" (cast_expression "(int)piVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (expression_statement "pbVar22 = pbVar24;" (assignment_expression "pbVar22 = pbVar24" identifier = identifier) ;) (expression_statement "pbVar31 = pbVar27;" (assignment_expression "pbVar31 = pbVar27" identifier = identifier) ;) (if_statement "if (cVar3 == '\0') {\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }" { (if_statement "if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }" if (parenthesized_expression "(*(char *)(piVar32 + 7) != '\0')" ( (binary_expression "*(char *)(piVar32 + 7) != '\0'" (pointer_expression "*(char *)(piVar32 + 7)" * (cast_expression "(char *)(piVar32 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar32 + 7)" ( (binary_expression "piVar32 + 7" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }" { (expression_statement "dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);" (assignment_expression "dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8)" identifier = (cast_expression "(double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8)" (parenthesized_expression "(*(code *)PTR_strtold_0003e524)" ( (pointer_expression "*(code *)PTR_strtold_0003e524" * (cast_expression "(code *)PTR_strtold_0003e524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar24,&local_20e8)" ( identifier , (pointer_expression "&local_20e8" & identifier) ))))) ;) (expression_statement "dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);" (assignment_expression "dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4)" identifier = (cast_expression "(double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4)" (parenthesized_expression "(*(code *)PTR_strtold_0003e524)" ( (pointer_expression "*(code *)PTR_strtold_0003e524" * (cast_expression "(code *)PTR_strtold_0003e524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar27,local_20e4)" ( identifier , identifier ))))) ;) (if_statement "if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }" if (parenthesized_expression "(pbVar24 == local_20e8)" ( (binary_expression "pbVar24 == local_20e8" identifier == identifier) )) (compound_statement "{\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }" { (expression_statement "local_2158 = -(uint)(pbVar27 != local_20e4[0]);" (assignment_expression "local_2158 = -(uint)(pbVar27 != local_20e4[0])" identifier = (unary_expression "-(uint)(pbVar27 != local_20e4[0])" - (call_expression "(uint)(pbVar27 != local_20e4[0])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar27 != local_20e4[0])" ( (binary_expression "pbVar27 != local_20e4[0]" identifier != (subscript_expression "local_20e4[0]" identifier [ number_literal ])) ))))) ;) (expression_statement "local_2150 = pbVar20;" (assignment_expression "local_2150 = pbVar20" identifier = identifier) ;) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) (expression_statement "local_2150 = pbVar20;" (assignment_expression "local_2150 = pbVar20" identifier = identifier) ;) (if_statement "if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }" if (parenthesized_expression "(pbVar27 != local_20e4[0])" ( (binary_expression "pbVar27 != local_20e4[0]" identifier != (subscript_expression "local_20e4[0]" identifier [ number_literal ])) )) (compound_statement "{\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }" { (if_statement "if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }" if (parenthesized_expression "(dVar35 <= dVar34)" ( (binary_expression "dVar35 <= dVar34" identifier <= identifier) )) (compound_statement "{\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }" { (if_statement "if (dVar35 < dVar34) goto LAB_000179f8;" if (parenthesized_expression "(dVar35 < dVar34)" ( (binary_expression "dVar35 < dVar34" identifier < identifier) )) (goto_statement "goto LAB_000179f8;" goto statement_identifier ;)) (if_statement "if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }" if (parenthesized_expression "(dVar34 == dVar35)" ( (binary_expression "dVar34 == dVar35" identifier == identifier) )) (compound_statement "{\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }" { (expression_statement "local_2158 = 0;" (assignment_expression "local_2158 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) })) (expression_statement "local_2158 = 0xffffffff;" (assignment_expression "local_2158 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) (labeled_statement "LAB_000179f8:\n        local_2158 = 1;" statement_identifier : (expression_statement "local_2158 = 1;" (assignment_expression "local_2158 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }" if (parenthesized_expression "(*(char *)((int)piVar32 + 0x1d) == '\0')" ( (binary_expression "*(char *)((int)piVar32 + 0x1d) == '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1d)" * (cast_expression "(char *)((int)piVar32 + 0x1d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar32 + 0x1d)" ( (binary_expression "(int)piVar32 + 0x1d" (cast_expression "(int)piVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }" { (if_statement "if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }" if (parenthesized_expression "(*(char *)((int)piVar32 + 0x1e) != '\0')" ( (binary_expression "*(char *)((int)piVar32 + 0x1e) != '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1e)" * (cast_expression "(char *)((int)piVar32 + 0x1e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar32 + 0x1e)" ( (binary_expression "(int)piVar32 + 0x1e" (cast_expression "(int)piVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }" { (expression_statement "pcVar33 = pcVar12;" (assignment_expression "pcVar33 = pcVar12" identifier = identifier) ;) (expression_statement "iVar23 = (*pcVar12)(pbVar24,0);" (assignment_expression "iVar23 = (*pcVar12)(pbVar24,0)" identifier = (call_expression "(*pcVar12)(pbVar24,0)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(pbVar24,0)" ( identifier , number_literal )))) ;) (expression_statement "iVar25 = (*pcVar33)(pbVar27,0);" (assignment_expression "iVar25 = (*pcVar33)(pbVar27,0)" identifier = (call_expression "(*pcVar33)(pbVar27,0)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(pbVar27,0)" ( identifier , number_literal )))) ;) (expression_statement "local_2158 = iVar23 - iVar25;" (assignment_expression "local_2158 = iVar23 - iVar25" identifier = (binary_expression "iVar23 - iVar25" identifier - identifier)) ;) (expression_statement "local_2150 = pbVar21;" (assignment_expression "local_2150 = pbVar21" identifier = identifier) ;) (expression_statement "local_214c = pbVar20;" (assignment_expression "local_214c = pbVar20" identifier = identifier) ;) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }" if (parenthesized_expression "(*(char *)((int)piVar32 + 0x1b) != '\0')" ( (binary_expression "*(char *)((int)piVar32 + 0x1b) != '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1b)" * (cast_expression "(char *)((int)piVar32 + 0x1b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar32 + 0x1b)" ( (binary_expression "(int)piVar32 + 0x1b" (cast_expression "(int)piVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }" { (expression_statement "local_2138 = local_2010;" (assignment_expression "local_2138 = local_2010" identifier = identifier) ;) (expression_statement "puVar8 = (undefined4 *)(puVar5 + -0x1a38);" (assignment_expression "puVar8 = (undefined4 *)(puVar5 + -0x1a38)" identifier = (cast_expression "(undefined4 *)(puVar5 + -0x1a38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x1a38)" ( (binary_expression "puVar5 + -0x1a38" identifier + number_literal) )))) ;) (expression_statement "pbVar22 = local_2138;" (assignment_expression "pbVar22 = local_2138" identifier = identifier) ;) (do_statement "do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));" do (compound_statement "{\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          }" { (expression_statement "pbVar26 = pbVar22;" (assignment_expression "pbVar26 = pbVar22" identifier = identifier) ;) (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" identifier = identifier) ;) (expression_statement "puVar8 = puVar7 + 4;" (assignment_expression "puVar8 = puVar7 + 4" identifier = (binary_expression "puVar7 + 4" identifier + number_literal)) ;) (expression_statement "uVar17 = puVar7[1];" (assignment_expression "uVar17 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar7[2];" (assignment_expression "uVar15 = puVar7[2]" identifier = (subscript_expression "puVar7[2]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = puVar7[3];" (assignment_expression "uVar14 = puVar7[3]" identifier = (subscript_expression "puVar7[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)pbVar26 = *puVar7;" (assignment_expression "*(undefined4 *)pbVar26 = *puVar7" (pointer_expression "*(undefined4 *)pbVar26" * (cast_expression "(undefined4 *)pbVar26" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "*(undefined4 *)(pbVar26 + 4) = uVar17;" (assignment_expression "*(undefined4 *)(pbVar26 + 4) = uVar17" (pointer_expression "*(undefined4 *)(pbVar26 + 4)" * (cast_expression "(undefined4 *)(pbVar26 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 4)" ( (binary_expression "pbVar26 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pbVar26 + 8) = uVar15;" (assignment_expression "*(undefined4 *)(pbVar26 + 8) = uVar15" (pointer_expression "*(undefined4 *)(pbVar26 + 8)" * (cast_expression "(undefined4 *)(pbVar26 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 8)" ( (binary_expression "pbVar26 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pbVar26 + 0xc) = uVar14;" (assignment_expression "*(undefined4 *)(pbVar26 + 0xc) = uVar14" (pointer_expression "*(undefined4 *)(pbVar26 + 0xc)" * (cast_expression "(undefined4 *)(pbVar26 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 0xc)" ( (binary_expression "pbVar26 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar22 = pbVar26 + 0x10;" (assignment_expression "pbVar22 = pbVar26 + 0x10" identifier = (binary_expression "pbVar26 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar8 != (undefined4 *)(puVar5 + -0x19a8))" ( (binary_expression "puVar8 != (undefined4 *)(puVar5 + -0x19a8)" identifier != (cast_expression "(undefined4 *)(puVar5 + -0x19a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x19a8)" ( (binary_expression "puVar5 + -0x19a8" identifier + number_literal) )))) )) ;) (expression_statement "local_2130 = local_20ac;" (assignment_expression "local_2130 = local_20ac" identifier = identifier) ;) (expression_statement "uVar15 = puVar7[5];" (assignment_expression "uVar15 = puVar7[5]" identifier = (subscript_expression "puVar7[5]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = puVar7[6];" (assignment_expression "uVar14 = puVar7[6]" identifier = (subscript_expression "puVar7[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(pbVar26 + 0x10) = *puVar8;" (assignment_expression "*(undefined4 *)(pbVar26 + 0x10) = *puVar8" (pointer_expression "*(undefined4 *)(pbVar26 + 0x10)" * (cast_expression "(undefined4 *)(pbVar26 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 0x10)" ( (binary_expression "pbVar26 + 0x10" identifier + number_literal) )))) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "*(undefined4 *)(pbVar26 + 0x14) = uVar15;" (assignment_expression "*(undefined4 *)(pbVar26 + 0x14) = uVar15" (pointer_expression "*(undefined4 *)(pbVar26 + 0x14)" * (cast_expression "(undefined4 *)(pbVar26 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 0x14)" ( (binary_expression "pbVar26 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pbVar26 + 0x18) = uVar14;" (assignment_expression "*(undefined4 *)(pbVar26 + 0x18) = uVar14" (pointer_expression "*(undefined4 *)(pbVar26 + 0x18)" * (cast_expression "(undefined4 *)(pbVar26 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 0x18)" ( (binary_expression "pbVar26 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar22 = local_2138;" (assignment_expression "pbVar22 = local_2138" identifier = identifier) ;) (expression_statement "puVar8 = local_2130;" (assignment_expression "puVar8 = local_2130" identifier = identifier) ;) (do_statement "do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);" do (compound_statement "{\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          }" { (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" identifier = identifier) ;) (expression_statement "pbVar26 = pbVar22;" (assignment_expression "pbVar26 = pbVar22" identifier = identifier) ;) (expression_statement "pbVar22 = pbVar26 + 0x10;" (assignment_expression "pbVar22 = pbVar26 + 0x10" identifier = (binary_expression "pbVar26 + 0x10" identifier + number_literal)) ;) (expression_statement "uVar17 = *(undefined4 *)(pbVar26 + 4);" (assignment_expression "uVar17 = *(undefined4 *)(pbVar26 + 4)" identifier = (pointer_expression "*(undefined4 *)(pbVar26 + 4)" * (cast_expression "(undefined4 *)(pbVar26 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 4)" ( (binary_expression "pbVar26 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = *(undefined4 *)(pbVar26 + 8);" (assignment_expression "uVar15 = *(undefined4 *)(pbVar26 + 8)" identifier = (pointer_expression "*(undefined4 *)(pbVar26 + 8)" * (cast_expression "(undefined4 *)(pbVar26 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 8)" ( (binary_expression "pbVar26 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(undefined4 *)(pbVar26 + 0xc);" (assignment_expression "uVar14 = *(undefined4 *)(pbVar26 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(pbVar26 + 0xc)" * (cast_expression "(undefined4 *)(pbVar26 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 0xc)" ( (binary_expression "pbVar26 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = *(undefined4 *)pbVar26;" (assignment_expression "*puVar7 = *(undefined4 *)pbVar26" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*(undefined4 *)pbVar26" * (cast_expression "(undefined4 *)pbVar26" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar7[1] = uVar17;" (assignment_expression "puVar7[1] = uVar17" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = uVar15;" (assignment_expression "puVar7[2] = uVar15" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[3] = uVar14;" (assignment_expression "puVar7[3] = uVar14" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8 = puVar7 + 4;" (assignment_expression "puVar8 = puVar7 + 4" identifier = (binary_expression "puVar7 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar22 != abStack_1f80)" ( (binary_expression "pbVar22 != abStack_1f80" identifier != identifier) )) ;) (expression_statement "uVar15 = *(undefined4 *)(pbVar26 + 0x14);" (assignment_expression "uVar15 = *(undefined4 *)(pbVar26 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(pbVar26 + 0x14)" * (cast_expression "(undefined4 *)(pbVar26 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 0x14)" ( (binary_expression "pbVar26 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(undefined4 *)(pbVar26 + 0x18);" (assignment_expression "uVar14 = *(undefined4 *)(pbVar26 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(pbVar26 + 0x18)" * (cast_expression "(undefined4 *)(pbVar26 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 0x18)" ( (binary_expression "pbVar26 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "cVar3 = puVar5[-0x14df];" (assignment_expression "cVar3 = puVar5[-0x14df]" identifier = (subscript_expression "puVar5[-0x14df]" identifier [ number_literal ])) ;) (expression_statement "puVar7[4] = *(undefined4 *)pbVar22;" (assignment_expression "puVar7[4] = *(undefined4 *)pbVar22" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)pbVar22" * (cast_expression "(undefined4 *)pbVar22" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar7[5] = uVar15;" (assignment_expression "puVar7[5] = uVar15" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[6] = uVar14;" (assignment_expression "puVar7[6] = uVar14" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }" { (expression_statement "md5_process_bytes(pbVar24,pbVar18,local_2130);" (call_expression "md5_process_bytes(pbVar24,pbVar18,local_2130)" identifier (argument_list "(pbVar24,pbVar18,local_2130)" ( identifier , identifier , identifier ))) ;) (expression_statement "pbVar26 = abStack_20cc;" (assignment_expression "pbVar26 = abStack_20cc" identifier = identifier) ;) (expression_statement "md5_finish_ctx(local_2130,pbVar26);" (call_expression "md5_finish_ctx(local_2130,pbVar26)" identifier (argument_list "(local_2130,pbVar26)" ( identifier , identifier ))) ;) (expression_statement "md5_process_bytes(pbVar27,pbVar30,local_2138);" (call_expression "md5_process_bytes(pbVar27,pbVar30,local_2138)" identifier (argument_list "(pbVar27,pbVar30,local_2138)" ( identifier , identifier , identifier ))) ;) (expression_statement "md5_finish_ctx(local_2138,abStack_20bc);" (call_expression "md5_finish_ctx(local_2138,abStack_20bc)" identifier (argument_list "(local_2138,abStack_20bc)" ( identifier , identifier ))) ;) (expression_statement "uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);" (assignment_expression "uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10)" identifier = (call_expression "(*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" ( (pointer_expression "*(code *)PTR_memcmp_0003e52c" * (cast_expression "(code *)PTR_memcmp_0003e52c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar26,abStack_20bc,0x10)" ( identifier , identifier , number_literal )))) ;) (expression_statement "local_214c = (byte *)0x0;" (assignment_expression "local_214c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar28 = pbVar18;" (assignment_expression "pbVar28 = pbVar18" identifier = identifier) ;) (expression_statement "pbVar22 = abStack_20bc;" (assignment_expression "pbVar22 = abStack_20bc" identifier = identifier) ;) (expression_statement "pbVar29 = local_2138;" (assignment_expression "pbVar29 = local_2138" identifier = identifier) ;) (expression_statement "pbVar31 = pbVar24;" (assignment_expression "pbVar31 = pbVar24" identifier = identifier) ;) (expression_statement "local_2150 = pbVar30;" (assignment_expression "local_2150 = pbVar30" identifier = identifier) ;) (expression_statement "local_213c = pbVar27;" (assignment_expression "local_213c = pbVar27" identifier = identifier) ;) (if_statement "if (uVar9 != 0) goto LAB_00018040;" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018040;" goto statement_identifier ;)) (goto_statement "goto LAB_00017ff4;" goto statement_identifier ;) })) (expression_statement "local_2120 = pbVar24 + (int)pbVar18;" (assignment_expression "local_2120 = pbVar24 + (int)pbVar18" identifier = (binary_expression "pbVar24 + (int)pbVar18" identifier + (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_214c = (byte *)0x0;" (assignment_expression "local_214c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar29 = abStack_fd4;" (assignment_expression "pbVar29 = abStack_fd4" identifier = identifier) ;) (expression_statement "local_2158 = 0;" (assignment_expression "local_2158 = 0" identifier = number_literal) ;) (expression_statement "local_211c = pbVar27 + (int)pbVar30;" (assignment_expression "local_211c = pbVar27 + (int)pbVar30" identifier = (binary_expression "pbVar27 + (int)pbVar30" identifier + (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);" (assignment_expression "local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2)" identifier = (cast_expression "(byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(pbVar18 + (int)pbVar30) * 3 + 2)" ( (binary_expression "(int)(pbVar18 + (int)pbVar30) * 3 + 2" (binary_expression "(int)(pbVar18 + (int)pbVar30) * 3" (cast_expression "(int)(pbVar18 + (int)pbVar30)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + (int)pbVar30)" ( (binary_expression "pbVar18 + (int)pbVar30" identifier + (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier)) ))) * number_literal) + number_literal) )))) ;) (expression_statement "pbVar26 = (byte *)0xfa0;" (assignment_expression "pbVar26 = (byte *)0xfa0" identifier = (cast_expression "(byte *)0xfa0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2150 = (byte *)(uint)(pbVar27 < local_211c);" (assignment_expression "local_2150 = (byte *)(uint)(pbVar27 < local_211c)" identifier = (cast_expression "(byte *)(uint)(pbVar27 < local_211c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar27 < local_211c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar27 < local_211c)" ( (binary_expression "pbVar27 < local_211c" identifier < identifier) ))))) ;) (expression_statement "local_2118 = (byte *)0x55555555;" (assignment_expression "local_2118 = (byte *)0x55555555" identifier = (cast_expression "(byte *)0x55555555" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar31 = (byte *)(uint)(pbVar24 < local_2120);" (assignment_expression "pbVar31 = (byte *)(uint)(pbVar24 < local_2120)" identifier = (cast_expression "(byte *)(uint)(pbVar24 < local_2120)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar24 < local_2120)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar24 < local_2120)" ( (binary_expression "pbVar24 < local_2120" identifier < identifier) ))))) ;) (expression_statement "local_213c = pbVar24;" (assignment_expression "local_213c = pbVar24" identifier = identifier) ;) (expression_statement "local_2114 = piVar32;" (assignment_expression "local_2114 = piVar32" identifier = identifier) ;) (expression_statement "local_2110 = pbVar24;" (assignment_expression "local_2110 = pbVar24" identifier = identifier) ;) (expression_statement "local_210c = pbVar27;" (assignment_expression "local_210c = pbVar27" identifier = identifier) ;) (expression_statement "local_2108 = pbVar18;" (assignment_expression "local_2108 = pbVar18" identifier = identifier) ;) (expression_statement "local_2104 = pbVar30;" (assignment_expression "local_2104 = pbVar30" identifier = identifier) ;) (expression_statement "local_2100 = pbVar21;" (assignment_expression "local_2100 = pbVar21" identifier = identifier) ;) (expression_statement "local_20fc = pbVar20;" (assignment_expression "local_20fc = pbVar20" identifier = identifier) ;) (expression_statement "local_20ec = pbVar29;" (assignment_expression "local_20ec = pbVar29" identifier = identifier) ;) (goto_statement "goto LAB_00017c30;" goto statement_identifier ;) })) (if_statement "if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }" if (parenthesized_expression "(*(char *)(piVar32 + 8) != '\0')" ( (binary_expression "*(char *)(piVar32 + 8) != '\0'" (pointer_expression "*(char *)(piVar32 + 8)" * (cast_expression "(char *)(piVar32 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar32 + 8)" ( (binary_expression "piVar32 + 8" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }" { (expression_statement "local_2158 = filevercmp(pbVar24,pbVar27);" (assignment_expression "local_2158 = filevercmp(pbVar24,pbVar27)" identifier = (call_expression "filevercmp(pbVar24,pbVar27)" identifier (argument_list "(pbVar24,pbVar27)" ( identifier , identifier )))) ;) (expression_statement "local_2150 = pbVar21;" (assignment_expression "local_2150 = pbVar21" identifier = identifier) ;) (expression_statement "local_214c = pbVar20;" (assignment_expression "local_214c = pbVar20" identifier = identifier) ;) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) (if_statement "if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }" if (parenthesized_expression "(pbVar18 == (byte *)0x0)" ( (binary_expression "pbVar18 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }" { (expression_statement "local_2158 = -(uint)(pbVar30 != (byte *)0x0);" (assignment_expression "local_2158 = -(uint)(pbVar30 != (byte *)0x0)" identifier = (unary_expression "-(uint)(pbVar30 != (byte *)0x0)" - (call_expression "(uint)(pbVar30 != (byte *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar30 != (byte *)0x0)" ( (binary_expression "pbVar30 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) (if_statement "if (pbVar30 == (byte *)0x0) goto LAB_000179f8;" if (parenthesized_expression "(pbVar30 == (byte *)0x0)" ( (binary_expression "pbVar30 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000179f8;" goto statement_identifier ;)) (expression_statement "pbVar19 = pbVar30 + 1;" (assignment_expression "pbVar19 = pbVar30 + 1" identifier = (binary_expression "pbVar30 + 1" identifier + number_literal)) ;) (expression_statement "pbVar31 = pbVar18 + 1;" (assignment_expression "pbVar31 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "pbVar16 = pbVar27;" (assignment_expression "pbVar16 = pbVar27" identifier = identifier) ;) (expression_statement "pcVar33 = (code *)PTR_xmemcoll0_0003e200;" (assignment_expression "pcVar33 = (code *)PTR_xmemcoll0_0003e200" identifier = (cast_expression "(code *)PTR_xmemcoll0_0003e200" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_000177ec;" goto statement_identifier ;) })) (expression_statement "cVar3 = puVar5[*pbVar24 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar24 - 0x15f0]" identifier = (subscript_expression "puVar5[*pbVar24 - 0x15f0]" identifier [ (binary_expression "*pbVar24 - 0x15f0" (pointer_expression "*pbVar24" * identifier) - number_literal) ])) ;) (while_statement "while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }" while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }" { (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = puVar5[*pbVar22 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar22 - 0x15f0]" identifier = (subscript_expression "puVar5[*pbVar22 - 0x15f0]" identifier [ (binary_expression "*pbVar22 - 0x15f0" (pointer_expression "*pbVar22" * identifier) - number_literal) ])) ;) })) (expression_statement "cVar3 = puVar5[*pbVar27 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar27 - 0x15f0]" identifier = (subscript_expression "puVar5[*pbVar27 - 0x15f0]" identifier [ (binary_expression "*pbVar27 - 0x15f0" (pointer_expression "*pbVar27" * identifier) - number_literal) ])) ;) (while_statement "while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }" while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }" { (expression_statement "pbVar31 = pbVar31 + 1;" (assignment_expression "pbVar31 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = puVar5[*pbVar31 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar31 - 0x15f0]" identifier = (subscript_expression "puVar5[*pbVar31 - 0x15f0]" identifier [ (binary_expression "*pbVar31 - 0x15f0" (pointer_expression "*pbVar31" * identifier) - number_literal) ])) ;) })) (expression_statement "pbVar29 = PTR_0003e1b4 + 0x6090;" (assignment_expression "pbVar29 = PTR_0003e1b4 + 0x6090" identifier = (binary_expression "PTR_0003e1b4 + 0x6090" identifier + number_literal)) ;) (expression_statement "iVar23 = FUN_00016090(pbVar22);" (assignment_expression "iVar23 = FUN_00016090(pbVar22)" identifier = (call_expression "FUN_00016090(pbVar22)" identifier (argument_list "(pbVar22)" ( identifier )))) ;) (expression_statement "iVar25 = FUN_00016090(pbVar31);" (assignment_expression "iVar25 = FUN_00016090(pbVar31)" identifier = (call_expression "FUN_00016090(pbVar31)" identifier (argument_list "(pbVar31)" ( identifier )))) ;) (expression_statement "local_2158 = iVar23 - iVar25;" (assignment_expression "local_2158 = iVar23 - iVar25" identifier = (binary_expression "iVar23 - iVar25" identifier - identifier)) ;) (expression_statement "pbVar26 = pbVar22;" (assignment_expression "pbVar26 = pbVar22" identifier = identifier) ;) (expression_statement "pbVar28 = pbVar31;" (assignment_expression "pbVar28 = pbVar31" identifier = identifier) ;) (expression_statement "local_2150 = pbVar21;" (assignment_expression "local_2150 = pbVar21" identifier = identifier) ;) (expression_statement "local_214c = pbVar20;" (assignment_expression "local_214c = pbVar20" identifier = identifier) ;) (if_statement "if (local_2158 != 0) goto LAB_000175d8;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;)) }) (else_clause "else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }" else (compound_statement "{\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }" { (expression_statement "cVar3 = puVar5[*pbVar24 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar24 - 0x15f0]" identifier = (subscript_expression "puVar5[*pbVar24 - 0x15f0]" identifier [ (binary_expression "*pbVar24 - 0x15f0" (pointer_expression "*pbVar24" * identifier) - number_literal) ])) ;) (while_statement "while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }" while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }" { (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = puVar5[*pbVar22 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar22 - 0x15f0]" identifier = (subscript_expression "puVar5[*pbVar22 - 0x15f0]" identifier [ (binary_expression "*pbVar22 - 0x15f0" (pointer_expression "*pbVar22" * identifier) - number_literal) ])) ;) })) (expression_statement "cVar3 = puVar5[*pbVar27 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar27 - 0x15f0]" identifier = (subscript_expression "puVar5[*pbVar27 - 0x15f0]" identifier [ (binary_expression "*pbVar27 - 0x15f0" (pointer_expression "*pbVar27" * identifier) - number_literal) ])) ;) (while_statement "while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }" while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }" { (expression_statement "pbVar31 = pbVar31 + 1;" (assignment_expression "pbVar31 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = puVar5[*pbVar31 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar31 - 0x15f0]" identifier = (subscript_expression "puVar5[*pbVar31 - 0x15f0]" identifier [ (binary_expression "*pbVar31 - 0x15f0" (pointer_expression "*pbVar31" * identifier) - number_literal) ])) ;) })) }))) (expression_statement "pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);" (assignment_expression "pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc)" identifier = (pointer_expression "*(byte **)(PTR_DAT_0003e1a8 + -0x14dc)" * (cast_expression "(byte **)(PTR_DAT_0003e1a8 + -0x14dc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0003e1a8 + -0x14dc)" ( (binary_expression "PTR_DAT_0003e1a8 + -0x14dc" identifier + number_literal) ))))) ;) (expression_statement "pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);" (assignment_expression "pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8)" identifier = (pointer_expression "*(byte **)(PTR_DAT_0003e1a8 + -0x14d8)" * (cast_expression "(byte **)(PTR_DAT_0003e1a8 + -0x14d8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0003e1a8 + -0x14d8)" ( (binary_expression "PTR_DAT_0003e1a8 + -0x14d8" identifier + number_literal) ))))) ;) (expression_statement "pcVar33 = (code *)PTR_strnumcmp_0003e1f0;" (assignment_expression "pcVar33 = (code *)PTR_strnumcmp_0003e1f0" identifier = (cast_expression "(code *)PTR_strnumcmp_0003e1f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_000177ec:\n    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);" statement_identifier : (expression_statement "local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);" (assignment_expression "local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19)" identifier = (call_expression "(*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(pbVar22,pbVar31,pbVar16,pbVar19)" ( identifier , identifier , identifier , identifier )))) ;)) (expression_statement "local_2150 = pbVar21;" (assignment_expression "local_2150 = pbVar21" identifier = identifier) ;) (expression_statement "local_214c = pbVar20;" (assignment_expression "local_214c = pbVar20" identifier = identifier) ;) (if_statement "if (pbVar20 != (byte *)0x0) goto LAB_000175e4;" if (parenthesized_expression "(pbVar20 != (byte *)0x0)" ( (binary_expression "pbVar20 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000175e4;" goto statement_identifier ;)) (labeled_statement "LAB_00017808:\n    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;" statement_identifier : (if_statement "if (pbVar21 != (byte *)0x0) goto LAB_000175e4;" if (parenthesized_expression "(pbVar21 != (byte *)0x0)" ( (binary_expression "pbVar21 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000175e4;" goto statement_identifier ;))) (expression_statement "pbVar24[(int)pbVar18] = bVar1;" (assignment_expression "pbVar24[(int)pbVar18] = bVar1" (subscript_expression "pbVar24[(int)pbVar18]" identifier [ (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) ]) = identifier) ;) (expression_statement "pbVar27[(int)pbVar30] = bVar2;" (assignment_expression "pbVar27[(int)pbVar30] = bVar2" (subscript_expression "pbVar27[(int)pbVar30]" identifier [ (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier) ]) = identifier) ;) (expression_statement "pbVar27 = pbVar18;" (assignment_expression "pbVar27 = pbVar18" identifier = identifier) ;) (expression_statement "pbVar31 = pbVar30;" (assignment_expression "pbVar31 = pbVar30" identifier = identifier) ;) (labeled_statement "joined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );" statement_identifier : (do_statement "do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );" do (compound_statement "{\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    }" { (if_statement "if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }" if (parenthesized_expression "(local_2158 == 0)" ( (binary_expression "local_2158 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }" { (expression_statement "piVar32 = (int *)piVar32[9];" (assignment_expression "piVar32 = (int *)piVar32[9]" identifier = (cast_expression "(int *)piVar32[9]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar32[9]" identifier [ number_literal ]))) ;) (if_statement "if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }" if (parenthesized_expression "(piVar32 != (int *)0x0)" ( (binary_expression "piVar32 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }" { (expression_statement "pbVar29 = (byte *)*param_1;" (assignment_expression "pbVar29 = (byte *)*param_1" identifier = (cast_expression "(byte *)*param_1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "iVar25 = param_1[1];" (assignment_expression "iVar25 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar28 = (byte *)*param_2;" (assignment_expression "pbVar28 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "iVar23 = param_2[1];" (assignment_expression "iVar23 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (if_statement "if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }" if (parenthesized_expression "(piVar32[2] == -1)" ( (binary_expression "piVar32[2] == -1" (subscript_expression "piVar32[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }" { (expression_statement "iVar13 = *piVar32;" (assignment_expression "iVar13 = *piVar32" identifier = (pointer_expression "*piVar32" * identifier)) ;) (expression_statement "pbVar22 = pbVar29 + iVar25 + -1;" (assignment_expression "pbVar22 = pbVar29 + iVar25 + -1" identifier = (binary_expression "pbVar29 + iVar25 + -1" (binary_expression "pbVar29 + iVar25" identifier + identifier) + number_literal)) ;) (expression_statement "pbVar24 = pbVar28 + iVar23 + -1;" (assignment_expression "pbVar24 = pbVar28 + iVar23 + -1" identifier = (binary_expression "pbVar28 + iVar23 + -1" (binary_expression "pbVar28 + iVar23" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }" else (compound_statement "{\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }" { (expression_statement "pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);" (assignment_expression "pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32)" identifier = (cast_expression "(byte *)FUN_000171d0(pbVar29,iVar25,piVar32)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000171d0(pbVar29,iVar25,piVar32)" identifier (argument_list "(pbVar29,iVar25,piVar32)" ( identifier , identifier , identifier ))))) ;) (expression_statement "pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);" (assignment_expression "pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23)" identifier = (cast_expression "(byte *)FUN_000171d0(pbVar28,iVar23)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000171d0(pbVar28,iVar23)" identifier (argument_list "(pbVar28,iVar23)" ( identifier , identifier ))))) ;) (expression_statement "iVar13 = *piVar32;" (assignment_expression "iVar13 = *piVar32" identifier = (pointer_expression "*piVar32" * identifier)) ;) }))) (if_statement "if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }" if (parenthesized_expression "(iVar13 != -1)" ( (binary_expression "iVar13 != -1" identifier != number_literal) )) (compound_statement "{\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }" { (expression_statement "pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);" (assignment_expression "pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32)" identifier = (cast_expression "(byte *)FUN_00017028(pbVar29,iVar25,piVar32)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00017028(pbVar29,iVar25,piVar32)" identifier (argument_list "(pbVar29,iVar25,piVar32)" ( identifier , identifier , identifier ))))) ;) (expression_statement "pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);" (assignment_expression "pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23)" identifier = (cast_expression "(byte *)FUN_00017028(pbVar28,iVar23)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00017028(pbVar28,iVar23)" identifier (argument_list "(pbVar28,iVar23)" ( identifier , identifier ))))) ;) (goto_statement "goto LAB_0001743c;" goto statement_identifier ;) })) (expression_statement "bVar4 = pbVar29 < pbVar22;" (assignment_expression "bVar4 = pbVar29 < pbVar22" identifier = (binary_expression "pbVar29 < pbVar22" identifier < identifier)) ;) (expression_statement "pbVar26 = pbVar28;" (assignment_expression "pbVar26 = pbVar28" identifier = identifier) ;) (if_statement "if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;" if (parenthesized_expression "(*(char *)(piVar32 + 6) == '\0')" ( (binary_expression "*(char *)(piVar32 + 6) == '\0'" (pointer_expression "*(char *)(piVar32 + 6)" * (cast_expression "(char *)(piVar32 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar32 + 6)" ( (binary_expression "piVar32 + 6" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00017440;" goto statement_identifier ;)) (expression_statement "pbVar18 = pbVar29;" (assignment_expression "pbVar18 = pbVar29" identifier = identifier) ;) (if_statement "if (pbVar22 <= pbVar29) goto LAB_000178f8;" if (parenthesized_expression "(pbVar22 <= pbVar29)" ( (binary_expression "pbVar22 <= pbVar29" identifier <= identifier) )) (goto_statement "goto LAB_000178f8;" goto statement_identifier ;)) (goto_statement "goto LAB_000178dc;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }" else (compound_statement "{\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }" { (labeled_statement "LAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }" statement_identifier : (if_statement "if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }" if (parenthesized_expression "(*(char *)((int)piVar32 + 0x1f) != '\0')" ( (binary_expression "*(char *)((int)piVar32 + 0x1f) != '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1f)" * (cast_expression "(char *)((int)piVar32 + 0x1f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar32 + 0x1f)" ( (binary_expression "(int)piVar32 + 0x1f" (cast_expression "(int)piVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_2158 = -local_2158;\n        }" { (expression_statement "local_2158 = -local_2158;" (assignment_expression "local_2158 = -local_2158" identifier = (unary_expression "-local_2158" - identifier)) ;) }))) }))) (if_statement "if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }" if (parenthesized_expression "(local_34 == *(int *)puVar6)" ( (binary_expression "local_34 == *(int *)puVar6" identifier == (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return local_2158;\n      }" { (return_statement "return local_2158;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_0003e518)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003e518)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003e518)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0003e518" * (cast_expression "(code *)PTR___stack_chk_fail_0003e518" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00017dc0:\n      iVar23 = (*pcVar11)();" statement_identifier : (expression_statement "iVar23 = (*pcVar11)();" (assignment_expression "iVar23 = (*pcVar11)()" identifier = (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( )))) ;)) (expression_statement "pbVar18 = (byte *)(iVar23 + 1);" (assignment_expression "pbVar18 = (byte *)(iVar23 + 1)" identifier = (cast_expression "(byte *)(iVar23 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 1)" ( (binary_expression "iVar23 + 1" identifier + number_literal) )))) ;) (expression_statement "pbVar22 = pbVar18 + (int)pbVar28;" (assignment_expression "pbVar22 = pbVar18 + (int)pbVar28" identifier = (binary_expression "pbVar18 + (int)pbVar28" identifier + (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (piVar32 == (int *)0x0) goto LAB_00018174;" if (parenthesized_expression "(piVar32 == (int *)0x0)" ( (binary_expression "piVar32 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00018174;" goto statement_identifier ;)) (labeled_statement "LAB_00017de0:\n      pbVar26 = pbVar22;" statement_identifier : (expression_statement "pbVar26 = pbVar22;" (assignment_expression "pbVar26 = pbVar22" identifier = identifier) ;)) (if_statement "if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }" if (parenthesized_expression "(pbVar26 < local_2118)" ( (binary_expression "pbVar26 < local_2118" identifier < identifier) )) (compound_statement "{\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }" { (expression_statement "pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);" (assignment_expression "pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1)" identifier = (cast_expression "(byte *)((uint)((int)pbVar26 * 3) >> 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((int)pbVar26 * 3) >> 1)" ( (binary_expression "(uint)((int)pbVar26 * 3) >> 1" (call_expression "(uint)((int)pbVar26 * 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar26 * 3)" ( (binary_expression "(int)pbVar26 * 3" (cast_expression "(int)pbVar26" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) >> number_literal) )))) ;) })) (expression_statement "(*(code *)PTR_free_0003e558)(local_214c);" (call_expression "(*(code *)PTR_free_0003e558)(local_214c)" (parenthesized_expression "(*(code *)PTR_free_0003e558)" ( (pointer_expression "*(code *)PTR_free_0003e558" * (cast_expression "(code *)PTR_free_0003e558" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_214c)" ( identifier ))) ;) (expression_statement "pbVar24 = (byte *)xmalloc(pbVar26);" (assignment_expression "pbVar24 = (byte *)xmalloc(pbVar26)" identifier = (cast_expression "(byte *)xmalloc(pbVar26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(pbVar26)" identifier (argument_list "(pbVar26)" ( identifier ))))) ;) (if_statement "if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }" if (parenthesized_expression "(pbVar31 != (byte *)0x0)" ( (binary_expression "pbVar31 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }" { (expression_statement "(*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);" (call_expression "(*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28)" (parenthesized_expression "(*(code *)PTR_strxfrm_0003e464)" ( (pointer_expression "*(code *)PTR_strxfrm_0003e464" * (cast_expression "(code *)PTR_strxfrm_0003e464" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar24,local_213c,pbVar28)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pbVar22 = pbVar24 + (int)pbVar28;" (assignment_expression "pbVar22 = pbVar24 + (int)pbVar28" identifier = (binary_expression "pbVar24 + (int)pbVar28" identifier + (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_214c = pbVar24;" (assignment_expression "local_214c = pbVar24" identifier = identifier) ;) (if_statement "if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }" if (parenthesized_expression "(local_2150 != (byte *)0x0)" ( (binary_expression "local_2150 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }" { (expression_statement "(*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);" (call_expression "(*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18)" (parenthesized_expression "(*(code *)PTR_strxfrm_0003e464)" ( (pointer_expression "*(code *)PTR_strxfrm_0003e464" * (cast_expression "(code *)PTR_strxfrm_0003e464" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar22,pbVar27,pbVar18)" ( identifier , identifier , identifier ))) ;) (if_statement "if (pbVar31 == (byte *)0x0) goto LAB_0001809c;" if (parenthesized_expression "(pbVar31 == (byte *)0x0)" ( (binary_expression "pbVar31 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001809c;" goto statement_identifier ;)) (expression_statement "iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);" (assignment_expression "iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c)" identifier = (call_expression "(*(code *)PTR_strlen_0003e488)(local_213c)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" ( (pointer_expression "*(code *)PTR_strlen_0003e488" * (cast_expression "(code *)PTR_strlen_0003e488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_213c)" ( identifier )))) ;) (expression_statement "local_213c = local_213c + iVar23 + 1;" (assignment_expression "local_213c = local_213c + iVar23 + 1" identifier = (binary_expression "local_213c + iVar23 + 1" (binary_expression "local_213c + iVar23" identifier + identifier) + number_literal)) ;) (goto_statement "goto LAB_00017c8c;" goto statement_identifier ;) })) (if_statement "if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }" if (parenthesized_expression "(pbVar31 != (byte *)0x0)" ( (binary_expression "pbVar31 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }" { (expression_statement "iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);" (assignment_expression "iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c)" identifier = (call_expression "(*(code *)PTR_strlen_0003e488)(local_213c)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" ( (pointer_expression "*(code *)PTR_strlen_0003e488" * (cast_expression "(code *)PTR_strlen_0003e488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_213c)" ( identifier )))) ;) (expression_statement "local_213c = local_213c + iVar23 + 1;" (assignment_expression "local_213c = local_213c + iVar23 + 1" identifier = (binary_expression "local_213c + iVar23 + 1" (binary_expression "local_213c + iVar23" identifier + identifier) + number_literal)) ;) (labeled_statement "LAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }" statement_identifier : (if_statement "if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }" if (parenthesized_expression "(local_213c < local_2120)" ( (binary_expression "local_213c < local_2120" identifier < identifier) )) (compound_statement "{\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }" { (expression_statement "pbVar31 = (byte *)(uint)(local_213c < local_2120);" (assignment_expression "pbVar31 = (byte *)(uint)(local_213c < local_2120)" identifier = (cast_expression "(byte *)(uint)(local_213c < local_2120)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(local_213c < local_2120)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_213c < local_2120)" ( (binary_expression "local_213c < local_2120" identifier < identifier) ))))) ;) (expression_statement "pbVar29 = pbVar24;" (assignment_expression "pbVar29 = pbVar24" identifier = identifier) ;) (labeled_statement "LAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );" statement_identifier : (do_statement "do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );" do (compound_statement "{\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          }" { (expression_statement "md5_process_bytes(pbVar29,pbVar28,local_2130);" (call_expression "md5_process_bytes(pbVar29,pbVar28,local_2130)" identifier (argument_list "(pbVar29,pbVar28,local_2130)" ( identifier , identifier , identifier ))) ;) (expression_statement "md5_process_bytes(pbVar22,pbVar18,local_2138);" (call_expression "md5_process_bytes(pbVar22,pbVar18,local_2138)" identifier (argument_list "(pbVar22,pbVar18,local_2138)" ( identifier , identifier , identifier ))) ;) (if_statement "if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }" if (parenthesized_expression "(local_2158 == 0)" ( (binary_expression "local_2158 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }" { (expression_statement "pbVar24 = pbVar18;" (assignment_expression "pbVar24 = pbVar18" identifier = identifier) ;) (if_statement "if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }" if (parenthesized_expression "(pbVar18 < pbVar28 == 0)" ( (binary_expression "pbVar18 < pbVar28 == 0" (binary_expression "pbVar18 < pbVar28" identifier < identifier) == number_literal) )) (compound_statement "{\n                pbVar24 = pbVar28;\n              }" { (expression_statement "pbVar24 = pbVar28;" (assignment_expression "pbVar24 = pbVar28" identifier = identifier) ;) })) (expression_statement "local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);" (assignment_expression "local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24)" identifier = (call_expression "(*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" ( (pointer_expression "*(code *)PTR_memcmp_0003e52c" * (cast_expression "(code *)PTR_memcmp_0003e52c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar29,pbVar22,pbVar24)" ( identifier , identifier , identifier )))) ;) (if_statement "if (local_2158 != 0) goto LAB_00017c30;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017c30;" goto statement_identifier ;)) (expression_statement "local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);" (assignment_expression "local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18)" identifier = (binary_expression "(uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18)" (call_expression "(uint)(pbVar18 < pbVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 < pbVar28)" ( (binary_expression "pbVar18 < pbVar28" identifier < identifier) ))) - (call_expression "(uint)(pbVar28 < pbVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar28 < pbVar18)" ( (binary_expression "pbVar28 < pbVar18" identifier < identifier) ))))) ;) (if_statement "if (pbVar26 < local_2134) goto LAB_00017d44;" if (parenthesized_expression "(pbVar26 < local_2134)" ( (binary_expression "pbVar26 < local_2134" identifier < identifier) )) (goto_statement "goto LAB_00017d44;" goto statement_identifier ;)) (labeled_statement "LAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;" statement_identifier : (if_statement "if (pbVar31 == (byte *)0x0) goto LAB_00017c48;" if (parenthesized_expression "(pbVar31 == (byte *)0x0)" ( (binary_expression "pbVar31 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00017c48;" goto statement_identifier ;))) (labeled_statement "LAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);" statement_identifier : (expression_statement "iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);" (assignment_expression "iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26)" identifier = (call_expression "(*pcVar11)(pbVar29,local_213c,pbVar26)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(pbVar29,local_213c,pbVar26)" ( identifier , identifier , identifier )))) ;)) (expression_statement "pbVar28 = (byte *)(iVar23 + 1);" (assignment_expression "pbVar28 = (byte *)(iVar23 + 1)" identifier = (cast_expression "(byte *)(iVar23 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 1)" ( (binary_expression "iVar23 + 1" identifier + number_literal) )))) ;) (if_statement "if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }" if (parenthesized_expression "(local_2150 != (byte *)0x0)" ( (binary_expression "local_2150 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }" { (expression_statement "piVar32 = (int *)(uint)(pbVar26 < pbVar28);" (assignment_expression "piVar32 = (int *)(uint)(pbVar26 < pbVar28)" identifier = (cast_expression "(int *)(uint)(pbVar26 < pbVar28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar26 < pbVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar26 < pbVar28)" ( (binary_expression "pbVar26 < pbVar28" identifier < identifier) ))))) ;) (goto_statement "goto LAB_00017dc0;" goto statement_identifier ;) })) (expression_statement "pbVar18 = (byte *)0x0;" (assignment_expression "pbVar18 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar22 = pbVar28;" (assignment_expression "pbVar22 = pbVar28" identifier = identifier) ;) (if_statement "if (pbVar26 < pbVar28) goto LAB_00017de0;" if (parenthesized_expression "(pbVar26 < pbVar28)" ( (binary_expression "pbVar26 < pbVar28" identifier < identifier) )) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (labeled_statement "LAB_00018174:\n              pbVar24 = pbVar29;" statement_identifier : (expression_statement "pbVar24 = pbVar29;" (assignment_expression "pbVar24 = pbVar29" identifier = identifier) ;)) (if_statement "if (pbVar26 < pbVar22) goto LAB_00017de0;" if (parenthesized_expression "(pbVar26 < pbVar22)" ( (binary_expression "pbVar26 < pbVar22" identifier < identifier) )) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }" else (compound_statement "{\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }" { (labeled_statement "LAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;" statement_identifier : (if_statement "if (local_2134 <= pbVar26) goto LAB_00017c40;" if (parenthesized_expression "(local_2134 <= pbVar26)" ( (binary_expression "local_2134 <= pbVar26" identifier <= identifier) )) (goto_statement "goto LAB_00017c40;" goto statement_identifier ;))) (labeled_statement "LAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);" statement_identifier : (expression_statement "pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);" (assignment_expression "pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1)" identifier = (cast_expression "(byte *)((uint)((int)pbVar26 * 3) >> 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((int)pbVar26 * 3) >> 1)" ( (binary_expression "(uint)((int)pbVar26 * 3) >> 1" (call_expression "(uint)((int)pbVar26 * 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar26 * 3)" ( (binary_expression "(int)pbVar26 * 3" (cast_expression "(int)pbVar26" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) >> number_literal) )))) ;)) (if_statement "if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }" if (parenthesized_expression "(pbVar26 <= local_2134)" ( (binary_expression "pbVar26 <= local_2134" identifier <= identifier) )) (compound_statement "{\n                pbVar26 = local_2134;\n              }" { (expression_statement "pbVar26 = local_2134;" (assignment_expression "pbVar26 = local_2134" identifier = identifier) ;) })) (expression_statement "(*(code *)PTR_free_0003e558)(local_214c);" (call_expression "(*(code *)PTR_free_0003e558)(local_214c)" (parenthesized_expression "(*(code *)PTR_free_0003e558)" ( (pointer_expression "*(code *)PTR_free_0003e558" * (cast_expression "(code *)PTR_free_0003e558" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_214c)" ( identifier ))) ;) (expression_statement "pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);" (assignment_expression "pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26)" identifier = (cast_expression "(byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003e4a4)(pbVar26)" (parenthesized_expression "(*(code *)PTR_malloc_0003e4a4)" ( (pointer_expression "*(code *)PTR_malloc_0003e4a4" * (cast_expression "(code *)PTR_malloc_0003e4a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar26)" ( identifier ))))) ;) (expression_statement "local_214c = pbVar29;" (assignment_expression "local_214c = pbVar29" identifier = identifier) ;) (if_statement "if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }" if (parenthesized_expression "(pbVar29 == (byte *)0x0)" ( (binary_expression "pbVar29 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }" { (expression_statement "pbVar26 = (byte *)0xfa0;" (assignment_expression "pbVar26 = (byte *)0xfa0" identifier = (cast_expression "(byte *)0xfa0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar29 = local_20ec;" (assignment_expression "pbVar29 = local_20ec" identifier = identifier) ;) (goto_statement "goto LAB_00017c40;" goto statement_identifier ;) })) (if_statement "if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;" if (parenthesized_expression "(pbVar31 != (byte *)0x0)" ( (binary_expression "pbVar31 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00017d8c;" goto statement_identifier ;)) (labeled_statement "LAB_00017c48:\n              pbVar18 = (byte *)0x0;" statement_identifier : (expression_statement "pbVar18 = (byte *)0x0;" (assignment_expression "pbVar18 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }" if (parenthesized_expression "(local_2150 != (byte *)0x0)" ( (binary_expression "local_2150 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }" { (expression_statement "pbVar28 = (byte *)0x0;" (assignment_expression "pbVar28 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar32 = (int *)0x0;" (assignment_expression "piVar32 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00017dc0;" goto statement_identifier ;) })) (expression_statement "pbVar28 = (byte *)0x0;" (assignment_expression "pbVar28 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar24 = pbVar29;" (assignment_expression "pbVar24 = pbVar29" identifier = identifier) ;) }))) (expression_statement "pbVar22 = pbVar24 + (int)pbVar28;" (assignment_expression "pbVar22 = pbVar24 + (int)pbVar28" identifier = (binary_expression "pbVar24 + (int)pbVar28" identifier + (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }" if (parenthesized_expression "(pbVar31 == (byte *)0x0)" ( (binary_expression "pbVar31 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }" { (if_statement "if (local_2150 == (byte *)0x0) break;" if (parenthesized_expression "(local_2150 == (byte *)0x0)" ( (binary_expression "local_2150 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);" statement_identifier : (expression_statement "iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);" (assignment_expression "iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27)" identifier = (call_expression "(*(code *)PTR_strlen_0003e488)(pbVar27)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" ( (pointer_expression "*(code *)PTR_strlen_0003e488" * (cast_expression "(code *)PTR_strlen_0003e488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar27)" ( identifier )))) ;)) (expression_statement "pbVar27 = pbVar27 + iVar23 + 1;" (assignment_expression "pbVar27 = pbVar27 + iVar23 + 1" identifier = (binary_expression "pbVar27 + iVar23 + 1" (binary_expression "pbVar27 + iVar23" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }" else (compound_statement "{\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }" { (expression_statement "iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);" (assignment_expression "iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c)" identifier = (call_expression "(*(code *)PTR_strlen_0003e488)(local_213c)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" ( (pointer_expression "*(code *)PTR_strlen_0003e488" * (cast_expression "(code *)PTR_strlen_0003e488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_213c)" ( identifier )))) ;) (expression_statement "local_213c = local_213c + iVar23 + 1;" (assignment_expression "local_213c = local_213c + iVar23 + 1" identifier = (binary_expression "local_213c + iVar23 + 1" (binary_expression "local_213c + iVar23" identifier + identifier) + number_literal)) ;) (if_statement "if (local_2150 == (byte *)0x0) goto LAB_00017f2c;" if (parenthesized_expression "(local_2150 == (byte *)0x0)" ( (binary_expression "local_2150 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00017f2c;" goto statement_identifier ;)) (labeled_statement "LAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);" statement_identifier : (expression_statement "pbVar31 = (byte *)(uint)(local_213c < local_2120);" (assignment_expression "pbVar31 = (byte *)(uint)(local_213c < local_2120)" identifier = (cast_expression "(byte *)(uint)(local_213c < local_2120)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(local_213c < local_2120)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_213c < local_2120)" ( (binary_expression "local_213c < local_2120" identifier < identifier) ))))) ;)) (expression_statement "iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);" (assignment_expression "iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27)" identifier = (call_expression "(*(code *)PTR_strlen_0003e488)(pbVar27)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" ( (pointer_expression "*(code *)PTR_strlen_0003e488" * (cast_expression "(code *)PTR_strlen_0003e488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar27)" ( identifier )))) ;) (expression_statement "pbVar27 = pbVar27 + iVar23 + 1;" (assignment_expression "pbVar27 = pbVar27 + iVar23 + 1" identifier = (binary_expression "pbVar27 + iVar23 + 1" (binary_expression "pbVar27 + iVar23" identifier + identifier) + number_literal)) ;) (if_statement "if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }" if (parenthesized_expression "(pbVar31 != (byte *)0x0)" ( (binary_expression "pbVar31 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }" { (expression_statement "local_2150 = (byte *)(uint)(pbVar27 < local_211c);" (assignment_expression "local_2150 = (byte *)(uint)(pbVar27 < local_211c)" identifier = (cast_expression "(byte *)(uint)(pbVar27 < local_211c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar27 < local_211c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar27 < local_211c)" ( (binary_expression "pbVar27 < local_211c" identifier < identifier) ))))) ;) (expression_statement "pbVar29 = pbVar24;" (assignment_expression "pbVar29 = pbVar24" identifier = identifier) ;) (goto_statement "goto LAB_00017cc8;" goto statement_identifier ;) })) }))) (expression_statement "local_2150 = (byte *)(uint)(pbVar27 < local_211c);" (assignment_expression "local_2150 = (byte *)(uint)(pbVar27 < local_211c)" identifier = (cast_expression "(byte *)(uint)(pbVar27 < local_211c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar27 < local_211c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar27 < local_211c)" ( (binary_expression "pbVar27 < local_211c" identifier < identifier) ))))) ;) (expression_statement "pbVar29 = pbVar24;" (assignment_expression "pbVar29 = pbVar24" identifier = identifier) ;) (if_statement "if (local_211c <= pbVar27) break;" if (parenthesized_expression "(local_211c <= pbVar27)" ( (binary_expression "local_211c <= pbVar27" identifier <= identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) }))) })) (expression_statement "local_213c = pbVar22;" (assignment_expression "local_213c = pbVar22" identifier = identifier) ;) (expression_statement "local_2150 = pbVar18;" (assignment_expression "local_2150 = pbVar18" identifier = identifier) ;) (expression_statement "local_211c = local_20fc;" (assignment_expression "local_211c = local_20fc" identifier = identifier) ;) (expression_statement "local_2120 = local_2100;" (assignment_expression "local_2120 = local_2100" identifier = identifier) ;) (expression_statement "md5_process_bytes(pbVar24,pbVar28,local_2130);" (call_expression "md5_process_bytes(pbVar24,pbVar28,local_2130)" identifier (argument_list "(pbVar24,pbVar28,local_2130)" ( identifier , identifier , identifier ))) ;) (expression_statement "pbVar26 = abStack_20cc;" (assignment_expression "pbVar26 = abStack_20cc" identifier = identifier) ;) (expression_statement "md5_finish_ctx(local_2130,pbVar26);" (call_expression "md5_finish_ctx(local_2130,pbVar26)" identifier (argument_list "(local_2130,pbVar26)" ( identifier , identifier ))) ;) (expression_statement "md5_process_bytes(local_213c,local_2150,local_2138);" (call_expression "md5_process_bytes(local_213c,local_2150,local_2138)" identifier (argument_list "(local_213c,local_2150,local_2138)" ( identifier , identifier , identifier ))) ;) (expression_statement "md5_finish_ctx(local_2138,abStack_20bc);" (call_expression "md5_finish_ctx(local_2138,abStack_20bc)" identifier (argument_list "(local_2138,abStack_20bc)" ( identifier , identifier ))) ;) (expression_statement "uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);" (assignment_expression "uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10)" identifier = (call_expression "(*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" ( (pointer_expression "*(code *)PTR_memcmp_0003e52c" * (cast_expression "(code *)PTR_memcmp_0003e52c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar26,abStack_20bc,0x10)" ( identifier , identifier , number_literal )))) ;) (expression_statement "pbVar20 = local_20fc;" (assignment_expression "pbVar20 = local_20fc" identifier = identifier) ;) (expression_statement "pbVar21 = local_2100;" (assignment_expression "pbVar21 = local_2100" identifier = identifier) ;) (expression_statement "pbVar18 = local_2108;" (assignment_expression "pbVar18 = local_2108" identifier = identifier) ;) (expression_statement "pbVar22 = pbVar28;" (assignment_expression "pbVar22 = pbVar28" identifier = identifier) ;) (expression_statement "pbVar29 = pbVar24;" (assignment_expression "pbVar29 = pbVar24" identifier = identifier) ;) (expression_statement "pbVar30 = local_2104;" (assignment_expression "pbVar30 = local_2104" identifier = identifier) ;) (expression_statement "pbVar31 = local_2110;" (assignment_expression "pbVar31 = local_2110" identifier = identifier) ;) (expression_statement "pbVar27 = local_210c;" (assignment_expression "pbVar27 = local_210c" identifier = identifier) ;) (expression_statement "piVar32 = local_2114;" (assignment_expression "piVar32 = local_2114" identifier = identifier) ;) (expression_statement "local_2134 = abStack_20bc;" (assignment_expression "local_2134 = abStack_20bc" identifier = identifier) ;) (if_statement "if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }" if (parenthesized_expression "((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0))" ( (binary_expression "(uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)" (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar9 = local_2158, local_2158 == 0)" ( (comma_expression "uVar9 = local_2158, local_2158 == 0" (assignment_expression "uVar9 = local_2158" identifier = identifier) , (binary_expression "local_2158 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }" { (labeled_statement "LAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);" statement_identifier : (expression_statement "pbVar26 = (byte *)(uint)(local_2150 < pbVar28);" (assignment_expression "pbVar26 = (byte *)(uint)(local_2150 < pbVar28)" identifier = (cast_expression "(byte *)(uint)(local_2150 < pbVar28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(local_2150 < pbVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_2150 < pbVar28)" ( (binary_expression "local_2150 < pbVar28" identifier < identifier) ))))) ;)) (expression_statement "pbVar22 = local_2150;" (assignment_expression "pbVar22 = local_2150" identifier = identifier) ;) (if_statement "if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }" if (parenthesized_expression "(pbVar26 == (byte *)0x0)" ( (binary_expression "pbVar26 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pbVar22 = pbVar28;\n        }" { (expression_statement "pbVar22 = pbVar28;" (assignment_expression "pbVar22 = pbVar28" identifier = identifier) ;) })) (expression_statement "uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);" (assignment_expression "uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22)" identifier = (call_expression "(*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" ( (pointer_expression "*(code *)PTR_memcmp_0003e52c" * (cast_expression "(code *)PTR_memcmp_0003e52c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar24,local_213c,pbVar22)" ( identifier , identifier , identifier )))) ;) (expression_statement "pbVar22 = pbVar28;" (assignment_expression "pbVar22 = pbVar28" identifier = identifier) ;) (expression_statement "pbVar29 = pbVar24;" (assignment_expression "pbVar29 = pbVar24" identifier = identifier) ;) (expression_statement "local_2138 = pbVar21;" (assignment_expression "local_2138 = pbVar21" identifier = identifier) ;) (expression_statement "local_2134 = pbVar20;" (assignment_expression "local_2134 = pbVar20" identifier = identifier) ;) (if_statement "if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }" { (expression_statement "uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);" (assignment_expression "uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150)" identifier = (binary_expression "(int)pbVar26 - (uint)(pbVar28 < local_2150)" (cast_expression "(int)pbVar26" ( (type_descriptor "int" primitive_type) ) identifier) - (call_expression "(uint)(pbVar28 < local_2150)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar28 < local_2150)" ( (binary_expression "pbVar28 < local_2150" identifier < identifier) ))))) ;) })) })) (labeled_statement "LAB_00018040:\n      local_2158 = uVar9;" statement_identifier : (expression_statement "local_2158 = uVar9;" (assignment_expression "local_2158 = uVar9" identifier = identifier) ;)) (expression_statement "pbVar24 = pbVar31;" (assignment_expression "pbVar24 = pbVar31" identifier = identifier) ;) (expression_statement "(*(code *)PTR_free_0003e558)(local_214c);" (call_expression "(*(code *)PTR_free_0003e558)(local_214c)" (parenthesized_expression "(*(code *)PTR_free_0003e558)" ( (pointer_expression "*(code *)PTR_free_0003e558" * (cast_expression "(code *)PTR_free_0003e558" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_214c)" ( identifier ))) ;) (expression_statement "pbVar28 = pbVar22;" (assignment_expression "pbVar28 = pbVar22" identifier = identifier) ;) (expression_statement "local_2150 = pbVar21;" (assignment_expression "local_2150 = pbVar21" identifier = identifier) ;) (expression_statement "local_213c = pbVar20;" (assignment_expression "local_213c = pbVar20" identifier = identifier) ;) (labeled_statement "LAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;" statement_identifier : (if_statement "if (pbVar20 == (byte *)0x0) goto LAB_00017808;" if (parenthesized_expression "(pbVar20 == (byte *)0x0)" ( (binary_expression "pbVar20 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00017808;" goto statement_identifier ;))) (labeled_statement "LAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);" statement_identifier : (expression_statement "(*(code *)PTR_free_0003e558)(local_2154);" (call_expression "(*(code *)PTR_free_0003e558)(local_2154)" (parenthesized_expression "(*(code *)PTR_free_0003e558)" ( (pointer_expression "*(code *)PTR_free_0003e558" * (cast_expression "(code *)PTR_free_0003e558" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_2154)" ( identifier ))) ;)) (expression_statement "pbVar27 = pbVar18;" (assignment_expression "pbVar27 = pbVar18" identifier = identifier) ;) (expression_statement "pbVar31 = pbVar30;" (assignment_expression "pbVar31 = pbVar30" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "pbVar31 = pbVar28;" (assignment_expression "pbVar31 = pbVar28" identifier = identifier) ;) (if_statement "if (pbVar20 == (byte *)0x0) {\n    pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);\n    if (pbVar18 == (byte *)0x0) {\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }\n    if (pbVar28 != (byte *)0x0) {\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }" if (parenthesized_expression "(pbVar20 == (byte *)0x0)" ( (binary_expression "pbVar20 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);\n    if (pbVar18 == (byte *)0x0) {\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }\n    if (pbVar28 != (byte *)0x0) {\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }" { (expression_statement "pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);" (assignment_expression "pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0)" identifier = (cast_expression "(byte *)(uint)(pbVar28 != (byte *)0x0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar28 != (byte *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar28 != (byte *)0x0)" ( (binary_expression "pbVar28 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (if_statement "if (pbVar18 == (byte *)0x0) {\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }" if (parenthesized_expression "(pbVar18 == (byte *)0x0)" ( (binary_expression "pbVar18 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }" { (expression_statement "local_2158 = -(int)pbVar27;" (assignment_expression "local_2158 = -(int)pbVar27" identifier = (unary_expression "-(int)pbVar27" - (cast_expression "(int)pbVar27" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto joined_r0x0001782c;" goto statement_identifier ;) })) (if_statement "if (pbVar28 != (byte *)0x0) {\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }" if (parenthesized_expression "(pbVar28 != (byte *)0x0)" ( (binary_expression "pbVar28 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }" { (if_statement "if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }" if (parenthesized_expression "(pbVar21 == (byte *)0x0)" ( (binary_expression "pbVar21 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }" { (expression_statement "pbVar24 = pbVar28;" (assignment_expression "pbVar24 = pbVar28" identifier = identifier) ;) (if_statement "if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }" if (parenthesized_expression "(pbVar18 <= pbVar28)" ( (binary_expression "pbVar18 <= pbVar28" identifier <= identifier) )) (compound_statement "{\n          pbVar24 = pbVar18;\n        }" { (expression_statement "pbVar24 = pbVar18;" (assignment_expression "pbVar24 = pbVar18" identifier = identifier) ;) })) (expression_statement "local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);" (assignment_expression "local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24)" identifier = (call_expression "(*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" ( (pointer_expression "*(code *)PTR_memcmp_0003e52c" * (cast_expression "(code *)PTR_memcmp_0003e52c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar29,pbVar26,pbVar24)" ( identifier , identifier , identifier )))) ;) (expression_statement "local_2150 = pbVar18;" (assignment_expression "local_2150 = pbVar18" identifier = identifier) ;) (if_statement "if (local_2158 != 0) goto LAB_00017838;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017838;" goto statement_identifier ;)) }) (else_clause "else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }" else (if_statement "if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }" if (parenthesized_expression "((pbVar29 < pbVar22) && (pbVar26 < pbVar24))" ( (binary_expression "(pbVar29 < pbVar22) && (pbVar26 < pbVar24)" (parenthesized_expression "(pbVar29 < pbVar22)" ( (binary_expression "pbVar29 < pbVar22" identifier < identifier) )) && (parenthesized_expression "(pbVar26 < pbVar24)" ( (binary_expression "pbVar26 < pbVar24" identifier < identifier) ))) )) (compound_statement "{\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }" { (expression_statement "pbVar27 = (byte *)(uint)pbVar21[*pbVar29];" (assignment_expression "pbVar27 = (byte *)(uint)pbVar21[*pbVar29]" identifier = (cast_expression "(byte *)(uint)pbVar21[*pbVar29]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)pbVar21[*pbVar29]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar21[*pbVar29]" identifier [ (pointer_expression "*pbVar29" * identifier) ])))) ;) (expression_statement "local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];" (assignment_expression "local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26]" identifier = (binary_expression "(int)pbVar27 - (uint)pbVar21[*pbVar26]" (cast_expression "(int)pbVar27" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(uint)pbVar21[*pbVar26]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar21[*pbVar26]" identifier [ (pointer_expression "*pbVar26" * identifier) ])))) ;) (if_statement "if (local_2158 != 0) goto LAB_00017838;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017838;" goto statement_identifier ;)) (expression_statement "pbVar20 = pbVar29 + (int)pbVar28;" (assignment_expression "pbVar20 = pbVar29 + (int)pbVar28" identifier = (binary_expression "pbVar29 + (int)pbVar28" identifier + (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar24 = pbVar26;" (assignment_expression "pbVar24 = pbVar26" identifier = identifier) ;) (expression_statement "pbVar22 = pbVar29;" (assignment_expression "pbVar22 = pbVar29" identifier = identifier) ;) (while_statement "while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }" { (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) (expression_statement "pbVar29 = pbVar20;" (assignment_expression "pbVar29 = pbVar20" identifier = identifier) ;) (if_statement "if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;" if (parenthesized_expression "((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20))" ( (binary_expression "(pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)" (parenthesized_expression "(pbVar24 == pbVar26 + (int)pbVar18)" ( (binary_expression "pbVar24 == pbVar26 + (int)pbVar18" identifier == (binary_expression "pbVar26 + (int)pbVar18" identifier + (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier))) )) || (parenthesized_expression "(pbVar22 == pbVar20)" ( (binary_expression "pbVar22 == pbVar20" identifier == identifier) ))) )) (break_statement "break;" break ;)) (expression_statement "local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];" (assignment_expression "local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24]" identifier = (binary_expression "(uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24]" (cast_expression "(uint)pbVar21[*pbVar22]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar21[*pbVar22]" identifier [ (pointer_expression "*pbVar22" * identifier) ])) - (cast_expression "(uint)pbVar21[*pbVar24]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar21[*pbVar24]" identifier [ (pointer_expression "*pbVar24" * identifier) ])))) ;) (if_statement "if (local_2158 != 0) goto LAB_00017838;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017838;" goto statement_identifier ;)) })) })))) (if_statement "if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }" if (parenthesized_expression "(pbVar18 < pbVar28)" ( (binary_expression "pbVar18 < pbVar28" identifier < identifier) )) (compound_statement "{\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }" { (expression_statement "local_2158 = 0xffffffff;" (assignment_expression "local_2158 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_00017838;" goto statement_identifier ;) })) (expression_statement "local_2158 = (uint)(pbVar18 != pbVar28);" (assignment_expression "local_2158 = (uint)(pbVar18 != pbVar28)" identifier = (call_expression "(uint)(pbVar18 != pbVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 != pbVar28)" ( (binary_expression "pbVar18 != pbVar28" identifier != identifier) )))) ;) (goto_statement "goto joined_r0x0001782c;" goto statement_identifier ;) })) (expression_statement "local_2158 = 1;" (assignment_expression "local_2158 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00017838;" goto statement_identifier ;) })) (expression_statement "pbVar18 = pbVar29;" (assignment_expression "pbVar18 = pbVar29" identifier = identifier) ;) (if_statement "if (pbVar21 != (byte *)0x0) goto LAB_000174c0;" if (parenthesized_expression "(pbVar21 != (byte *)0x0)" ( (binary_expression "pbVar21 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000174c0;" goto statement_identifier ;)) (labeled_statement "LAB_000181d0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" statement_identifier : (if_statement "if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" if (parenthesized_expression "((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0))" ( (binary_expression "(pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)" (parenthesized_expression "(pbVar22 <= pbVar18)" ( (binary_expression "pbVar22 <= pbVar18" identifier <= identifier) )) || (parenthesized_expression "(pbVar20[*pbVar18] == 0)" ( (binary_expression "pbVar20[*pbVar18] == 0" (subscript_expression "pbVar20[*pbVar18]" identifier [ (pointer_expression "*pbVar18" * identifier) ]) == number_literal) ))) )) (compound_statement "{\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" { (expression_statement "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);" (assignment_expression "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22)" identifier = (cast_expression "(byte *)(uint)(pbVar18 < pbVar22)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar18 < pbVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 < pbVar22)" ( (binary_expression "pbVar18 < pbVar22" identifier < identifier) ))))) ;) (expression_statement "pbVar30 = pbVar26;" (assignment_expression "pbVar30 = pbVar26" identifier = identifier) ;) (if_statement "if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }" if (parenthesized_expression "(pbVar24 <= pbVar26)" ( (binary_expression "pbVar24 <= pbVar26" identifier <= identifier) )) (compound_statement "{\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }" { (expression_statement "local_2158 = (uint)(pbVar26 < pbVar24);" (assignment_expression "local_2158 = (uint)(pbVar26 < pbVar24)" identifier = (call_expression "(uint)(pbVar26 < pbVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar26 < pbVar24)" ( (binary_expression "pbVar26 < pbVar24" identifier < identifier) )))) ;) (goto_statement "goto LAB_00018290;" goto statement_identifier ;) })) (while_statement "while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }" while (parenthesized_expression "(pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0)" ( (comma_expression "pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0" (assignment_expression "pbVar26 = pbVar30 + 1" identifier = (binary_expression "pbVar30 + 1" identifier + number_literal)) , (binary_expression "pbVar20[*pbVar30] != 0" (subscript_expression "pbVar20[*pbVar30]" identifier [ (pointer_expression "*pbVar30" * identifier) ]) != number_literal)) )) (compound_statement "{\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }" { (expression_statement "pbVar30 = pbVar26;" (assignment_expression "pbVar30 = pbVar26" identifier = identifier) ;) (if_statement "if (pbVar24 == pbVar26) goto LAB_00018284;" if (parenthesized_expression "(pbVar24 == pbVar26)" ( (binary_expression "pbVar24 == pbVar26" identifier == identifier) )) (goto_statement "goto LAB_00018284;" goto statement_identifier ;)) })) (expression_statement "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);" (assignment_expression "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22)" identifier = (cast_expression "(byte *)(uint)(pbVar18 < pbVar22)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar18 < pbVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 < pbVar22)" ( (binary_expression "pbVar18 < pbVar22" identifier < identifier) ))))) ;) (if_statement "if (pbVar27 == (byte *)0x0) goto LAB_0001828c;" if (parenthesized_expression "(pbVar27 == (byte *)0x0)" ( (binary_expression "pbVar27 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001828c;" goto statement_identifier ;)) (expression_statement "local_2158 = (uint)*pbVar18 - (uint)*pbVar30;" (assignment_expression "local_2158 = (uint)*pbVar18 - (uint)*pbVar30" identifier = (binary_expression "(uint)*pbVar18 - (uint)*pbVar30" (binary_expression "(uint)*pbVar18" (parenthesized_expression "(uint)" ( identifier )) * identifier) - (binary_expression "(uint)*pbVar30" (parenthesized_expression "(uint)" ( identifier )) * identifier))) ;) (if_statement "if (local_2158 != 0) goto LAB_00017838;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017838;" goto statement_identifier ;)) }))) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_000181d0;" goto statement_identifier ;) (labeled_statement "LAB_000174c0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];\n    pbVar26 = pbVar26 + 1;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" statement_identifier : (if_statement "if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];\n    pbVar26 = pbVar26 + 1;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" if (parenthesized_expression "((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0))" ( (binary_expression "(pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)" (parenthesized_expression "(pbVar22 <= pbVar18)" ( (binary_expression "pbVar22 <= pbVar18" identifier <= identifier) )) || (parenthesized_expression "(pbVar20[*pbVar18] == 0)" ( (binary_expression "pbVar20[*pbVar18] == 0" (subscript_expression "pbVar20[*pbVar18]" identifier [ (pointer_expression "*pbVar18" * identifier) ]) == number_literal) ))) )) (compound_statement "{\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];\n    pbVar26 = pbVar26 + 1;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" { (expression_statement "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);" (assignment_expression "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22)" identifier = (cast_expression "(byte *)(uint)(pbVar18 < pbVar22)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar18 < pbVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 < pbVar22)" ( (binary_expression "pbVar18 < pbVar22" identifier < identifier) ))))) ;) (if_statement "if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }" if (parenthesized_expression "(pbVar24 <= pbVar26)" ( (binary_expression "pbVar24 <= pbVar26" identifier <= identifier) )) (compound_statement "{\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }" { (expression_statement "local_2158 = (uint)(pbVar26 < pbVar24);" (assignment_expression "local_2158 = (uint)(pbVar26 < pbVar24)" identifier = (call_expression "(uint)(pbVar26 < pbVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar26 < pbVar24)" ( (binary_expression "pbVar26 < pbVar24" identifier < identifier) )))) ;) (goto_statement "goto LAB_00018290;" goto statement_identifier ;) })) (while_statement "while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }" while (parenthesized_expression "(pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0)" ( (comma_expression "pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0" (assignment_expression "pbVar27 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) , (binary_expression "pbVar20[*pbVar26] != 0" (subscript_expression "pbVar20[*pbVar26]" identifier [ (pointer_expression "*pbVar26" * identifier) ]) != number_literal)) )) (compound_statement "{\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }" { (expression_statement "pbVar26 = pbVar27;" (assignment_expression "pbVar26 = pbVar27" identifier = identifier) ;) (if_statement "if (pbVar24 == pbVar27) goto LAB_00018284;" if (parenthesized_expression "(pbVar24 == pbVar27)" ( (binary_expression "pbVar24 == pbVar27" identifier == identifier) )) (goto_statement "goto LAB_00018284;" goto statement_identifier ;)) })) (expression_statement "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);" (assignment_expression "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22)" identifier = (cast_expression "(byte *)(uint)(pbVar18 < pbVar22)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar18 < pbVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 < pbVar22)" ( (binary_expression "pbVar18 < pbVar22" identifier < identifier) ))))) ;) (expression_statement "pbVar30 = pbVar26;" (assignment_expression "pbVar30 = pbVar26" identifier = identifier) ;) (if_statement "if (pbVar27 == (byte *)0x0) goto LAB_0001828c;" if (parenthesized_expression "(pbVar27 == (byte *)0x0)" ( (binary_expression "pbVar27 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001828c;" goto statement_identifier ;)) (expression_statement "local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];" (assignment_expression "local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26]" identifier = (binary_expression "(uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26]" (cast_expression "(uint)pbVar21[*pbVar18]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar21[*pbVar18]" identifier [ (pointer_expression "*pbVar18" * identifier) ])) - (cast_expression "(uint)pbVar21[*pbVar26]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar21[*pbVar26]" identifier [ (pointer_expression "*pbVar26" * identifier) ])))) ;) (expression_statement "pbVar26 = pbVar26 + 1;" (assignment_expression "pbVar26 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (if_statement "if (local_2158 != 0) goto LAB_00017838;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017838;" goto statement_identifier ;)) }))) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_000174c0;" goto statement_identifier ;) (labeled_statement "LAB_00018284:\n  pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);" statement_identifier : (expression_statement "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);" (assignment_expression "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22)" identifier = (cast_expression "(byte *)(uint)(pbVar18 < pbVar22)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar18 < pbVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 < pbVar22)" ( (binary_expression "pbVar18 < pbVar22" identifier < identifier) ))))) ;)) (expression_statement "pbVar30 = pbVar24;" (assignment_expression "pbVar30 = pbVar24" identifier = identifier) ;) (labeled_statement "LAB_0001828c:\n  local_2158 = (uint)(pbVar30 < pbVar24);" statement_identifier : (expression_statement "local_2158 = (uint)(pbVar30 < pbVar24);" (assignment_expression "local_2158 = (uint)(pbVar30 < pbVar24)" identifier = (call_expression "(uint)(pbVar30 < pbVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar30 < pbVar24)" ( (binary_expression "pbVar30 < pbVar24" identifier < identifier) )))) ;)) (expression_statement "pbVar26 = pbVar30;" (assignment_expression "pbVar26 = pbVar30" identifier = identifier) ;) (labeled_statement "LAB_00018290:\n  local_2158 = (int)pbVar27 - local_2158;" statement_identifier : (expression_statement "local_2158 = (int)pbVar27 - local_2158;" (assignment_expression "local_2158 = (int)pbVar27 - local_2158" identifier = (binary_expression "(int)pbVar27 - local_2158" (cast_expression "(int)pbVar27" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;)) (goto_statement "goto joined_r0x0001782c;" goto statement_identifier ;) (while_statement "while (pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20) {\nLAB_000178dc:\n    pbVar20 = pbVar18 + 1;\n    pbVar29 = pbVar18;\n    if (puVar5[*pbVar18 - 0x15f0] == '\0') break;\n  }" while (parenthesized_expression "(pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20)" ( (comma_expression "pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20" (assignment_expression "pbVar29 = pbVar22" identifier = identifier) , (comma_expression "pbVar18 = pbVar20, pbVar22 != pbVar20" (assignment_expression "pbVar18 = pbVar20" identifier = identifier) , (binary_expression "pbVar22 != pbVar20" identifier != identifier))) )) (compound_statement "{\nLAB_000178dc:\n    pbVar20 = pbVar18 + 1;\n    pbVar29 = pbVar18;\n    if (puVar5[*pbVar18 - 0x15f0] == '\0') break;\n  }" { (labeled_statement "LAB_000178dc:\n    pbVar20 = pbVar18 + 1;" statement_identifier : (expression_statement "pbVar20 = pbVar18 + 1;" (assignment_expression "pbVar20 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;)) (expression_statement "pbVar29 = pbVar18;" (assignment_expression "pbVar29 = pbVar18" identifier = identifier) ;) (if_statement "if (puVar5[*pbVar18 - 0x15f0] == '\0') break;" if (parenthesized_expression "(puVar5[*pbVar18 - 0x15f0] == '\0')" ( (binary_expression "puVar5[*pbVar18 - 0x15f0] == '\0'" (subscript_expression "puVar5[*pbVar18 - 0x15f0]" identifier [ (binary_expression "*pbVar18 - 0x15f0" (pointer_expression "*pbVar18" * identifier) - number_literal) ]) == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) })) (labeled_statement "LAB_000178f8:\n  bVar4 = pbVar29 < pbVar22;" statement_identifier : (expression_statement "bVar4 = pbVar29 < pbVar22;" (assignment_expression "bVar4 = pbVar29 < pbVar22" identifier = (binary_expression "pbVar29 < pbVar22" identifier < identifier)) ;)) (if_statement "if (pbVar28 < pbVar24) {\n    do {\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    } while (pbVar24 != pbVar28);\n  }" if (parenthesized_expression "(pbVar28 < pbVar24)" ( (binary_expression "pbVar28 < pbVar24" identifier < identifier) )) (compound_statement "{\n    do {\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    } while (pbVar24 != pbVar28);\n  }" { (do_statement "do {\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    } while (pbVar24 != pbVar28);" do (compound_statement "{\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    }" { (expression_statement "bVar4 = pbVar29 < pbVar22;" (assignment_expression "bVar4 = pbVar29 < pbVar22" identifier = (binary_expression "pbVar29 < pbVar22" identifier < identifier)) ;) (expression_statement "pbVar26 = pbVar28;" (assignment_expression "pbVar26 = pbVar28" identifier = identifier) ;) (if_statement "if (puVar5[*pbVar28 - 0x15f0] == '\0') break;" if (parenthesized_expression "(puVar5[*pbVar28 - 0x15f0] == '\0')" ( (binary_expression "puVar5[*pbVar28 - 0x15f0] == '\0'" (subscript_expression "puVar5[*pbVar28 - 0x15f0]" identifier [ (binary_expression "*pbVar28 - 0x15f0" (pointer_expression "*pbVar28" * identifier) - number_literal) ]) == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "pbVar28 = pbVar28 + 1;" (assignment_expression "pbVar28 = pbVar28 + 1" identifier = (binary_expression "pbVar28 + 1" identifier + number_literal)) ;) (expression_statement "pbVar26 = pbVar24;" (assignment_expression "pbVar26 = pbVar24" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar24 != pbVar28)" ( (binary_expression "pbVar24 != pbVar28" identifier != identifier) )) ;) })) (goto_statement "goto LAB_00017440;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x000179ec) */\n\nint keycompare(line *a,line *b)\n\n{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  byte bVar13;\n  int iVar8;\n  uint32_t *puVar9;\n  uint32_t *puVar10;\n  int iVar11;\n  uint uVar12;\n  code *pcVar14;\n  code *pcVar15;\n  char *pcVar16;\n  uint32_t uVar17;\n  uint32_t uVar18;\n  line *plVar19;\n  md5_ctx *pmVar20;\n  uint32_t uVar21;\n  md5_ctx *pmVar22;\n  md5_ctx *pmVar23;\n  md5_ctx *pmVar24;\n  md5_ctx *pmVar25;\n  keyfield *key;\n  md5_ctx *pmVar26;\n  keyfield *key_00;\n  md5_ctx *pmVar27;\n  md5_ctx *pmVar28;\n  md5_ctx *pmVar29;\n  md5_ctx *pmVar30;\n  md5_ctx *pmVar31;\n  md5_ctx *pmVar32;\n  line *line_1;\n  code *pcVar33;\n  double dVar34;\n  double dVar35;\n  uint local_2158;\n  md5_ctx *local_2154;\n  md5_ctx *local_2150;\n  md5_ctx *local_214c;\n  md5_ctx *pmStack_213c;\n  md5_ctx *pmStack_2138;\n  md5_ctx *pmStack_2134;\n  md5_ctx *pmStack_2130;\n  md5_ctx *pmStack_2120;\n  md5_ctx *pmStack_211c;\n  md5_ctx *pmStack_2118;\n  line *plStack_2114;\n  md5_ctx *pmStack_2110;\n  md5_ctx *pmStack_210c;\n  md5_ctx *pmStack_2108;\n  md5_ctx *pmStack_2104;\n  md5_ctx *pmStack_2100;\n  md5_ctx *pmStack_20fc;\n  md5_ctx *pmStack_20ec;\n  char *ea;\n  char *eb;\n  longdouble a_1;\n  longdouble b_1;\n  uint32_t dig [2] [4];\n  md5_ctx s [2];\n  char stackbuf [4000];\n  char stackbuf_1 [4000];\n  \n  puVar6 = PTR___stack_chk_guard_0003e550;\n  puVar5 = PTR_DAT_0003e1a8;\n  pmVar25 = (md5_ctx *)a->keylim;\n  pcVar14 = (code *)(PTR_0003e1b4 + 0x6938);\n  pmVar26 = (md5_ctx *)b->keylim;\n  line_1 = *(line **)(PTR_DAT_0003e1a8 + -0x1908);\n  iVar7 = *(int *)PTR___stack_chk_guard_0003e550;\n  pmVar30 = (md5_ctx *)a->keybeg;\n  pcVar15 = (code *)(PTR_0003e1b4 + 0x613c);\n  pmVar27 = (md5_ctx *)b->keybeg;\n  cVar1 = '\0';\n  cVar2 = '\0';\nLAB_0001743c:\n  bVar4 = pmVar30 < pmVar25;\nLAB_00017440:\n  if (!bVar4) {\n    pmVar25 = pmVar30;\n  }\n  if (pmVar26 <= pmVar27) {\n    pmVar26 = pmVar27;\n  }\n  pmVar22 = (md5_ctx *)((int)pmVar25 - (int)pmVar30);\n  pmVar24 = (md5_ctx *)line_1[1].length;\n  pmVar29 = (md5_ctx *)((int)pmVar26 - (int)pmVar27);\n  pmVar23 = (md5_ctx *)line_1[1].text;\n  if (((((puVar5[-0x14df] != '\0') || (*(char *)((int)&line_1[1].keybeg + 2) != '\0')) ||\n       (((uint)line_1[1].keylim & 0xffff0000) != 0)) ||\n      ((*(char *)((int)&line_1[1].keylim + 2) != '\0' ||\n       (*(char *)((int)&line_1[1].keybeg + 3) != '\0')))) || (*(char *)&line_1[2].text != '\0')) {\n    pmVar31 = pmVar29;\n    if ((pmVar23 == (md5_ctx *)0x0) && (pmVar24 == (md5_ctx *)0x0)) {\n      cVar1 = *(char *)&pmVar25->A;\n      *(char *)&pmVar25->A = '\0';\n      cVar2 = *(char *)&pmVar26->A;\n      *(char *)&pmVar26->A = '\0';\n      cVar3 = *(char *)((int)&line_1[1].keybeg + 2);\n      pmVar28 = pmVar27;\n      pmVar26 = pmVar30;\n    }\n    else {\n      pmVar26 = (md5_ctx *)stackbuf;\n      if ((char *)((int)pmVar22 + (int)pmVar29) + 2 < (char *)0xfa1) {\n        local_2154 = (md5_ctx *)0x0;\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n      }\n      else {\n        pmVar26 = (md5_ctx *)xmalloc((size_t)((char *)((int)pmVar22 + (int)pmVar29) + 2));\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n        local_214c = pmVar22;\n        local_2150 = pmVar23;\n        local_2154 = pmVar26;\n      }\n      if (pmVar22 == (md5_ctx *)0x0) {\n        *(char *)&pmVar26->A = '\0';\n      }\n      else {\n        pmVar32 = (md5_ctx *)((int)pmVar30 + (int)pmVar22);\n        pmVar22 = (md5_ctx *)0x0;\n        pmVar25 = pmVar30;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar22->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar26->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar32 != pmVar25);\n        *(undefined1 *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = 0;\n      }\n      if (pmVar29 == (md5_ctx *)0x0) {\n        *(char *)&pmVar28->A = '\0';\n      }\n      else {\n        pmVar29 = (md5_ctx *)((int)pmVar27 + (int)pmVar29);\n        pmVar31 = (md5_ctx *)0x0;\n        pmVar25 = pmVar27;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar31->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar31 = (md5_ctx *)((int)&pmVar31->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar28->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar29 != pmVar25);\n        *(undefined1 *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = 0;\n      }\n      cVar3 = *(char *)((int)&line_1[1].keybeg + 2);\n    }\n    pmVar25 = pmVar26;\n    pmVar32 = pmVar28;\n    if (cVar3 == '\0') {\n      if (*(char *)&line_1[1].keylim != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pmVar26,&ea);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pmVar28,&eb);\n        if (pmVar26 == (md5_ctx *)ea) {\n          local_2158 = -(uint)(pmVar28 != (md5_ctx *)eb);\n          local_2150 = pmVar23;\n          goto LAB_000175d8;\n        }\n        local_2150 = pmVar23;\n        if (pmVar28 != (md5_ctx *)eb) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)&line_1[1].keylim + 1) == '\0') {\n        if (*(char *)((int)&line_1[1].keylim + 2) != '\0') {\n          pcVar33 = pcVar15;\n          iVar11 = (*pcVar15)(pmVar26,0);\n          iVar8 = (*pcVar33)(pmVar28,0);\n          local_2158 = iVar11 - iVar8;\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)&line_1[1].keybeg + 3) != '\0') {\n          pmStack_2138 = s + 1;\n          puVar10 = (uint32_t *)(puVar5 + -0x1a38);\n          pmVar25 = pmStack_2138;\n          do {\n            pmVar27 = pmVar25;\n            puVar9 = puVar10;\n            puVar10 = puVar9 + 4;\n            uVar21 = puVar9[1];\n            uVar18 = puVar9[2];\n            uVar17 = puVar9[3];\n            pmVar27->A = *puVar9;\n            pmVar27->B = uVar21;\n            pmVar27->C = uVar18;\n            pmVar27->D = uVar17;\n            pmVar25 = (md5_ctx *)pmVar27->total;\n          } while (puVar10 != (uint32_t *)(puVar5 + -0x19a8));\n          pmStack_2130 = s;\n          uVar18 = puVar9[5];\n          uVar17 = puVar9[6];\n          pmVar27->total[0] = *puVar10;\n          pmVar27->total[1] = uVar18;\n          pmVar27->buflen = uVar17;\n          pmVar25 = pmStack_2138;\n          pmVar27 = pmStack_2130;\n          do {\n            pmVar29 = pmVar27;\n            pmVar30 = pmVar25;\n            pmVar25 = (md5_ctx *)pmVar30->total;\n            uVar21 = pmVar30->B;\n            uVar18 = pmVar30->C;\n            uVar17 = pmVar30->D;\n            pmVar29->A = pmVar30->A;\n            pmVar29->B = uVar21;\n            pmVar29->C = uVar18;\n            pmVar29->D = uVar17;\n            pmVar27 = (md5_ctx *)pmVar29->total;\n          } while (pmVar25 != (md5_ctx *)(s[1].buffer + 0x1d));\n          uVar18 = pmVar30->total[1];\n          uVar17 = pmVar30->buflen;\n          cVar3 = puVar5[-0x14df];\n          pmVar29->total[0] = *(uint32_t *)pmVar25;\n          pmVar29->total[1] = uVar18;\n          pmVar29->buflen = uVar17;\n          if (cVar3 == '\0') {\n            pmVar25 = (md5_ctx *)(dig + 1);\n            md5_process_bytes(pmVar26,(size_t)pmVar22,pmStack_2130);\n            pmVar27 = (md5_ctx *)dig;\n            md5_finish_ctx(pmStack_2130,pmVar27);\n            md5_process_bytes(pmVar28,(size_t)pmVar31,pmStack_2138);\n            md5_finish_ctx(pmStack_2138,pmVar25);\n            uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmVar25,0x10);\n            local_214c = (md5_ctx *)0x0;\n            pmVar29 = pmVar22;\n            pmVar30 = pmStack_2138;\n            pmVar32 = pmVar26;\n            local_2150 = pmVar31;\n            pmStack_213c = pmVar28;\n            if (uVar12 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          pmStack_2120 = (md5_ctx *)((int)pmVar22->total + (int)(pmVar26->total + -8));\n          local_214c = (md5_ctx *)0x0;\n          pmVar30 = (md5_ctx *)stackbuf_1;\n          local_2158 = 0;\n          pmStack_211c = (md5_ctx *)((int)pmVar31->total + (int)(pmVar28->total + -8));\n          pmStack_2134 = (md5_ctx *)(((int)pmVar31->total + (int)(pmVar22->total + -8)) * 3 + 2);\n          pmVar27 = (md5_ctx *)0xfa0;\n          local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n          pmStack_2118 = (md5_ctx *)0x55555555;\n          pmVar32 = (md5_ctx *)(uint)(pmVar26 < pmStack_2120);\n          pmStack_213c = pmVar26;\n          plStack_2114 = line_1;\n          pmStack_2110 = pmVar26;\n          pmStack_210c = pmVar28;\n          pmStack_2108 = pmVar22;\n          pmStack_2104 = pmVar31;\n          pmStack_2100 = pmVar24;\n          pmStack_20fc = pmVar23;\n          pmStack_20ec = pmVar30;\n          goto LAB_00017c30;\n        }\n        if (*(char *)&line_1[2].text != '\0') {\n          local_2158 = filevercmp((char *)pmVar26,(char *)pmVar28);\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }\n        if (pmVar22 == (md5_ctx *)0x0) {\n          local_2158 = -(uint)(pmVar31 != (md5_ctx *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pmVar31 == (md5_ctx *)0x0) goto LAB_000179f8;\n        pcVar16 = (char *)((int)&pmVar31->A + 1);\n        pmVar32 = (md5_ctx *)((int)&pmVar22->A + 1);\n        pmVar20 = pmVar28;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }\n      cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }\n      pmVar30 = (md5_ctx *)(PTR_0003e1b4 + 0x6090);\n      iVar11 = find_unit_order((char *)pmVar25);\n      iVar8 = find_unit_order((char *)pmVar32);\n      local_2158 = iVar11 - iVar8;\n      pmVar27 = pmVar25;\n      pmVar29 = pmVar32;\n      local_2150 = pmVar24;\n      local_214c = pmVar23;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }\n      cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }\n    }\n    pcVar16 = *(char **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pmVar20 = *(md5_ctx **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pmVar25,pmVar32,pmVar20,pcVar16);\n    local_2150 = pmVar24;\n    local_214c = pmVar23;\n    if (pmVar23 != (md5_ctx *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pmVar24 != (md5_ctx *)0x0) goto LAB_000175e4;\n    *(char *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = cVar1;\n    *(char *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = cVar2;\n    pmVar28 = pmVar22;\n    pmVar32 = pmVar31;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        line_1 = (line *)line_1[2].length;\n        if (line_1 != (line *)0x0) {\n          pmVar30 = (md5_ctx *)a->text;\n          key_00 = (keyfield *)a->length;\n          pmVar29 = (md5_ctx *)b->text;\n          key = (keyfield *)b->length;\n          if (line_1->keybeg == (char *)0xffffffff) {\n            pcVar16 = line_1->text;\n            pmVar25 = (md5_ctx *)\n                      ((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4));\n            pmVar26 = (md5_ctx *)\n                      ((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4));\n          }\n          else {\n            plVar19 = line_1;\n            pmVar25 = (md5_ctx *)limfield((line *)pmVar30,key_00,line_1);\n            pmVar26 = (md5_ctx *)limfield((line *)pmVar29,key,plVar19);\n            pcVar16 = line_1->text;\n          }\n          if (pcVar16 != (char *)0xffffffff) {\n            plVar19 = line_1;\n            pmVar30 = (md5_ctx *)begfield((line *)pmVar30,key_00,line_1);\n            pmVar27 = (md5_ctx *)begfield((line *)pmVar29,key,plVar19);\n            goto LAB_0001743c;\n          }\n          bVar4 = pmVar30 < pmVar25;\n          pmVar27 = pmVar29;\n          if (*(char *)&line_1[1].keybeg == '\0') goto LAB_00017440;\n          pmVar22 = pmVar30;\n          if (pmVar25 <= pmVar30) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)&line_1[1].keylim + 3) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (iVar7 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar11 = (*pcVar14)();\n      pmVar22 = (md5_ctx *)(iVar11 + 1);\n      pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar22->total + -8));\n      if (line_1 == (line *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pmVar27 = pmVar25;\n      if (pmVar27 < pmStack_2118) {\n        pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pmVar26 = (md5_ctx *)xmalloc((size_t)pmVar27);\n      if (pmVar32 != (md5_ctx *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pmVar26,pmStack_213c,pmVar29);\n      }\n      pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n      local_214c = pmVar26;\n      if (local_2150 != (md5_ctx *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pmVar25,pmVar28,pmVar22);\n        if (pmVar32 == (md5_ctx *)0x0) goto LAB_0001809c;\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n        goto LAB_00017c8c;\n      }\n      if (pmVar32 != (md5_ctx *)0x0) {\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\nFUN_00017f2c:\n        if (pmStack_213c < pmStack_2120) {\n          pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n          pmVar30 = pmVar26;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130);\n            md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138);\n            if (local_2158 == 0) {\n              pmVar26 = pmVar22;\n              if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);\n              if (pmVar27 < pmStack_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);\n              pmVar29 = (md5_ctx *)(iVar11 + 1);\n              if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }\n              pmVar22 = (md5_ctx *)0x0;\n              pmVar25 = pmVar29;\n              if (pmVar27 < pmVar29) goto LAB_00017de0;\nLAB_00018174:\n              pmVar26 = pmVar30;\n              if (pmVar27 < pmVar25) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }\n            pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n            if (pmVar32 == (md5_ctx *)0x0) {\n              if (local_2150 == (md5_ctx *)0x0) break;\nLAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n            }\n            else {\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n            pmVar30 = pmVar26;\n            if (pmStack_211c <= pmVar28) break;\n          } while( true );\n        }\n      }\n      pmStack_213c = pmVar25;\n      local_2150 = pmVar22;\n      pmStack_211c = pmStack_20fc;\n      pmStack_2120 = pmStack_2100;\n      md5_process_bytes(pmVar26,(size_t)pmVar29,pmStack_2130);\n      pmVar27 = (md5_ctx *)dig;\n      md5_finish_ctx(pmStack_2130,pmVar27);\n      md5_process_bytes(pmStack_213c,(size_t)local_2150,pmStack_2138);\n      pmStack_2134 = (md5_ctx *)(dig + 1);\n      md5_finish_ctx(pmStack_2138,pmStack_2134);\n      uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmStack_2134,0x10);\n      pmVar23 = pmStack_20fc;\n      pmVar24 = pmStack_2100;\n      pmVar22 = pmStack_2108;\n      pmVar25 = pmVar29;\n      pmVar30 = pmVar26;\n      pmVar31 = pmStack_2104;\n      pmVar32 = pmStack_2110;\n      pmVar28 = pmStack_210c;\n      line_1 = plStack_2114;\n      if ((uVar12 == 0) && (uVar12 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pmVar27 = (md5_ctx *)(uint)(local_2150 < pmVar29);\n        pmVar25 = local_2150;\n        if (pmVar27 == (md5_ctx *)0x0) {\n          pmVar25 = pmVar29;\n        }\n        uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar26,pmStack_213c,pmVar25);\n        pmVar25 = pmVar29;\n        pmVar30 = pmVar26;\n        pmStack_2138 = pmVar24;\n        pmStack_2134 = pmVar23;\n        if (uVar12 == 0) {\n          uVar12 = (int)pmVar27 - (uint)(pmVar29 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar12;\n      pmVar26 = pmVar32;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pmVar29 = pmVar25;\n      local_2150 = pmVar24;\n      pmStack_213c = pmVar23;\nLAB_000175d8:\n      if (pmVar23 == (md5_ctx *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pmVar28 = pmVar22;\n      pmVar32 = pmVar31;\n    } while( true );\n  }\n  pmVar32 = pmVar29;\n  if (pmVar23 == (md5_ctx *)0x0) {\n    pmVar28 = (md5_ctx *)(uint)(pmVar29 != (md5_ctx *)0x0);\n    if (pmVar22 == (md5_ctx *)0x0) {\n      local_2158 = -(int)pmVar28;\n      goto joined_r0x0001782c;\n    }\n    if (pmVar29 != (md5_ctx *)0x0) {\n      if (pmVar24 == (md5_ctx *)0x0) {\n        pmVar26 = pmVar29;\n        if (pmVar22 <= pmVar29) {\n          pmVar26 = pmVar22;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar27,pmVar26);\n        local_2150 = pmVar22;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pmVar30 < pmVar25) && (pmVar27 < pmVar26)) {\n        pmVar28 = (md5_ctx *)(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar30->A - 0x10));\n        local_2158 = (int)pmVar28 -\n                     (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));\n        if (local_2158 != 0) goto LAB_00017838;\n        pmVar23 = (md5_ctx *)((int)pmVar30 + (int)pmVar29);\n        pmVar26 = pmVar27;\n        pmVar25 = pmVar30;\n        while( true ) {\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n          pmVar26 = (md5_ctx *)((int)&pmVar26->A + 1);\n          pmVar30 = pmVar23;\n          if ((pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22)) || (pmVar25 == pmVar23)) break;\n          local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10)) -\n                       (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10));\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pmVar22 < pmVar29) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pmVar22 != pmVar29);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }\n  pmVar22 = pmVar30;\n  if (pmVar24 != (md5_ctx *)0x0) goto LAB_000174c0;\nLAB_000181d0:\n  if ((pmVar25 <= pmVar22) ||\n     (*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0')) {\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    pmVar31 = pmVar27;\n    if (pmVar26 <= pmVar27) {\n      local_2158 = (uint)(pmVar27 < pmVar26);\n      goto LAB_00018290;\n    }\n    while (pmVar27 = (md5_ctx *)((int)&pmVar31->A + 1),\n          *(char *)((int)pmVar23->total + (*(byte *)&pmVar31->A - 0x10)) != '\0') {\n      pmVar31 = pmVar27;\n      if (pmVar26 == pmVar27) goto LAB_00018284;\n    }\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    if (pmVar28 == (md5_ctx *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*(byte *)&pmVar22->A - (uint)*(byte *)&pmVar31->A;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n  goto LAB_000181d0;\nLAB_000174c0:\n  if ((pmVar25 <= pmVar22) ||\n     (*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0')) {\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    if (pmVar26 <= pmVar27) {\n      local_2158 = (uint)(pmVar27 < pmVar26);\n      goto LAB_00018290;\n    }\n    while (pmVar28 = (md5_ctx *)((int)&pmVar27->A + 1),\n          *(char *)((int)pmVar23->total + (*(byte *)&pmVar27->A - 0x10)) != '\0') {\n      pmVar27 = pmVar28;\n      if (pmVar26 == pmVar28) goto LAB_00018284;\n    }\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    pmVar31 = pmVar27;\n    if (pmVar28 == (md5_ctx *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar22->A - 0x10)) -\n                 (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));\n    pmVar27 = (md5_ctx *)((int)&pmVar27->A + 1);\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n  goto LAB_000174c0;\nLAB_00018284:\n  pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n  pmVar31 = pmVar26;\nLAB_0001828c:\n  local_2158 = (uint)(pmVar31 < pmVar26);\n  pmVar27 = pmVar31;\nLAB_00018290:\n  local_2158 = (int)pmVar28 - local_2158;\n  goto joined_r0x0001782c;\n  while (pmVar30 = pmVar25, pmVar22 = pmVar23, pmVar25 != pmVar23) {\nLAB_000178dc:\n    pmVar23 = (md5_ctx *)((int)&pmVar22->A + 1);\n    pmVar30 = pmVar22;\n    if (puVar5[*(byte *)&pmVar22->A - 0x15f0] == '\0') break;\n  }\nLAB_000178f8:\n  bVar4 = pmVar30 < pmVar25;\n  if (pmVar29 < pmVar26) {\n    do {\n      bVar4 = pmVar30 < pmVar25;\n      pmVar27 = pmVar29;\n      if (puVar5[*(byte *)&pmVar29->A - 0x15f0] == '\0') break;\n      pmVar29 = (md5_ctx *)((int)&pmVar29->A + 1);\n      pmVar27 = pmVar26;\n    } while (pmVar26 != pmVar29);\n  }\n  goto LAB_00017440;\n}\n\n" comment (function_definition "int keycompare(line *a,line *b)\n\n{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  byte bVar13;\n  int iVar8;\n  uint32_t *puVar9;\n  uint32_t *puVar10;\n  int iVar11;\n  uint uVar12;\n  code *pcVar14;\n  code *pcVar15;\n  char *pcVar16;\n  uint32_t uVar17;\n  uint32_t uVar18;\n  line *plVar19;\n  md5_ctx *pmVar20;\n  uint32_t uVar21;\n  md5_ctx *pmVar22;\n  md5_ctx *pmVar23;\n  md5_ctx *pmVar24;\n  md5_ctx *pmVar25;\n  keyfield *key;\n  md5_ctx *pmVar26;\n  keyfield *key_00;\n  md5_ctx *pmVar27;\n  md5_ctx *pmVar28;\n  md5_ctx *pmVar29;\n  md5_ctx *pmVar30;\n  md5_ctx *pmVar31;\n  md5_ctx *pmVar32;\n  line *line_1;\n  code *pcVar33;\n  double dVar34;\n  double dVar35;\n  uint local_2158;\n  md5_ctx *local_2154;\n  md5_ctx *local_2150;\n  md5_ctx *local_214c;\n  md5_ctx *pmStack_213c;\n  md5_ctx *pmStack_2138;\n  md5_ctx *pmStack_2134;\n  md5_ctx *pmStack_2130;\n  md5_ctx *pmStack_2120;\n  md5_ctx *pmStack_211c;\n  md5_ctx *pmStack_2118;\n  line *plStack_2114;\n  md5_ctx *pmStack_2110;\n  md5_ctx *pmStack_210c;\n  md5_ctx *pmStack_2108;\n  md5_ctx *pmStack_2104;\n  md5_ctx *pmStack_2100;\n  md5_ctx *pmStack_20fc;\n  md5_ctx *pmStack_20ec;\n  char *ea;\n  char *eb;\n  longdouble a_1;\n  longdouble b_1;\n  uint32_t dig [2] [4];\n  md5_ctx s [2];\n  char stackbuf [4000];\n  char stackbuf_1 [4000];\n  \n  puVar6 = PTR___stack_chk_guard_0003e550;\n  puVar5 = PTR_DAT_0003e1a8;\n  pmVar25 = (md5_ctx *)a->keylim;\n  pcVar14 = (code *)(PTR_0003e1b4 + 0x6938);\n  pmVar26 = (md5_ctx *)b->keylim;\n  line_1 = *(line **)(PTR_DAT_0003e1a8 + -0x1908);\n  iVar7 = *(int *)PTR___stack_chk_guard_0003e550;\n  pmVar30 = (md5_ctx *)a->keybeg;\n  pcVar15 = (code *)(PTR_0003e1b4 + 0x613c);\n  pmVar27 = (md5_ctx *)b->keybeg;\n  cVar1 = '\0';\n  cVar2 = '\0';\nLAB_0001743c:\n  bVar4 = pmVar30 < pmVar25;\nLAB_00017440:\n  if (!bVar4) {\n    pmVar25 = pmVar30;\n  }\n  if (pmVar26 <= pmVar27) {\n    pmVar26 = pmVar27;\n  }\n  pmVar22 = (md5_ctx *)((int)pmVar25 - (int)pmVar30);\n  pmVar24 = (md5_ctx *)line_1[1].length;\n  pmVar29 = (md5_ctx *)((int)pmVar26 - (int)pmVar27);\n  pmVar23 = (md5_ctx *)line_1[1].text;\n  if (((((puVar5[-0x14df] != '\0') || (*(char *)((int)&line_1[1].keybeg + 2) != '\0')) ||\n       (((uint)line_1[1].keylim & 0xffff0000) != 0)) ||\n      ((*(char *)((int)&line_1[1].keylim + 2) != '\0' ||\n       (*(char *)((int)&line_1[1].keybeg + 3) != '\0')))) || (*(char *)&line_1[2].text != '\0')) {\n    pmVar31 = pmVar29;\n    if ((pmVar23 == (md5_ctx *)0x0) && (pmVar24 == (md5_ctx *)0x0)) {\n      cVar1 = *(char *)&pmVar25->A;\n      *(char *)&pmVar25->A = '\0';\n      cVar2 = *(char *)&pmVar26->A;\n      *(char *)&pmVar26->A = '\0';\n      cVar3 = *(char *)((int)&line_1[1].keybeg + 2);\n      pmVar28 = pmVar27;\n      pmVar26 = pmVar30;\n    }\n    else {\n      pmVar26 = (md5_ctx *)stackbuf;\n      if ((char *)((int)pmVar22 + (int)pmVar29) + 2 < (char *)0xfa1) {\n        local_2154 = (md5_ctx *)0x0;\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n      }\n      else {\n        pmVar26 = (md5_ctx *)xmalloc((size_t)((char *)((int)pmVar22 + (int)pmVar29) + 2));\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n        local_214c = pmVar22;\n        local_2150 = pmVar23;\n        local_2154 = pmVar26;\n      }\n      if (pmVar22 == (md5_ctx *)0x0) {\n        *(char *)&pmVar26->A = '\0';\n      }\n      else {\n        pmVar32 = (md5_ctx *)((int)pmVar30 + (int)pmVar22);\n        pmVar22 = (md5_ctx *)0x0;\n        pmVar25 = pmVar30;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar22->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar26->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar32 != pmVar25);\n        *(undefined1 *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = 0;\n      }\n      if (pmVar29 == (md5_ctx *)0x0) {\n        *(char *)&pmVar28->A = '\0';\n      }\n      else {\n        pmVar29 = (md5_ctx *)((int)pmVar27 + (int)pmVar29);\n        pmVar31 = (md5_ctx *)0x0;\n        pmVar25 = pmVar27;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar31->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar31 = (md5_ctx *)((int)&pmVar31->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar28->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar29 != pmVar25);\n        *(undefined1 *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = 0;\n      }\n      cVar3 = *(char *)((int)&line_1[1].keybeg + 2);\n    }\n    pmVar25 = pmVar26;\n    pmVar32 = pmVar28;\n    if (cVar3 == '\0') {\n      if (*(char *)&line_1[1].keylim != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pmVar26,&ea);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pmVar28,&eb);\n        if (pmVar26 == (md5_ctx *)ea) {\n          local_2158 = -(uint)(pmVar28 != (md5_ctx *)eb);\n          local_2150 = pmVar23;\n          goto LAB_000175d8;\n        }\n        local_2150 = pmVar23;\n        if (pmVar28 != (md5_ctx *)eb) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)&line_1[1].keylim + 1) == '\0') {\n        if (*(char *)((int)&line_1[1].keylim + 2) != '\0') {\n          pcVar33 = pcVar15;\n          iVar11 = (*pcVar15)(pmVar26,0);\n          iVar8 = (*pcVar33)(pmVar28,0);\n          local_2158 = iVar11 - iVar8;\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)&line_1[1].keybeg + 3) != '\0') {\n          pmStack_2138 = s + 1;\n          puVar10 = (uint32_t *)(puVar5 + -0x1a38);\n          pmVar25 = pmStack_2138;\n          do {\n            pmVar27 = pmVar25;\n            puVar9 = puVar10;\n            puVar10 = puVar9 + 4;\n            uVar21 = puVar9[1];\n            uVar18 = puVar9[2];\n            uVar17 = puVar9[3];\n            pmVar27->A = *puVar9;\n            pmVar27->B = uVar21;\n            pmVar27->C = uVar18;\n            pmVar27->D = uVar17;\n            pmVar25 = (md5_ctx *)pmVar27->total;\n          } while (puVar10 != (uint32_t *)(puVar5 + -0x19a8));\n          pmStack_2130 = s;\n          uVar18 = puVar9[5];\n          uVar17 = puVar9[6];\n          pmVar27->total[0] = *puVar10;\n          pmVar27->total[1] = uVar18;\n          pmVar27->buflen = uVar17;\n          pmVar25 = pmStack_2138;\n          pmVar27 = pmStack_2130;\n          do {\n            pmVar29 = pmVar27;\n            pmVar30 = pmVar25;\n            pmVar25 = (md5_ctx *)pmVar30->total;\n            uVar21 = pmVar30->B;\n            uVar18 = pmVar30->C;\n            uVar17 = pmVar30->D;\n            pmVar29->A = pmVar30->A;\n            pmVar29->B = uVar21;\n            pmVar29->C = uVar18;\n            pmVar29->D = uVar17;\n            pmVar27 = (md5_ctx *)pmVar29->total;\n          } while (pmVar25 != (md5_ctx *)(s[1].buffer + 0x1d));\n          uVar18 = pmVar30->total[1];\n          uVar17 = pmVar30->buflen;\n          cVar3 = puVar5[-0x14df];\n          pmVar29->total[0] = *(uint32_t *)pmVar25;\n          pmVar29->total[1] = uVar18;\n          pmVar29->buflen = uVar17;\n          if (cVar3 == '\0') {\n            pmVar25 = (md5_ctx *)(dig + 1);\n            md5_process_bytes(pmVar26,(size_t)pmVar22,pmStack_2130);\n            pmVar27 = (md5_ctx *)dig;\n            md5_finish_ctx(pmStack_2130,pmVar27);\n            md5_process_bytes(pmVar28,(size_t)pmVar31,pmStack_2138);\n            md5_finish_ctx(pmStack_2138,pmVar25);\n            uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmVar25,0x10);\n            local_214c = (md5_ctx *)0x0;\n            pmVar29 = pmVar22;\n            pmVar30 = pmStack_2138;\n            pmVar32 = pmVar26;\n            local_2150 = pmVar31;\n            pmStack_213c = pmVar28;\n            if (uVar12 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          pmStack_2120 = (md5_ctx *)((int)pmVar22->total + (int)(pmVar26->total + -8));\n          local_214c = (md5_ctx *)0x0;\n          pmVar30 = (md5_ctx *)stackbuf_1;\n          local_2158 = 0;\n          pmStack_211c = (md5_ctx *)((int)pmVar31->total + (int)(pmVar28->total + -8));\n          pmStack_2134 = (md5_ctx *)(((int)pmVar31->total + (int)(pmVar22->total + -8)) * 3 + 2);\n          pmVar27 = (md5_ctx *)0xfa0;\n          local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n          pmStack_2118 = (md5_ctx *)0x55555555;\n          pmVar32 = (md5_ctx *)(uint)(pmVar26 < pmStack_2120);\n          pmStack_213c = pmVar26;\n          plStack_2114 = line_1;\n          pmStack_2110 = pmVar26;\n          pmStack_210c = pmVar28;\n          pmStack_2108 = pmVar22;\n          pmStack_2104 = pmVar31;\n          pmStack_2100 = pmVar24;\n          pmStack_20fc = pmVar23;\n          pmStack_20ec = pmVar30;\n          goto LAB_00017c30;\n        }\n        if (*(char *)&line_1[2].text != '\0') {\n          local_2158 = filevercmp((char *)pmVar26,(char *)pmVar28);\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }\n        if (pmVar22 == (md5_ctx *)0x0) {\n          local_2158 = -(uint)(pmVar31 != (md5_ctx *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pmVar31 == (md5_ctx *)0x0) goto LAB_000179f8;\n        pcVar16 = (char *)((int)&pmVar31->A + 1);\n        pmVar32 = (md5_ctx *)((int)&pmVar22->A + 1);\n        pmVar20 = pmVar28;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }\n      cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }\n      pmVar30 = (md5_ctx *)(PTR_0003e1b4 + 0x6090);\n      iVar11 = find_unit_order((char *)pmVar25);\n      iVar8 = find_unit_order((char *)pmVar32);\n      local_2158 = iVar11 - iVar8;\n      pmVar27 = pmVar25;\n      pmVar29 = pmVar32;\n      local_2150 = pmVar24;\n      local_214c = pmVar23;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }\n      cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }\n    }\n    pcVar16 = *(char **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pmVar20 = *(md5_ctx **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pmVar25,pmVar32,pmVar20,pcVar16);\n    local_2150 = pmVar24;\n    local_214c = pmVar23;\n    if (pmVar23 != (md5_ctx *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pmVar24 != (md5_ctx *)0x0) goto LAB_000175e4;\n    *(char *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = cVar1;\n    *(char *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = cVar2;\n    pmVar28 = pmVar22;\n    pmVar32 = pmVar31;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        line_1 = (line *)line_1[2].length;\n        if (line_1 != (line *)0x0) {\n          pmVar30 = (md5_ctx *)a->text;\n          key_00 = (keyfield *)a->length;\n          pmVar29 = (md5_ctx *)b->text;\n          key = (keyfield *)b->length;\n          if (line_1->keybeg == (char *)0xffffffff) {\n            pcVar16 = line_1->text;\n            pmVar25 = (md5_ctx *)\n                      ((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4));\n            pmVar26 = (md5_ctx *)\n                      ((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4));\n          }\n          else {\n            plVar19 = line_1;\n            pmVar25 = (md5_ctx *)limfield((line *)pmVar30,key_00,line_1);\n            pmVar26 = (md5_ctx *)limfield((line *)pmVar29,key,plVar19);\n            pcVar16 = line_1->text;\n          }\n          if (pcVar16 != (char *)0xffffffff) {\n            plVar19 = line_1;\n            pmVar30 = (md5_ctx *)begfield((line *)pmVar30,key_00,line_1);\n            pmVar27 = (md5_ctx *)begfield((line *)pmVar29,key,plVar19);\n            goto LAB_0001743c;\n          }\n          bVar4 = pmVar30 < pmVar25;\n          pmVar27 = pmVar29;\n          if (*(char *)&line_1[1].keybeg == '\0') goto LAB_00017440;\n          pmVar22 = pmVar30;\n          if (pmVar25 <= pmVar30) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)&line_1[1].keylim + 3) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (iVar7 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar11 = (*pcVar14)();\n      pmVar22 = (md5_ctx *)(iVar11 + 1);\n      pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar22->total + -8));\n      if (line_1 == (line *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pmVar27 = pmVar25;\n      if (pmVar27 < pmStack_2118) {\n        pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pmVar26 = (md5_ctx *)xmalloc((size_t)pmVar27);\n      if (pmVar32 != (md5_ctx *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pmVar26,pmStack_213c,pmVar29);\n      }\n      pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n      local_214c = pmVar26;\n      if (local_2150 != (md5_ctx *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pmVar25,pmVar28,pmVar22);\n        if (pmVar32 == (md5_ctx *)0x0) goto LAB_0001809c;\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n        goto LAB_00017c8c;\n      }\n      if (pmVar32 != (md5_ctx *)0x0) {\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\nFUN_00017f2c:\n        if (pmStack_213c < pmStack_2120) {\n          pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n          pmVar30 = pmVar26;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130);\n            md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138);\n            if (local_2158 == 0) {\n              pmVar26 = pmVar22;\n              if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);\n              if (pmVar27 < pmStack_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);\n              pmVar29 = (md5_ctx *)(iVar11 + 1);\n              if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }\n              pmVar22 = (md5_ctx *)0x0;\n              pmVar25 = pmVar29;\n              if (pmVar27 < pmVar29) goto LAB_00017de0;\nLAB_00018174:\n              pmVar26 = pmVar30;\n              if (pmVar27 < pmVar25) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }\n            pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n            if (pmVar32 == (md5_ctx *)0x0) {\n              if (local_2150 == (md5_ctx *)0x0) break;\nLAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n            }\n            else {\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n            pmVar30 = pmVar26;\n            if (pmStack_211c <= pmVar28) break;\n          } while( true );\n        }\n      }\n      pmStack_213c = pmVar25;\n      local_2150 = pmVar22;\n      pmStack_211c = pmStack_20fc;\n      pmStack_2120 = pmStack_2100;\n      md5_process_bytes(pmVar26,(size_t)pmVar29,pmStack_2130);\n      pmVar27 = (md5_ctx *)dig;\n      md5_finish_ctx(pmStack_2130,pmVar27);\n      md5_process_bytes(pmStack_213c,(size_t)local_2150,pmStack_2138);\n      pmStack_2134 = (md5_ctx *)(dig + 1);\n      md5_finish_ctx(pmStack_2138,pmStack_2134);\n      uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmStack_2134,0x10);\n      pmVar23 = pmStack_20fc;\n      pmVar24 = pmStack_2100;\n      pmVar22 = pmStack_2108;\n      pmVar25 = pmVar29;\n      pmVar30 = pmVar26;\n      pmVar31 = pmStack_2104;\n      pmVar32 = pmStack_2110;\n      pmVar28 = pmStack_210c;\n      line_1 = plStack_2114;\n      if ((uVar12 == 0) && (uVar12 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pmVar27 = (md5_ctx *)(uint)(local_2150 < pmVar29);\n        pmVar25 = local_2150;\n        if (pmVar27 == (md5_ctx *)0x0) {\n          pmVar25 = pmVar29;\n        }\n        uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar26,pmStack_213c,pmVar25);\n        pmVar25 = pmVar29;\n        pmVar30 = pmVar26;\n        pmStack_2138 = pmVar24;\n        pmStack_2134 = pmVar23;\n        if (uVar12 == 0) {\n          uVar12 = (int)pmVar27 - (uint)(pmVar29 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar12;\n      pmVar26 = pmVar32;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pmVar29 = pmVar25;\n      local_2150 = pmVar24;\n      pmStack_213c = pmVar23;\nLAB_000175d8:\n      if (pmVar23 == (md5_ctx *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pmVar28 = pmVar22;\n      pmVar32 = pmVar31;\n    } while( true );\n  }\n  pmVar32 = pmVar29;\n  if (pmVar23 == (md5_ctx *)0x0) {\n    pmVar28 = (md5_ctx *)(uint)(pmVar29 != (md5_ctx *)0x0);\n    if (pmVar22 == (md5_ctx *)0x0) {\n      local_2158 = -(int)pmVar28;\n      goto joined_r0x0001782c;\n    }\n    if (pmVar29 != (md5_ctx *)0x0) {\n      if (pmVar24 == (md5_ctx *)0x0) {\n        pmVar26 = pmVar29;\n        if (pmVar22 <= pmVar29) {\n          pmVar26 = pmVar22;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar27,pmVar26);\n        local_2150 = pmVar22;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pmVar30 < pmVar25) && (pmVar27 < pmVar26)) {\n        pmVar28 = (md5_ctx *)(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar30->A - 0x10));\n        local_2158 = (int)pmVar28 -\n                     (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));\n        if (local_2158 != 0) goto LAB_00017838;\n        pmVar23 = (md5_ctx *)((int)pmVar30 + (int)pmVar29);\n        pmVar26 = pmVar27;\n        pmVar25 = pmVar30;\n        while( true ) {\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n          pmVar26 = (md5_ctx *)((int)&pmVar26->A + 1);\n          pmVar30 = pmVar23;\n          if ((pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22)) || (pmVar25 == pmVar23)) break;\n          local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10)) -\n                       (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10));\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pmVar22 < pmVar29) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pmVar22 != pmVar29);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }\n  pmVar22 = pmVar30;\n  if (pmVar24 != (md5_ctx *)0x0) goto LAB_000174c0;\nLAB_000181d0:\n  if ((pmVar25 <= pmVar22) ||\n     (*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0')) {\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    pmVar31 = pmVar27;\n    if (pmVar26 <= pmVar27) {\n      local_2158 = (uint)(pmVar27 < pmVar26);\n      goto LAB_00018290;\n    }\n    while (pmVar27 = (md5_ctx *)((int)&pmVar31->A + 1),\n          *(char *)((int)pmVar23->total + (*(byte *)&pmVar31->A - 0x10)) != '\0') {\n      pmVar31 = pmVar27;\n      if (pmVar26 == pmVar27) goto LAB_00018284;\n    }\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    if (pmVar28 == (md5_ctx *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*(byte *)&pmVar22->A - (uint)*(byte *)&pmVar31->A;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n  goto LAB_000181d0;\nLAB_000174c0:\n  if ((pmVar25 <= pmVar22) ||\n     (*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0')) {\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    if (pmVar26 <= pmVar27) {\n      local_2158 = (uint)(pmVar27 < pmVar26);\n      goto LAB_00018290;\n    }\n    while (pmVar28 = (md5_ctx *)((int)&pmVar27->A + 1),\n          *(char *)((int)pmVar23->total + (*(byte *)&pmVar27->A - 0x10)) != '\0') {\n      pmVar27 = pmVar28;\n      if (pmVar26 == pmVar28) goto LAB_00018284;\n    }\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    pmVar31 = pmVar27;\n    if (pmVar28 == (md5_ctx *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar22->A - 0x10)) -\n                 (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));\n    pmVar27 = (md5_ctx *)((int)&pmVar27->A + 1);\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n  goto LAB_000174c0;\nLAB_00018284:\n  pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n  pmVar31 = pmVar26;\nLAB_0001828c:\n  local_2158 = (uint)(pmVar31 < pmVar26);\n  pmVar27 = pmVar31;\nLAB_00018290:\n  local_2158 = (int)pmVar28 - local_2158;\n  goto joined_r0x0001782c;\n  while (pmVar30 = pmVar25, pmVar22 = pmVar23, pmVar25 != pmVar23) {\nLAB_000178dc:\n    pmVar23 = (md5_ctx *)((int)&pmVar22->A + 1);\n    pmVar30 = pmVar22;\n    if (puVar5[*(byte *)&pmVar22->A - 0x15f0] == '\0') break;\n  }\nLAB_000178f8:\n  bVar4 = pmVar30 < pmVar25;\n  if (pmVar29 < pmVar26) {\n    do {\n      bVar4 = pmVar30 < pmVar25;\n      pmVar27 = pmVar29;\n      if (puVar5[*(byte *)&pmVar29->A - 0x15f0] == '\0') break;\n      pmVar29 = (md5_ctx *)((int)&pmVar29->A + 1);\n      pmVar27 = pmVar26;\n    } while (pmVar26 != pmVar29);\n  }\n  goto LAB_00017440;\n}" primitive_type (function_declarator "keycompare(line *a,line *b)" identifier (parameter_list "(line *a,line *b)" ( (parameter_declaration "line *a" type_identifier (pointer_declarator "*a" * identifier)) , (parameter_declaration "line *b" type_identifier (pointer_declarator "*b" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  char cVar2;\n  char cVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  int iVar7;\n  byte bVar13;\n  int iVar8;\n  uint32_t *puVar9;\n  uint32_t *puVar10;\n  int iVar11;\n  uint uVar12;\n  code *pcVar14;\n  code *pcVar15;\n  char *pcVar16;\n  uint32_t uVar17;\n  uint32_t uVar18;\n  line *plVar19;\n  md5_ctx *pmVar20;\n  uint32_t uVar21;\n  md5_ctx *pmVar22;\n  md5_ctx *pmVar23;\n  md5_ctx *pmVar24;\n  md5_ctx *pmVar25;\n  keyfield *key;\n  md5_ctx *pmVar26;\n  keyfield *key_00;\n  md5_ctx *pmVar27;\n  md5_ctx *pmVar28;\n  md5_ctx *pmVar29;\n  md5_ctx *pmVar30;\n  md5_ctx *pmVar31;\n  md5_ctx *pmVar32;\n  line *line_1;\n  code *pcVar33;\n  double dVar34;\n  double dVar35;\n  uint local_2158;\n  md5_ctx *local_2154;\n  md5_ctx *local_2150;\n  md5_ctx *local_214c;\n  md5_ctx *pmStack_213c;\n  md5_ctx *pmStack_2138;\n  md5_ctx *pmStack_2134;\n  md5_ctx *pmStack_2130;\n  md5_ctx *pmStack_2120;\n  md5_ctx *pmStack_211c;\n  md5_ctx *pmStack_2118;\n  line *plStack_2114;\n  md5_ctx *pmStack_2110;\n  md5_ctx *pmStack_210c;\n  md5_ctx *pmStack_2108;\n  md5_ctx *pmStack_2104;\n  md5_ctx *pmStack_2100;\n  md5_ctx *pmStack_20fc;\n  md5_ctx *pmStack_20ec;\n  char *ea;\n  char *eb;\n  longdouble a_1;\n  longdouble b_1;\n  uint32_t dig [2] [4];\n  md5_ctx s [2];\n  char stackbuf [4000];\n  char stackbuf_1 [4000];\n  \n  puVar6 = PTR___stack_chk_guard_0003e550;\n  puVar5 = PTR_DAT_0003e1a8;\n  pmVar25 = (md5_ctx *)a->keylim;\n  pcVar14 = (code *)(PTR_0003e1b4 + 0x6938);\n  pmVar26 = (md5_ctx *)b->keylim;\n  line_1 = *(line **)(PTR_DAT_0003e1a8 + -0x1908);\n  iVar7 = *(int *)PTR___stack_chk_guard_0003e550;\n  pmVar30 = (md5_ctx *)a->keybeg;\n  pcVar15 = (code *)(PTR_0003e1b4 + 0x613c);\n  pmVar27 = (md5_ctx *)b->keybeg;\n  cVar1 = '\0';\n  cVar2 = '\0';\nLAB_0001743c:\n  bVar4 = pmVar30 < pmVar25;\nLAB_00017440:\n  if (!bVar4) {\n    pmVar25 = pmVar30;\n  }\n  if (pmVar26 <= pmVar27) {\n    pmVar26 = pmVar27;\n  }\n  pmVar22 = (md5_ctx *)((int)pmVar25 - (int)pmVar30);\n  pmVar24 = (md5_ctx *)line_1[1].length;\n  pmVar29 = (md5_ctx *)((int)pmVar26 - (int)pmVar27);\n  pmVar23 = (md5_ctx *)line_1[1].text;\n  if (((((puVar5[-0x14df] != '\0') || (*(char *)((int)&line_1[1].keybeg + 2) != '\0')) ||\n       (((uint)line_1[1].keylim & 0xffff0000) != 0)) ||\n      ((*(char *)((int)&line_1[1].keylim + 2) != '\0' ||\n       (*(char *)((int)&line_1[1].keybeg + 3) != '\0')))) || (*(char *)&line_1[2].text != '\0')) {\n    pmVar31 = pmVar29;\n    if ((pmVar23 == (md5_ctx *)0x0) && (pmVar24 == (md5_ctx *)0x0)) {\n      cVar1 = *(char *)&pmVar25->A;\n      *(char *)&pmVar25->A = '\0';\n      cVar2 = *(char *)&pmVar26->A;\n      *(char *)&pmVar26->A = '\0';\n      cVar3 = *(char *)((int)&line_1[1].keybeg + 2);\n      pmVar28 = pmVar27;\n      pmVar26 = pmVar30;\n    }\n    else {\n      pmVar26 = (md5_ctx *)stackbuf;\n      if ((char *)((int)pmVar22 + (int)pmVar29) + 2 < (char *)0xfa1) {\n        local_2154 = (md5_ctx *)0x0;\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n      }\n      else {\n        pmVar26 = (md5_ctx *)xmalloc((size_t)((char *)((int)pmVar22 + (int)pmVar29) + 2));\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n        local_214c = pmVar22;\n        local_2150 = pmVar23;\n        local_2154 = pmVar26;\n      }\n      if (pmVar22 == (md5_ctx *)0x0) {\n        *(char *)&pmVar26->A = '\0';\n      }\n      else {\n        pmVar32 = (md5_ctx *)((int)pmVar30 + (int)pmVar22);\n        pmVar22 = (md5_ctx *)0x0;\n        pmVar25 = pmVar30;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar22->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar26->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar32 != pmVar25);\n        *(undefined1 *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = 0;\n      }\n      if (pmVar29 == (md5_ctx *)0x0) {\n        *(char *)&pmVar28->A = '\0';\n      }\n      else {\n        pmVar29 = (md5_ctx *)((int)pmVar27 + (int)pmVar29);\n        pmVar31 = (md5_ctx *)0x0;\n        pmVar25 = pmVar27;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar31->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar31 = (md5_ctx *)((int)&pmVar31->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar28->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar29 != pmVar25);\n        *(undefined1 *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = 0;\n      }\n      cVar3 = *(char *)((int)&line_1[1].keybeg + 2);\n    }\n    pmVar25 = pmVar26;\n    pmVar32 = pmVar28;\n    if (cVar3 == '\0') {\n      if (*(char *)&line_1[1].keylim != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pmVar26,&ea);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pmVar28,&eb);\n        if (pmVar26 == (md5_ctx *)ea) {\n          local_2158 = -(uint)(pmVar28 != (md5_ctx *)eb);\n          local_2150 = pmVar23;\n          goto LAB_000175d8;\n        }\n        local_2150 = pmVar23;\n        if (pmVar28 != (md5_ctx *)eb) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)&line_1[1].keylim + 1) == '\0') {\n        if (*(char *)((int)&line_1[1].keylim + 2) != '\0') {\n          pcVar33 = pcVar15;\n          iVar11 = (*pcVar15)(pmVar26,0);\n          iVar8 = (*pcVar33)(pmVar28,0);\n          local_2158 = iVar11 - iVar8;\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)&line_1[1].keybeg + 3) != '\0') {\n          pmStack_2138 = s + 1;\n          puVar10 = (uint32_t *)(puVar5 + -0x1a38);\n          pmVar25 = pmStack_2138;\n          do {\n            pmVar27 = pmVar25;\n            puVar9 = puVar10;\n            puVar10 = puVar9 + 4;\n            uVar21 = puVar9[1];\n            uVar18 = puVar9[2];\n            uVar17 = puVar9[3];\n            pmVar27->A = *puVar9;\n            pmVar27->B = uVar21;\n            pmVar27->C = uVar18;\n            pmVar27->D = uVar17;\n            pmVar25 = (md5_ctx *)pmVar27->total;\n          } while (puVar10 != (uint32_t *)(puVar5 + -0x19a8));\n          pmStack_2130 = s;\n          uVar18 = puVar9[5];\n          uVar17 = puVar9[6];\n          pmVar27->total[0] = *puVar10;\n          pmVar27->total[1] = uVar18;\n          pmVar27->buflen = uVar17;\n          pmVar25 = pmStack_2138;\n          pmVar27 = pmStack_2130;\n          do {\n            pmVar29 = pmVar27;\n            pmVar30 = pmVar25;\n            pmVar25 = (md5_ctx *)pmVar30->total;\n            uVar21 = pmVar30->B;\n            uVar18 = pmVar30->C;\n            uVar17 = pmVar30->D;\n            pmVar29->A = pmVar30->A;\n            pmVar29->B = uVar21;\n            pmVar29->C = uVar18;\n            pmVar29->D = uVar17;\n            pmVar27 = (md5_ctx *)pmVar29->total;\n          } while (pmVar25 != (md5_ctx *)(s[1].buffer + 0x1d));\n          uVar18 = pmVar30->total[1];\n          uVar17 = pmVar30->buflen;\n          cVar3 = puVar5[-0x14df];\n          pmVar29->total[0] = *(uint32_t *)pmVar25;\n          pmVar29->total[1] = uVar18;\n          pmVar29->buflen = uVar17;\n          if (cVar3 == '\0') {\n            pmVar25 = (md5_ctx *)(dig + 1);\n            md5_process_bytes(pmVar26,(size_t)pmVar22,pmStack_2130);\n            pmVar27 = (md5_ctx *)dig;\n            md5_finish_ctx(pmStack_2130,pmVar27);\n            md5_process_bytes(pmVar28,(size_t)pmVar31,pmStack_2138);\n            md5_finish_ctx(pmStack_2138,pmVar25);\n            uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmVar25,0x10);\n            local_214c = (md5_ctx *)0x0;\n            pmVar29 = pmVar22;\n            pmVar30 = pmStack_2138;\n            pmVar32 = pmVar26;\n            local_2150 = pmVar31;\n            pmStack_213c = pmVar28;\n            if (uVar12 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          pmStack_2120 = (md5_ctx *)((int)pmVar22->total + (int)(pmVar26->total + -8));\n          local_214c = (md5_ctx *)0x0;\n          pmVar30 = (md5_ctx *)stackbuf_1;\n          local_2158 = 0;\n          pmStack_211c = (md5_ctx *)((int)pmVar31->total + (int)(pmVar28->total + -8));\n          pmStack_2134 = (md5_ctx *)(((int)pmVar31->total + (int)(pmVar22->total + -8)) * 3 + 2);\n          pmVar27 = (md5_ctx *)0xfa0;\n          local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n          pmStack_2118 = (md5_ctx *)0x55555555;\n          pmVar32 = (md5_ctx *)(uint)(pmVar26 < pmStack_2120);\n          pmStack_213c = pmVar26;\n          plStack_2114 = line_1;\n          pmStack_2110 = pmVar26;\n          pmStack_210c = pmVar28;\n          pmStack_2108 = pmVar22;\n          pmStack_2104 = pmVar31;\n          pmStack_2100 = pmVar24;\n          pmStack_20fc = pmVar23;\n          pmStack_20ec = pmVar30;\n          goto LAB_00017c30;\n        }\n        if (*(char *)&line_1[2].text != '\0') {\n          local_2158 = filevercmp((char *)pmVar26,(char *)pmVar28);\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }\n        if (pmVar22 == (md5_ctx *)0x0) {\n          local_2158 = -(uint)(pmVar31 != (md5_ctx *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pmVar31 == (md5_ctx *)0x0) goto LAB_000179f8;\n        pcVar16 = (char *)((int)&pmVar31->A + 1);\n        pmVar32 = (md5_ctx *)((int)&pmVar22->A + 1);\n        pmVar20 = pmVar28;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }\n      cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }\n      pmVar30 = (md5_ctx *)(PTR_0003e1b4 + 0x6090);\n      iVar11 = find_unit_order((char *)pmVar25);\n      iVar8 = find_unit_order((char *)pmVar32);\n      local_2158 = iVar11 - iVar8;\n      pmVar27 = pmVar25;\n      pmVar29 = pmVar32;\n      local_2150 = pmVar24;\n      local_214c = pmVar23;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }\n      cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }\n    }\n    pcVar16 = *(char **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pmVar20 = *(md5_ctx **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pmVar25,pmVar32,pmVar20,pcVar16);\n    local_2150 = pmVar24;\n    local_214c = pmVar23;\n    if (pmVar23 != (md5_ctx *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pmVar24 != (md5_ctx *)0x0) goto LAB_000175e4;\n    *(char *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = cVar1;\n    *(char *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = cVar2;\n    pmVar28 = pmVar22;\n    pmVar32 = pmVar31;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        line_1 = (line *)line_1[2].length;\n        if (line_1 != (line *)0x0) {\n          pmVar30 = (md5_ctx *)a->text;\n          key_00 = (keyfield *)a->length;\n          pmVar29 = (md5_ctx *)b->text;\n          key = (keyfield *)b->length;\n          if (line_1->keybeg == (char *)0xffffffff) {\n            pcVar16 = line_1->text;\n            pmVar25 = (md5_ctx *)\n                      ((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4));\n            pmVar26 = (md5_ctx *)\n                      ((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4));\n          }\n          else {\n            plVar19 = line_1;\n            pmVar25 = (md5_ctx *)limfield((line *)pmVar30,key_00,line_1);\n            pmVar26 = (md5_ctx *)limfield((line *)pmVar29,key,plVar19);\n            pcVar16 = line_1->text;\n          }\n          if (pcVar16 != (char *)0xffffffff) {\n            plVar19 = line_1;\n            pmVar30 = (md5_ctx *)begfield((line *)pmVar30,key_00,line_1);\n            pmVar27 = (md5_ctx *)begfield((line *)pmVar29,key,plVar19);\n            goto LAB_0001743c;\n          }\n          bVar4 = pmVar30 < pmVar25;\n          pmVar27 = pmVar29;\n          if (*(char *)&line_1[1].keybeg == '\0') goto LAB_00017440;\n          pmVar22 = pmVar30;\n          if (pmVar25 <= pmVar30) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)&line_1[1].keylim + 3) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (iVar7 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar11 = (*pcVar14)();\n      pmVar22 = (md5_ctx *)(iVar11 + 1);\n      pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar22->total + -8));\n      if (line_1 == (line *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pmVar27 = pmVar25;\n      if (pmVar27 < pmStack_2118) {\n        pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pmVar26 = (md5_ctx *)xmalloc((size_t)pmVar27);\n      if (pmVar32 != (md5_ctx *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pmVar26,pmStack_213c,pmVar29);\n      }\n      pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n      local_214c = pmVar26;\n      if (local_2150 != (md5_ctx *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pmVar25,pmVar28,pmVar22);\n        if (pmVar32 == (md5_ctx *)0x0) goto LAB_0001809c;\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n        goto LAB_00017c8c;\n      }\n      if (pmVar32 != (md5_ctx *)0x0) {\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\nFUN_00017f2c:\n        if (pmStack_213c < pmStack_2120) {\n          pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n          pmVar30 = pmVar26;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130);\n            md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138);\n            if (local_2158 == 0) {\n              pmVar26 = pmVar22;\n              if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);\n              if (pmVar27 < pmStack_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);\n              pmVar29 = (md5_ctx *)(iVar11 + 1);\n              if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }\n              pmVar22 = (md5_ctx *)0x0;\n              pmVar25 = pmVar29;\n              if (pmVar27 < pmVar29) goto LAB_00017de0;\nLAB_00018174:\n              pmVar26 = pmVar30;\n              if (pmVar27 < pmVar25) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }\n            pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n            if (pmVar32 == (md5_ctx *)0x0) {\n              if (local_2150 == (md5_ctx *)0x0) break;\nLAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n            }\n            else {\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n            pmVar30 = pmVar26;\n            if (pmStack_211c <= pmVar28) break;\n          } while( true );\n        }\n      }\n      pmStack_213c = pmVar25;\n      local_2150 = pmVar22;\n      pmStack_211c = pmStack_20fc;\n      pmStack_2120 = pmStack_2100;\n      md5_process_bytes(pmVar26,(size_t)pmVar29,pmStack_2130);\n      pmVar27 = (md5_ctx *)dig;\n      md5_finish_ctx(pmStack_2130,pmVar27);\n      md5_process_bytes(pmStack_213c,(size_t)local_2150,pmStack_2138);\n      pmStack_2134 = (md5_ctx *)(dig + 1);\n      md5_finish_ctx(pmStack_2138,pmStack_2134);\n      uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmStack_2134,0x10);\n      pmVar23 = pmStack_20fc;\n      pmVar24 = pmStack_2100;\n      pmVar22 = pmStack_2108;\n      pmVar25 = pmVar29;\n      pmVar30 = pmVar26;\n      pmVar31 = pmStack_2104;\n      pmVar32 = pmStack_2110;\n      pmVar28 = pmStack_210c;\n      line_1 = plStack_2114;\n      if ((uVar12 == 0) && (uVar12 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pmVar27 = (md5_ctx *)(uint)(local_2150 < pmVar29);\n        pmVar25 = local_2150;\n        if (pmVar27 == (md5_ctx *)0x0) {\n          pmVar25 = pmVar29;\n        }\n        uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar26,pmStack_213c,pmVar25);\n        pmVar25 = pmVar29;\n        pmVar30 = pmVar26;\n        pmStack_2138 = pmVar24;\n        pmStack_2134 = pmVar23;\n        if (uVar12 == 0) {\n          uVar12 = (int)pmVar27 - (uint)(pmVar29 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar12;\n      pmVar26 = pmVar32;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pmVar29 = pmVar25;\n      local_2150 = pmVar24;\n      pmStack_213c = pmVar23;\nLAB_000175d8:\n      if (pmVar23 == (md5_ctx *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pmVar28 = pmVar22;\n      pmVar32 = pmVar31;\n    } while( true );\n  }\n  pmVar32 = pmVar29;\n  if (pmVar23 == (md5_ctx *)0x0) {\n    pmVar28 = (md5_ctx *)(uint)(pmVar29 != (md5_ctx *)0x0);\n    if (pmVar22 == (md5_ctx *)0x0) {\n      local_2158 = -(int)pmVar28;\n      goto joined_r0x0001782c;\n    }\n    if (pmVar29 != (md5_ctx *)0x0) {\n      if (pmVar24 == (md5_ctx *)0x0) {\n        pmVar26 = pmVar29;\n        if (pmVar22 <= pmVar29) {\n          pmVar26 = pmVar22;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar27,pmVar26);\n        local_2150 = pmVar22;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pmVar30 < pmVar25) && (pmVar27 < pmVar26)) {\n        pmVar28 = (md5_ctx *)(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar30->A - 0x10));\n        local_2158 = (int)pmVar28 -\n                     (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));\n        if (local_2158 != 0) goto LAB_00017838;\n        pmVar23 = (md5_ctx *)((int)pmVar30 + (int)pmVar29);\n        pmVar26 = pmVar27;\n        pmVar25 = pmVar30;\n        while( true ) {\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n          pmVar26 = (md5_ctx *)((int)&pmVar26->A + 1);\n          pmVar30 = pmVar23;\n          if ((pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22)) || (pmVar25 == pmVar23)) break;\n          local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10)) -\n                       (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10));\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pmVar22 < pmVar29) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pmVar22 != pmVar29);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }\n  pmVar22 = pmVar30;\n  if (pmVar24 != (md5_ctx *)0x0) goto LAB_000174c0;\nLAB_000181d0:\n  if ((pmVar25 <= pmVar22) ||\n     (*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0')) {\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    pmVar31 = pmVar27;\n    if (pmVar26 <= pmVar27) {\n      local_2158 = (uint)(pmVar27 < pmVar26);\n      goto LAB_00018290;\n    }\n    while (pmVar27 = (md5_ctx *)((int)&pmVar31->A + 1),\n          *(char *)((int)pmVar23->total + (*(byte *)&pmVar31->A - 0x10)) != '\0') {\n      pmVar31 = pmVar27;\n      if (pmVar26 == pmVar27) goto LAB_00018284;\n    }\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    if (pmVar28 == (md5_ctx *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*(byte *)&pmVar22->A - (uint)*(byte *)&pmVar31->A;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n  goto LAB_000181d0;\nLAB_000174c0:\n  if ((pmVar25 <= pmVar22) ||\n     (*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0')) {\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    if (pmVar26 <= pmVar27) {\n      local_2158 = (uint)(pmVar27 < pmVar26);\n      goto LAB_00018290;\n    }\n    while (pmVar28 = (md5_ctx *)((int)&pmVar27->A + 1),\n          *(char *)((int)pmVar23->total + (*(byte *)&pmVar27->A - 0x10)) != '\0') {\n      pmVar27 = pmVar28;\n      if (pmVar26 == pmVar28) goto LAB_00018284;\n    }\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    pmVar31 = pmVar27;\n    if (pmVar28 == (md5_ctx *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar22->A - 0x10)) -\n                 (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));\n    pmVar27 = (md5_ctx *)((int)&pmVar27->A + 1);\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n  goto LAB_000174c0;\nLAB_00018284:\n  pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n  pmVar31 = pmVar26;\nLAB_0001828c:\n  local_2158 = (uint)(pmVar31 < pmVar26);\n  pmVar27 = pmVar31;\nLAB_00018290:\n  local_2158 = (int)pmVar28 - local_2158;\n  goto joined_r0x0001782c;\n  while (pmVar30 = pmVar25, pmVar22 = pmVar23, pmVar25 != pmVar23) {\nLAB_000178dc:\n    pmVar23 = (md5_ctx *)((int)&pmVar22->A + 1);\n    pmVar30 = pmVar22;\n    if (puVar5[*(byte *)&pmVar22->A - 0x15f0] == '\0') break;\n  }\nLAB_000178f8:\n  bVar4 = pmVar30 < pmVar25;\n  if (pmVar29 < pmVar26) {\n    do {\n      bVar4 = pmVar30 < pmVar25;\n      pmVar27 = pmVar29;\n      if (puVar5[*(byte *)&pmVar29->A - 0x15f0] == '\0') break;\n      pmVar29 = (md5_ctx *)((int)&pmVar29->A + 1);\n      pmVar27 = pmVar26;\n    } while (pmVar26 != pmVar29);\n  }\n  goto LAB_00017440;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint32_t *puVar9;" primitive_type (pointer_declarator "*puVar9" * identifier) ;) (declaration "uint32_t *puVar10;" primitive_type (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "code *pcVar15;" type_identifier (pointer_declarator "*pcVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "uint32_t uVar17;" primitive_type identifier ;) (declaration "uint32_t uVar18;" primitive_type identifier ;) (declaration "line *plVar19;" type_identifier (pointer_declarator "*plVar19" * identifier) ;) (declaration "md5_ctx *pmVar20;" type_identifier (pointer_declarator "*pmVar20" * identifier) ;) (declaration "uint32_t uVar21;" primitive_type identifier ;) (declaration "md5_ctx *pmVar22;" type_identifier (pointer_declarator "*pmVar22" * identifier) ;) (declaration "md5_ctx *pmVar23;" type_identifier (pointer_declarator "*pmVar23" * identifier) ;) (declaration "md5_ctx *pmVar24;" type_identifier (pointer_declarator "*pmVar24" * identifier) ;) (declaration "md5_ctx *pmVar25;" type_identifier (pointer_declarator "*pmVar25" * identifier) ;) (declaration "keyfield *key;" type_identifier (pointer_declarator "*key" * identifier) ;) (declaration "md5_ctx *pmVar26;" type_identifier (pointer_declarator "*pmVar26" * identifier) ;) (declaration "keyfield *key_00;" type_identifier (pointer_declarator "*key_00" * identifier) ;) (declaration "md5_ctx *pmVar27;" type_identifier (pointer_declarator "*pmVar27" * identifier) ;) (declaration "md5_ctx *pmVar28;" type_identifier (pointer_declarator "*pmVar28" * identifier) ;) (declaration "md5_ctx *pmVar29;" type_identifier (pointer_declarator "*pmVar29" * identifier) ;) (declaration "md5_ctx *pmVar30;" type_identifier (pointer_declarator "*pmVar30" * identifier) ;) (declaration "md5_ctx *pmVar31;" type_identifier (pointer_declarator "*pmVar31" * identifier) ;) (declaration "md5_ctx *pmVar32;" type_identifier (pointer_declarator "*pmVar32" * identifier) ;) (declaration "line *line_1;" type_identifier (pointer_declarator "*line_1" * identifier) ;) (declaration "code *pcVar33;" type_identifier (pointer_declarator "*pcVar33" * identifier) ;) (declaration "double dVar34;" primitive_type identifier ;) (declaration "double dVar35;" primitive_type identifier ;) (declaration "uint local_2158;" type_identifier identifier ;) (declaration "md5_ctx *local_2154;" type_identifier (pointer_declarator "*local_2154" * identifier) ;) (declaration "md5_ctx *local_2150;" type_identifier (pointer_declarator "*local_2150" * identifier) ;) (declaration "md5_ctx *local_214c;" type_identifier (pointer_declarator "*local_214c" * identifier) ;) (declaration "md5_ctx *pmStack_213c;" type_identifier (pointer_declarator "*pmStack_213c" * identifier) ;) (declaration "md5_ctx *pmStack_2138;" type_identifier (pointer_declarator "*pmStack_2138" * identifier) ;) (declaration "md5_ctx *pmStack_2134;" type_identifier (pointer_declarator "*pmStack_2134" * identifier) ;) (declaration "md5_ctx *pmStack_2130;" type_identifier (pointer_declarator "*pmStack_2130" * identifier) ;) (declaration "md5_ctx *pmStack_2120;" type_identifier (pointer_declarator "*pmStack_2120" * identifier) ;) (declaration "md5_ctx *pmStack_211c;" type_identifier (pointer_declarator "*pmStack_211c" * identifier) ;) (declaration "md5_ctx *pmStack_2118;" type_identifier (pointer_declarator "*pmStack_2118" * identifier) ;) (declaration "line *plStack_2114;" type_identifier (pointer_declarator "*plStack_2114" * identifier) ;) (declaration "md5_ctx *pmStack_2110;" type_identifier (pointer_declarator "*pmStack_2110" * identifier) ;) (declaration "md5_ctx *pmStack_210c;" type_identifier (pointer_declarator "*pmStack_210c" * identifier) ;) (declaration "md5_ctx *pmStack_2108;" type_identifier (pointer_declarator "*pmStack_2108" * identifier) ;) (declaration "md5_ctx *pmStack_2104;" type_identifier (pointer_declarator "*pmStack_2104" * identifier) ;) (declaration "md5_ctx *pmStack_2100;" type_identifier (pointer_declarator "*pmStack_2100" * identifier) ;) (declaration "md5_ctx *pmStack_20fc;" type_identifier (pointer_declarator "*pmStack_20fc" * identifier) ;) (declaration "md5_ctx *pmStack_20ec;" type_identifier (pointer_declarator "*pmStack_20ec" * identifier) ;) (declaration "char *ea;" primitive_type (pointer_declarator "*ea" * identifier) ;) (declaration "char *eb;" primitive_type (pointer_declarator "*eb" * identifier) ;) (declaration "longdouble a_1;" type_identifier identifier ;) (declaration "longdouble b_1;" type_identifier identifier ;) (declaration "uint32_t dig [2] [4];" primitive_type (array_declarator "dig [2] [4]" (array_declarator "dig [2]" identifier [ number_literal ]) [ number_literal ]) ;) (declaration "md5_ctx s [2];" type_identifier (array_declarator "s [2]" identifier [ number_literal ]) ;) (declaration "char stackbuf [4000];" primitive_type (array_declarator "stackbuf [4000]" identifier [ number_literal ]) ;) (declaration "char stackbuf_1 [4000];" primitive_type (array_declarator "stackbuf_1 [4000]" identifier [ number_literal ]) ;) (expression_statement "puVar6 = PTR___stack_chk_guard_0003e550;" (assignment_expression "puVar6 = PTR___stack_chk_guard_0003e550" identifier = identifier) ;) (expression_statement "puVar5 = PTR_DAT_0003e1a8;" (assignment_expression "puVar5 = PTR_DAT_0003e1a8" identifier = identifier) ;) (expression_statement "pmVar25 = (md5_ctx *)a->keylim;" (assignment_expression "pmVar25 = (md5_ctx *)a->keylim" identifier = (cast_expression "(md5_ctx *)a->keylim" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "a->keylim" identifier -> field_identifier))) ;) (expression_statement "pcVar14 = (code *)(PTR_0003e1b4 + 0x6938);" (assignment_expression "pcVar14 = (code *)(PTR_0003e1b4 + 0x6938)" identifier = (cast_expression "(code *)(PTR_0003e1b4 + 0x6938)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_0003e1b4 + 0x6938)" ( (binary_expression "PTR_0003e1b4 + 0x6938" identifier + number_literal) )))) ;) (expression_statement "pmVar26 = (md5_ctx *)b->keylim;" (assignment_expression "pmVar26 = (md5_ctx *)b->keylim" identifier = (cast_expression "(md5_ctx *)b->keylim" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "b->keylim" identifier -> field_identifier))) ;) (expression_statement "line_1 = *(line **)(PTR_DAT_0003e1a8 + -0x1908);" (assignment_expression "line_1 = *(line **)(PTR_DAT_0003e1a8 + -0x1908)" identifier = (pointer_expression "*(line **)(PTR_DAT_0003e1a8 + -0x1908)" * (cast_expression "(line **)(PTR_DAT_0003e1a8 + -0x1908)" ( (type_descriptor "line **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0003e1a8 + -0x1908)" ( (binary_expression "PTR_DAT_0003e1a8 + -0x1908" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)PTR___stack_chk_guard_0003e550;" (assignment_expression "iVar7 = *(int *)PTR___stack_chk_guard_0003e550" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0003e550" * (cast_expression "(int *)PTR___stack_chk_guard_0003e550" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pmVar30 = (md5_ctx *)a->keybeg;" (assignment_expression "pmVar30 = (md5_ctx *)a->keybeg" identifier = (cast_expression "(md5_ctx *)a->keybeg" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "a->keybeg" identifier -> field_identifier))) ;) (expression_statement "pcVar15 = (code *)(PTR_0003e1b4 + 0x613c);" (assignment_expression "pcVar15 = (code *)(PTR_0003e1b4 + 0x613c)" identifier = (cast_expression "(code *)(PTR_0003e1b4 + 0x613c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_0003e1b4 + 0x613c)" ( (binary_expression "PTR_0003e1b4 + 0x613c" identifier + number_literal) )))) ;) (expression_statement "pmVar27 = (md5_ctx *)b->keybeg;" (assignment_expression "pmVar27 = (md5_ctx *)b->keybeg" identifier = (cast_expression "(md5_ctx *)b->keybeg" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "b->keybeg" identifier -> field_identifier))) ;) (expression_statement "cVar1 = '\0';" (assignment_expression "cVar1 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_0001743c:\n  bVar4 = pmVar30 < pmVar25;" statement_identifier : (expression_statement "bVar4 = pmVar30 < pmVar25;" (assignment_expression "bVar4 = pmVar30 < pmVar25" identifier = (binary_expression "pmVar30 < pmVar25" identifier < identifier)) ;)) (labeled_statement "LAB_00017440:\n  if (!bVar4) {\n    pmVar25 = pmVar30;\n  }" statement_identifier : (if_statement "if (!bVar4) {\n    pmVar25 = pmVar30;\n  }" if (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) (compound_statement "{\n    pmVar25 = pmVar30;\n  }" { (expression_statement "pmVar25 = pmVar30;" (assignment_expression "pmVar25 = pmVar30" identifier = identifier) ;) }))) (if_statement "if (pmVar26 <= pmVar27) {\n    pmVar26 = pmVar27;\n  }" if (parenthesized_expression "(pmVar26 <= pmVar27)" ( (binary_expression "pmVar26 <= pmVar27" identifier <= identifier) )) (compound_statement "{\n    pmVar26 = pmVar27;\n  }" { (expression_statement "pmVar26 = pmVar27;" (assignment_expression "pmVar26 = pmVar27" identifier = identifier) ;) })) (expression_statement "pmVar22 = (md5_ctx *)((int)pmVar25 - (int)pmVar30);" (assignment_expression "pmVar22 = (md5_ctx *)((int)pmVar25 - (int)pmVar30)" identifier = (cast_expression "(md5_ctx *)((int)pmVar25 - (int)pmVar30)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar25 - (int)pmVar30)" ( (binary_expression "(int)pmVar25 - (int)pmVar30" (cast_expression "(int)pmVar25" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pmVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pmVar24 = (md5_ctx *)line_1[1].length;" (assignment_expression "pmVar24 = (md5_ctx *)line_1[1].length" identifier = (cast_expression "(md5_ctx *)line_1[1].length" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "line_1[1].length" (subscript_expression "line_1[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "pmVar29 = (md5_ctx *)((int)pmVar26 - (int)pmVar27);" (assignment_expression "pmVar29 = (md5_ctx *)((int)pmVar26 - (int)pmVar27)" identifier = (cast_expression "(md5_ctx *)((int)pmVar26 - (int)pmVar27)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar26 - (int)pmVar27)" ( (binary_expression "(int)pmVar26 - (int)pmVar27" (cast_expression "(int)pmVar26" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pmVar27" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pmVar23 = (md5_ctx *)line_1[1].text;" (assignment_expression "pmVar23 = (md5_ctx *)line_1[1].text" identifier = (cast_expression "(md5_ctx *)line_1[1].text" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "line_1[1].text" (subscript_expression "line_1[1]" identifier [ number_literal ]) . field_identifier))) ;) (if_statement "if (((((puVar5[-0x14df] != '\0') || (*(char *)((int)&line_1[1].keybeg + 2) != '\0')) ||\n       (((uint)line_1[1].keylim & 0xffff0000) != 0)) ||\n      ((*(char *)((int)&line_1[1].keylim + 2) != '\0' ||\n       (*(char *)((int)&line_1[1].keybeg + 3) != '\0')))) || (*(char *)&line_1[2].text != '\0')) {\n    pmVar31 = pmVar29;\n    if ((pmVar23 == (md5_ctx *)0x0) && (pmVar24 == (md5_ctx *)0x0)) {\n      cVar1 = *(char *)&pmVar25->A;\n      *(char *)&pmVar25->A = '\0';\n      cVar2 = *(char *)&pmVar26->A;\n      *(char *)&pmVar26->A = '\0';\n      cVar3 = *(char *)((int)&line_1[1].keybeg + 2);\n      pmVar28 = pmVar27;\n      pmVar26 = pmVar30;\n    }\n    else {\n      pmVar26 = (md5_ctx *)stackbuf;\n      if ((char *)((int)pmVar22 + (int)pmVar29) + 2 < (char *)0xfa1) {\n        local_2154 = (md5_ctx *)0x0;\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n      }\n      else {\n        pmVar26 = (md5_ctx *)xmalloc((size_t)((char *)((int)pmVar22 + (int)pmVar29) + 2));\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n        local_214c = pmVar22;\n        local_2150 = pmVar23;\n        local_2154 = pmVar26;\n      }\n      if (pmVar22 == (md5_ctx *)0x0) {\n        *(char *)&pmVar26->A = '\0';\n      }\n      else {\n        pmVar32 = (md5_ctx *)((int)pmVar30 + (int)pmVar22);\n        pmVar22 = (md5_ctx *)0x0;\n        pmVar25 = pmVar30;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar22->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar26->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar32 != pmVar25);\n        *(undefined1 *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = 0;\n      }\n      if (pmVar29 == (md5_ctx *)0x0) {\n        *(char *)&pmVar28->A = '\0';\n      }\n      else {\n        pmVar29 = (md5_ctx *)((int)pmVar27 + (int)pmVar29);\n        pmVar31 = (md5_ctx *)0x0;\n        pmVar25 = pmVar27;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar31->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar31 = (md5_ctx *)((int)&pmVar31->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar28->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar29 != pmVar25);\n        *(undefined1 *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = 0;\n      }\n      cVar3 = *(char *)((int)&line_1[1].keybeg + 2);\n    }\n    pmVar25 = pmVar26;\n    pmVar32 = pmVar28;\n    if (cVar3 == '\0') {\n      if (*(char *)&line_1[1].keylim != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pmVar26,&ea);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pmVar28,&eb);\n        if (pmVar26 == (md5_ctx *)ea) {\n          local_2158 = -(uint)(pmVar28 != (md5_ctx *)eb);\n          local_2150 = pmVar23;\n          goto LAB_000175d8;\n        }\n        local_2150 = pmVar23;\n        if (pmVar28 != (md5_ctx *)eb) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)&line_1[1].keylim + 1) == '\0') {\n        if (*(char *)((int)&line_1[1].keylim + 2) != '\0') {\n          pcVar33 = pcVar15;\n          iVar11 = (*pcVar15)(pmVar26,0);\n          iVar8 = (*pcVar33)(pmVar28,0);\n          local_2158 = iVar11 - iVar8;\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)&line_1[1].keybeg + 3) != '\0') {\n          pmStack_2138 = s + 1;\n          puVar10 = (uint32_t *)(puVar5 + -0x1a38);\n          pmVar25 = pmStack_2138;\n          do {\n            pmVar27 = pmVar25;\n            puVar9 = puVar10;\n            puVar10 = puVar9 + 4;\n            uVar21 = puVar9[1];\n            uVar18 = puVar9[2];\n            uVar17 = puVar9[3];\n            pmVar27->A = *puVar9;\n            pmVar27->B = uVar21;\n            pmVar27->C = uVar18;\n            pmVar27->D = uVar17;\n            pmVar25 = (md5_ctx *)pmVar27->total;\n          } while (puVar10 != (uint32_t *)(puVar5 + -0x19a8));\n          pmStack_2130 = s;\n          uVar18 = puVar9[5];\n          uVar17 = puVar9[6];\n          pmVar27->total[0] = *puVar10;\n          pmVar27->total[1] = uVar18;\n          pmVar27->buflen = uVar17;\n          pmVar25 = pmStack_2138;\n          pmVar27 = pmStack_2130;\n          do {\n            pmVar29 = pmVar27;\n            pmVar30 = pmVar25;\n            pmVar25 = (md5_ctx *)pmVar30->total;\n            uVar21 = pmVar30->B;\n            uVar18 = pmVar30->C;\n            uVar17 = pmVar30->D;\n            pmVar29->A = pmVar30->A;\n            pmVar29->B = uVar21;\n            pmVar29->C = uVar18;\n            pmVar29->D = uVar17;\n            pmVar27 = (md5_ctx *)pmVar29->total;\n          } while (pmVar25 != (md5_ctx *)(s[1].buffer + 0x1d));\n          uVar18 = pmVar30->total[1];\n          uVar17 = pmVar30->buflen;\n          cVar3 = puVar5[-0x14df];\n          pmVar29->total[0] = *(uint32_t *)pmVar25;\n          pmVar29->total[1] = uVar18;\n          pmVar29->buflen = uVar17;\n          if (cVar3 == '\0') {\n            pmVar25 = (md5_ctx *)(dig + 1);\n            md5_process_bytes(pmVar26,(size_t)pmVar22,pmStack_2130);\n            pmVar27 = (md5_ctx *)dig;\n            md5_finish_ctx(pmStack_2130,pmVar27);\n            md5_process_bytes(pmVar28,(size_t)pmVar31,pmStack_2138);\n            md5_finish_ctx(pmStack_2138,pmVar25);\n            uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmVar25,0x10);\n            local_214c = (md5_ctx *)0x0;\n            pmVar29 = pmVar22;\n            pmVar30 = pmStack_2138;\n            pmVar32 = pmVar26;\n            local_2150 = pmVar31;\n            pmStack_213c = pmVar28;\n            if (uVar12 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          pmStack_2120 = (md5_ctx *)((int)pmVar22->total + (int)(pmVar26->total + -8));\n          local_214c = (md5_ctx *)0x0;\n          pmVar30 = (md5_ctx *)stackbuf_1;\n          local_2158 = 0;\n          pmStack_211c = (md5_ctx *)((int)pmVar31->total + (int)(pmVar28->total + -8));\n          pmStack_2134 = (md5_ctx *)(((int)pmVar31->total + (int)(pmVar22->total + -8)) * 3 + 2);\n          pmVar27 = (md5_ctx *)0xfa0;\n          local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n          pmStack_2118 = (md5_ctx *)0x55555555;\n          pmVar32 = (md5_ctx *)(uint)(pmVar26 < pmStack_2120);\n          pmStack_213c = pmVar26;\n          plStack_2114 = line_1;\n          pmStack_2110 = pmVar26;\n          pmStack_210c = pmVar28;\n          pmStack_2108 = pmVar22;\n          pmStack_2104 = pmVar31;\n          pmStack_2100 = pmVar24;\n          pmStack_20fc = pmVar23;\n          pmStack_20ec = pmVar30;\n          goto LAB_00017c30;\n        }\n        if (*(char *)&line_1[2].text != '\0') {\n          local_2158 = filevercmp((char *)pmVar26,(char *)pmVar28);\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }\n        if (pmVar22 == (md5_ctx *)0x0) {\n          local_2158 = -(uint)(pmVar31 != (md5_ctx *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pmVar31 == (md5_ctx *)0x0) goto LAB_000179f8;\n        pcVar16 = (char *)((int)&pmVar31->A + 1);\n        pmVar32 = (md5_ctx *)((int)&pmVar22->A + 1);\n        pmVar20 = pmVar28;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }\n      cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }\n      pmVar30 = (md5_ctx *)(PTR_0003e1b4 + 0x6090);\n      iVar11 = find_unit_order((char *)pmVar25);\n      iVar8 = find_unit_order((char *)pmVar32);\n      local_2158 = iVar11 - iVar8;\n      pmVar27 = pmVar25;\n      pmVar29 = pmVar32;\n      local_2150 = pmVar24;\n      local_214c = pmVar23;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }\n      cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }\n    }\n    pcVar16 = *(char **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pmVar20 = *(md5_ctx **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pmVar25,pmVar32,pmVar20,pcVar16);\n    local_2150 = pmVar24;\n    local_214c = pmVar23;\n    if (pmVar23 != (md5_ctx *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pmVar24 != (md5_ctx *)0x0) goto LAB_000175e4;\n    *(char *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = cVar1;\n    *(char *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = cVar2;\n    pmVar28 = pmVar22;\n    pmVar32 = pmVar31;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        line_1 = (line *)line_1[2].length;\n        if (line_1 != (line *)0x0) {\n          pmVar30 = (md5_ctx *)a->text;\n          key_00 = (keyfield *)a->length;\n          pmVar29 = (md5_ctx *)b->text;\n          key = (keyfield *)b->length;\n          if (line_1->keybeg == (char *)0xffffffff) {\n            pcVar16 = line_1->text;\n            pmVar25 = (md5_ctx *)\n                      ((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4));\n            pmVar26 = (md5_ctx *)\n                      ((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4));\n          }\n          else {\n            plVar19 = line_1;\n            pmVar25 = (md5_ctx *)limfield((line *)pmVar30,key_00,line_1);\n            pmVar26 = (md5_ctx *)limfield((line *)pmVar29,key,plVar19);\n            pcVar16 = line_1->text;\n          }\n          if (pcVar16 != (char *)0xffffffff) {\n            plVar19 = line_1;\n            pmVar30 = (md5_ctx *)begfield((line *)pmVar30,key_00,line_1);\n            pmVar27 = (md5_ctx *)begfield((line *)pmVar29,key,plVar19);\n            goto LAB_0001743c;\n          }\n          bVar4 = pmVar30 < pmVar25;\n          pmVar27 = pmVar29;\n          if (*(char *)&line_1[1].keybeg == '\0') goto LAB_00017440;\n          pmVar22 = pmVar30;\n          if (pmVar25 <= pmVar30) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)&line_1[1].keylim + 3) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (iVar7 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar11 = (*pcVar14)();\n      pmVar22 = (md5_ctx *)(iVar11 + 1);\n      pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar22->total + -8));\n      if (line_1 == (line *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pmVar27 = pmVar25;\n      if (pmVar27 < pmStack_2118) {\n        pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pmVar26 = (md5_ctx *)xmalloc((size_t)pmVar27);\n      if (pmVar32 != (md5_ctx *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pmVar26,pmStack_213c,pmVar29);\n      }\n      pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n      local_214c = pmVar26;\n      if (local_2150 != (md5_ctx *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pmVar25,pmVar28,pmVar22);\n        if (pmVar32 == (md5_ctx *)0x0) goto LAB_0001809c;\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n        goto LAB_00017c8c;\n      }\n      if (pmVar32 != (md5_ctx *)0x0) {\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\nFUN_00017f2c:\n        if (pmStack_213c < pmStack_2120) {\n          pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n          pmVar30 = pmVar26;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130);\n            md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138);\n            if (local_2158 == 0) {\n              pmVar26 = pmVar22;\n              if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);\n              if (pmVar27 < pmStack_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);\n              pmVar29 = (md5_ctx *)(iVar11 + 1);\n              if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }\n              pmVar22 = (md5_ctx *)0x0;\n              pmVar25 = pmVar29;\n              if (pmVar27 < pmVar29) goto LAB_00017de0;\nLAB_00018174:\n              pmVar26 = pmVar30;\n              if (pmVar27 < pmVar25) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }\n            pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n            if (pmVar32 == (md5_ctx *)0x0) {\n              if (local_2150 == (md5_ctx *)0x0) break;\nLAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n            }\n            else {\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n            pmVar30 = pmVar26;\n            if (pmStack_211c <= pmVar28) break;\n          } while( true );\n        }\n      }\n      pmStack_213c = pmVar25;\n      local_2150 = pmVar22;\n      pmStack_211c = pmStack_20fc;\n      pmStack_2120 = pmStack_2100;\n      md5_process_bytes(pmVar26,(size_t)pmVar29,pmStack_2130);\n      pmVar27 = (md5_ctx *)dig;\n      md5_finish_ctx(pmStack_2130,pmVar27);\n      md5_process_bytes(pmStack_213c,(size_t)local_2150,pmStack_2138);\n      pmStack_2134 = (md5_ctx *)(dig + 1);\n      md5_finish_ctx(pmStack_2138,pmStack_2134);\n      uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmStack_2134,0x10);\n      pmVar23 = pmStack_20fc;\n      pmVar24 = pmStack_2100;\n      pmVar22 = pmStack_2108;\n      pmVar25 = pmVar29;\n      pmVar30 = pmVar26;\n      pmVar31 = pmStack_2104;\n      pmVar32 = pmStack_2110;\n      pmVar28 = pmStack_210c;\n      line_1 = plStack_2114;\n      if ((uVar12 == 0) && (uVar12 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pmVar27 = (md5_ctx *)(uint)(local_2150 < pmVar29);\n        pmVar25 = local_2150;\n        if (pmVar27 == (md5_ctx *)0x0) {\n          pmVar25 = pmVar29;\n        }\n        uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar26,pmStack_213c,pmVar25);\n        pmVar25 = pmVar29;\n        pmVar30 = pmVar26;\n        pmStack_2138 = pmVar24;\n        pmStack_2134 = pmVar23;\n        if (uVar12 == 0) {\n          uVar12 = (int)pmVar27 - (uint)(pmVar29 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar12;\n      pmVar26 = pmVar32;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pmVar29 = pmVar25;\n      local_2150 = pmVar24;\n      pmStack_213c = pmVar23;\nLAB_000175d8:\n      if (pmVar23 == (md5_ctx *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pmVar28 = pmVar22;\n      pmVar32 = pmVar31;\n    } while( true );\n  }" if (parenthesized_expression "(((((puVar5[-0x14df] != '\0') || (*(char *)((int)&line_1[1].keybeg + 2) != '\0')) ||\n       (((uint)line_1[1].keylim & 0xffff0000) != 0)) ||\n      ((*(char *)((int)&line_1[1].keylim + 2) != '\0' ||\n       (*(char *)((int)&line_1[1].keybeg + 3) != '\0')))) || (*(char *)&line_1[2].text != '\0'))" ( (binary_expression "((((puVar5[-0x14df] != '\0') || (*(char *)((int)&line_1[1].keybeg + 2) != '\0')) ||\n       (((uint)line_1[1].keylim & 0xffff0000) != 0)) ||\n      ((*(char *)((int)&line_1[1].keylim + 2) != '\0' ||\n       (*(char *)((int)&line_1[1].keybeg + 3) != '\0')))) || (*(char *)&line_1[2].text != '\0')" (parenthesized_expression "((((puVar5[-0x14df] != '\0') || (*(char *)((int)&line_1[1].keybeg + 2) != '\0')) ||\n       (((uint)line_1[1].keylim & 0xffff0000) != 0)) ||\n      ((*(char *)((int)&line_1[1].keylim + 2) != '\0' ||\n       (*(char *)((int)&line_1[1].keybeg + 3) != '\0'))))" ( (binary_expression "(((puVar5[-0x14df] != '\0') || (*(char *)((int)&line_1[1].keybeg + 2) != '\0')) ||\n       (((uint)line_1[1].keylim & 0xffff0000) != 0)) ||\n      ((*(char *)((int)&line_1[1].keylim + 2) != '\0' ||\n       (*(char *)((int)&line_1[1].keybeg + 3) != '\0')))" (parenthesized_expression "(((puVar5[-0x14df] != '\0') || (*(char *)((int)&line_1[1].keybeg + 2) != '\0')) ||\n       (((uint)line_1[1].keylim & 0xffff0000) != 0))" ( (binary_expression "((puVar5[-0x14df] != '\0') || (*(char *)((int)&line_1[1].keybeg + 2) != '\0')) ||\n       (((uint)line_1[1].keylim & 0xffff0000) != 0)" (parenthesized_expression "((puVar5[-0x14df] != '\0') || (*(char *)((int)&line_1[1].keybeg + 2) != '\0'))" ( (binary_expression "(puVar5[-0x14df] != '\0') || (*(char *)((int)&line_1[1].keybeg + 2) != '\0')" (parenthesized_expression "(puVar5[-0x14df] != '\0')" ( (binary_expression "puVar5[-0x14df] != '\0'" (subscript_expression "puVar5[-0x14df]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)((int)&line_1[1].keybeg + 2) != '\0')" ( (binary_expression "*(char *)((int)&line_1[1].keybeg + 2) != '\0'" (pointer_expression "*(char *)((int)&line_1[1].keybeg + 2)" * (cast_expression "(char *)((int)&line_1[1].keybeg + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&line_1[1].keybeg + 2)" ( (binary_expression "(int)&line_1[1].keybeg + 2" (cast_expression "(int)&line_1[1].keybeg" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&line_1[1].keybeg" & (field_expression "line_1[1].keybeg" (subscript_expression "line_1[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(((uint)line_1[1].keylim & 0xffff0000) != 0)" ( (binary_expression "((uint)line_1[1].keylim & 0xffff0000) != 0" (parenthesized_expression "((uint)line_1[1].keylim & 0xffff0000)" ( (binary_expression "(uint)line_1[1].keylim & 0xffff0000" (cast_expression "(uint)line_1[1].keylim" ( (type_descriptor "uint" type_identifier) ) (field_expression "line_1[1].keylim" (subscript_expression "line_1[1]" identifier [ number_literal ]) . field_identifier)) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(char *)((int)&line_1[1].keylim + 2) != '\0' ||\n       (*(char *)((int)&line_1[1].keybeg + 3) != '\0')))" ( (parenthesized_expression "(*(char *)((int)&line_1[1].keylim + 2) != '\0' ||\n       (*(char *)((int)&line_1[1].keybeg + 3) != '\0'))" ( (binary_expression "*(char *)((int)&line_1[1].keylim + 2) != '\0' ||\n       (*(char *)((int)&line_1[1].keybeg + 3) != '\0')" (binary_expression "*(char *)((int)&line_1[1].keylim + 2) != '\0'" (pointer_expression "*(char *)((int)&line_1[1].keylim + 2)" * (cast_expression "(char *)((int)&line_1[1].keylim + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&line_1[1].keylim + 2)" ( (binary_expression "(int)&line_1[1].keylim + 2" (cast_expression "(int)&line_1[1].keylim" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&line_1[1].keylim" & (field_expression "line_1[1].keylim" (subscript_expression "line_1[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(*(char *)((int)&line_1[1].keybeg + 3) != '\0')" ( (binary_expression "*(char *)((int)&line_1[1].keybeg + 3) != '\0'" (pointer_expression "*(char *)((int)&line_1[1].keybeg + 3)" * (cast_expression "(char *)((int)&line_1[1].keybeg + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&line_1[1].keybeg + 3)" ( (binary_expression "(int)&line_1[1].keybeg + 3" (cast_expression "(int)&line_1[1].keybeg" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&line_1[1].keybeg" & (field_expression "line_1[1].keybeg" (subscript_expression "line_1[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) || (parenthesized_expression "(*(char *)&line_1[2].text != '\0')" ( (binary_expression "*(char *)&line_1[2].text != '\0'" (pointer_expression "*(char *)&line_1[2].text" * (cast_expression "(char *)&line_1[2].text" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&line_1[2].text" & (field_expression "line_1[2].text" (subscript_expression "line_1[2]" identifier [ number_literal ]) . field_identifier)))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    pmVar31 = pmVar29;\n    if ((pmVar23 == (md5_ctx *)0x0) && (pmVar24 == (md5_ctx *)0x0)) {\n      cVar1 = *(char *)&pmVar25->A;\n      *(char *)&pmVar25->A = '\0';\n      cVar2 = *(char *)&pmVar26->A;\n      *(char *)&pmVar26->A = '\0';\n      cVar3 = *(char *)((int)&line_1[1].keybeg + 2);\n      pmVar28 = pmVar27;\n      pmVar26 = pmVar30;\n    }\n    else {\n      pmVar26 = (md5_ctx *)stackbuf;\n      if ((char *)((int)pmVar22 + (int)pmVar29) + 2 < (char *)0xfa1) {\n        local_2154 = (md5_ctx *)0x0;\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n      }\n      else {\n        pmVar26 = (md5_ctx *)xmalloc((size_t)((char *)((int)pmVar22 + (int)pmVar29) + 2));\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n        local_214c = pmVar22;\n        local_2150 = pmVar23;\n        local_2154 = pmVar26;\n      }\n      if (pmVar22 == (md5_ctx *)0x0) {\n        *(char *)&pmVar26->A = '\0';\n      }\n      else {\n        pmVar32 = (md5_ctx *)((int)pmVar30 + (int)pmVar22);\n        pmVar22 = (md5_ctx *)0x0;\n        pmVar25 = pmVar30;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar22->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar26->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar32 != pmVar25);\n        *(undefined1 *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = 0;\n      }\n      if (pmVar29 == (md5_ctx *)0x0) {\n        *(char *)&pmVar28->A = '\0';\n      }\n      else {\n        pmVar29 = (md5_ctx *)((int)pmVar27 + (int)pmVar29);\n        pmVar31 = (md5_ctx *)0x0;\n        pmVar25 = pmVar27;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar31->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar31 = (md5_ctx *)((int)&pmVar31->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar28->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar29 != pmVar25);\n        *(undefined1 *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = 0;\n      }\n      cVar3 = *(char *)((int)&line_1[1].keybeg + 2);\n    }\n    pmVar25 = pmVar26;\n    pmVar32 = pmVar28;\n    if (cVar3 == '\0') {\n      if (*(char *)&line_1[1].keylim != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pmVar26,&ea);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pmVar28,&eb);\n        if (pmVar26 == (md5_ctx *)ea) {\n          local_2158 = -(uint)(pmVar28 != (md5_ctx *)eb);\n          local_2150 = pmVar23;\n          goto LAB_000175d8;\n        }\n        local_2150 = pmVar23;\n        if (pmVar28 != (md5_ctx *)eb) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)&line_1[1].keylim + 1) == '\0') {\n        if (*(char *)((int)&line_1[1].keylim + 2) != '\0') {\n          pcVar33 = pcVar15;\n          iVar11 = (*pcVar15)(pmVar26,0);\n          iVar8 = (*pcVar33)(pmVar28,0);\n          local_2158 = iVar11 - iVar8;\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)&line_1[1].keybeg + 3) != '\0') {\n          pmStack_2138 = s + 1;\n          puVar10 = (uint32_t *)(puVar5 + -0x1a38);\n          pmVar25 = pmStack_2138;\n          do {\n            pmVar27 = pmVar25;\n            puVar9 = puVar10;\n            puVar10 = puVar9 + 4;\n            uVar21 = puVar9[1];\n            uVar18 = puVar9[2];\n            uVar17 = puVar9[3];\n            pmVar27->A = *puVar9;\n            pmVar27->B = uVar21;\n            pmVar27->C = uVar18;\n            pmVar27->D = uVar17;\n            pmVar25 = (md5_ctx *)pmVar27->total;\n          } while (puVar10 != (uint32_t *)(puVar5 + -0x19a8));\n          pmStack_2130 = s;\n          uVar18 = puVar9[5];\n          uVar17 = puVar9[6];\n          pmVar27->total[0] = *puVar10;\n          pmVar27->total[1] = uVar18;\n          pmVar27->buflen = uVar17;\n          pmVar25 = pmStack_2138;\n          pmVar27 = pmStack_2130;\n          do {\n            pmVar29 = pmVar27;\n            pmVar30 = pmVar25;\n            pmVar25 = (md5_ctx *)pmVar30->total;\n            uVar21 = pmVar30->B;\n            uVar18 = pmVar30->C;\n            uVar17 = pmVar30->D;\n            pmVar29->A = pmVar30->A;\n            pmVar29->B = uVar21;\n            pmVar29->C = uVar18;\n            pmVar29->D = uVar17;\n            pmVar27 = (md5_ctx *)pmVar29->total;\n          } while (pmVar25 != (md5_ctx *)(s[1].buffer + 0x1d));\n          uVar18 = pmVar30->total[1];\n          uVar17 = pmVar30->buflen;\n          cVar3 = puVar5[-0x14df];\n          pmVar29->total[0] = *(uint32_t *)pmVar25;\n          pmVar29->total[1] = uVar18;\n          pmVar29->buflen = uVar17;\n          if (cVar3 == '\0') {\n            pmVar25 = (md5_ctx *)(dig + 1);\n            md5_process_bytes(pmVar26,(size_t)pmVar22,pmStack_2130);\n            pmVar27 = (md5_ctx *)dig;\n            md5_finish_ctx(pmStack_2130,pmVar27);\n            md5_process_bytes(pmVar28,(size_t)pmVar31,pmStack_2138);\n            md5_finish_ctx(pmStack_2138,pmVar25);\n            uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmVar25,0x10);\n            local_214c = (md5_ctx *)0x0;\n            pmVar29 = pmVar22;\n            pmVar30 = pmStack_2138;\n            pmVar32 = pmVar26;\n            local_2150 = pmVar31;\n            pmStack_213c = pmVar28;\n            if (uVar12 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          pmStack_2120 = (md5_ctx *)((int)pmVar22->total + (int)(pmVar26->total + -8));\n          local_214c = (md5_ctx *)0x0;\n          pmVar30 = (md5_ctx *)stackbuf_1;\n          local_2158 = 0;\n          pmStack_211c = (md5_ctx *)((int)pmVar31->total + (int)(pmVar28->total + -8));\n          pmStack_2134 = (md5_ctx *)(((int)pmVar31->total + (int)(pmVar22->total + -8)) * 3 + 2);\n          pmVar27 = (md5_ctx *)0xfa0;\n          local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n          pmStack_2118 = (md5_ctx *)0x55555555;\n          pmVar32 = (md5_ctx *)(uint)(pmVar26 < pmStack_2120);\n          pmStack_213c = pmVar26;\n          plStack_2114 = line_1;\n          pmStack_2110 = pmVar26;\n          pmStack_210c = pmVar28;\n          pmStack_2108 = pmVar22;\n          pmStack_2104 = pmVar31;\n          pmStack_2100 = pmVar24;\n          pmStack_20fc = pmVar23;\n          pmStack_20ec = pmVar30;\n          goto LAB_00017c30;\n        }\n        if (*(char *)&line_1[2].text != '\0') {\n          local_2158 = filevercmp((char *)pmVar26,(char *)pmVar28);\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }\n        if (pmVar22 == (md5_ctx *)0x0) {\n          local_2158 = -(uint)(pmVar31 != (md5_ctx *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pmVar31 == (md5_ctx *)0x0) goto LAB_000179f8;\n        pcVar16 = (char *)((int)&pmVar31->A + 1);\n        pmVar32 = (md5_ctx *)((int)&pmVar22->A + 1);\n        pmVar20 = pmVar28;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }\n      cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }\n      pmVar30 = (md5_ctx *)(PTR_0003e1b4 + 0x6090);\n      iVar11 = find_unit_order((char *)pmVar25);\n      iVar8 = find_unit_order((char *)pmVar32);\n      local_2158 = iVar11 - iVar8;\n      pmVar27 = pmVar25;\n      pmVar29 = pmVar32;\n      local_2150 = pmVar24;\n      local_214c = pmVar23;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }\n      cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }\n    }\n    pcVar16 = *(char **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pmVar20 = *(md5_ctx **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pmVar25,pmVar32,pmVar20,pcVar16);\n    local_2150 = pmVar24;\n    local_214c = pmVar23;\n    if (pmVar23 != (md5_ctx *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pmVar24 != (md5_ctx *)0x0) goto LAB_000175e4;\n    *(char *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = cVar1;\n    *(char *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = cVar2;\n    pmVar28 = pmVar22;\n    pmVar32 = pmVar31;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        line_1 = (line *)line_1[2].length;\n        if (line_1 != (line *)0x0) {\n          pmVar30 = (md5_ctx *)a->text;\n          key_00 = (keyfield *)a->length;\n          pmVar29 = (md5_ctx *)b->text;\n          key = (keyfield *)b->length;\n          if (line_1->keybeg == (char *)0xffffffff) {\n            pcVar16 = line_1->text;\n            pmVar25 = (md5_ctx *)\n                      ((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4));\n            pmVar26 = (md5_ctx *)\n                      ((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4));\n          }\n          else {\n            plVar19 = line_1;\n            pmVar25 = (md5_ctx *)limfield((line *)pmVar30,key_00,line_1);\n            pmVar26 = (md5_ctx *)limfield((line *)pmVar29,key,plVar19);\n            pcVar16 = line_1->text;\n          }\n          if (pcVar16 != (char *)0xffffffff) {\n            plVar19 = line_1;\n            pmVar30 = (md5_ctx *)begfield((line *)pmVar30,key_00,line_1);\n            pmVar27 = (md5_ctx *)begfield((line *)pmVar29,key,plVar19);\n            goto LAB_0001743c;\n          }\n          bVar4 = pmVar30 < pmVar25;\n          pmVar27 = pmVar29;\n          if (*(char *)&line_1[1].keybeg == '\0') goto LAB_00017440;\n          pmVar22 = pmVar30;\n          if (pmVar25 <= pmVar30) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)&line_1[1].keylim + 3) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (iVar7 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar11 = (*pcVar14)();\n      pmVar22 = (md5_ctx *)(iVar11 + 1);\n      pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar22->total + -8));\n      if (line_1 == (line *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pmVar27 = pmVar25;\n      if (pmVar27 < pmStack_2118) {\n        pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pmVar26 = (md5_ctx *)xmalloc((size_t)pmVar27);\n      if (pmVar32 != (md5_ctx *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pmVar26,pmStack_213c,pmVar29);\n      }\n      pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n      local_214c = pmVar26;\n      if (local_2150 != (md5_ctx *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pmVar25,pmVar28,pmVar22);\n        if (pmVar32 == (md5_ctx *)0x0) goto LAB_0001809c;\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n        goto LAB_00017c8c;\n      }\n      if (pmVar32 != (md5_ctx *)0x0) {\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\nFUN_00017f2c:\n        if (pmStack_213c < pmStack_2120) {\n          pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n          pmVar30 = pmVar26;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130);\n            md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138);\n            if (local_2158 == 0) {\n              pmVar26 = pmVar22;\n              if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);\n              if (pmVar27 < pmStack_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);\n              pmVar29 = (md5_ctx *)(iVar11 + 1);\n              if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }\n              pmVar22 = (md5_ctx *)0x0;\n              pmVar25 = pmVar29;\n              if (pmVar27 < pmVar29) goto LAB_00017de0;\nLAB_00018174:\n              pmVar26 = pmVar30;\n              if (pmVar27 < pmVar25) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }\n            pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n            if (pmVar32 == (md5_ctx *)0x0) {\n              if (local_2150 == (md5_ctx *)0x0) break;\nLAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n            }\n            else {\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n            pmVar30 = pmVar26;\n            if (pmStack_211c <= pmVar28) break;\n          } while( true );\n        }\n      }\n      pmStack_213c = pmVar25;\n      local_2150 = pmVar22;\n      pmStack_211c = pmStack_20fc;\n      pmStack_2120 = pmStack_2100;\n      md5_process_bytes(pmVar26,(size_t)pmVar29,pmStack_2130);\n      pmVar27 = (md5_ctx *)dig;\n      md5_finish_ctx(pmStack_2130,pmVar27);\n      md5_process_bytes(pmStack_213c,(size_t)local_2150,pmStack_2138);\n      pmStack_2134 = (md5_ctx *)(dig + 1);\n      md5_finish_ctx(pmStack_2138,pmStack_2134);\n      uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmStack_2134,0x10);\n      pmVar23 = pmStack_20fc;\n      pmVar24 = pmStack_2100;\n      pmVar22 = pmStack_2108;\n      pmVar25 = pmVar29;\n      pmVar30 = pmVar26;\n      pmVar31 = pmStack_2104;\n      pmVar32 = pmStack_2110;\n      pmVar28 = pmStack_210c;\n      line_1 = plStack_2114;\n      if ((uVar12 == 0) && (uVar12 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pmVar27 = (md5_ctx *)(uint)(local_2150 < pmVar29);\n        pmVar25 = local_2150;\n        if (pmVar27 == (md5_ctx *)0x0) {\n          pmVar25 = pmVar29;\n        }\n        uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar26,pmStack_213c,pmVar25);\n        pmVar25 = pmVar29;\n        pmVar30 = pmVar26;\n        pmStack_2138 = pmVar24;\n        pmStack_2134 = pmVar23;\n        if (uVar12 == 0) {\n          uVar12 = (int)pmVar27 - (uint)(pmVar29 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar12;\n      pmVar26 = pmVar32;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pmVar29 = pmVar25;\n      local_2150 = pmVar24;\n      pmStack_213c = pmVar23;\nLAB_000175d8:\n      if (pmVar23 == (md5_ctx *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pmVar28 = pmVar22;\n      pmVar32 = pmVar31;\n    } while( true );\n  }" { (expression_statement "pmVar31 = pmVar29;" (assignment_expression "pmVar31 = pmVar29" identifier = identifier) ;) (if_statement "if ((pmVar23 == (md5_ctx *)0x0) && (pmVar24 == (md5_ctx *)0x0)) {\n      cVar1 = *(char *)&pmVar25->A;\n      *(char *)&pmVar25->A = '\0';\n      cVar2 = *(char *)&pmVar26->A;\n      *(char *)&pmVar26->A = '\0';\n      cVar3 = *(char *)((int)&line_1[1].keybeg + 2);\n      pmVar28 = pmVar27;\n      pmVar26 = pmVar30;\n    }\n    else {\n      pmVar26 = (md5_ctx *)stackbuf;\n      if ((char *)((int)pmVar22 + (int)pmVar29) + 2 < (char *)0xfa1) {\n        local_2154 = (md5_ctx *)0x0;\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n      }\n      else {\n        pmVar26 = (md5_ctx *)xmalloc((size_t)((char *)((int)pmVar22 + (int)pmVar29) + 2));\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n        local_214c = pmVar22;\n        local_2150 = pmVar23;\n        local_2154 = pmVar26;\n      }\n      if (pmVar22 == (md5_ctx *)0x0) {\n        *(char *)&pmVar26->A = '\0';\n      }\n      else {\n        pmVar32 = (md5_ctx *)((int)pmVar30 + (int)pmVar22);\n        pmVar22 = (md5_ctx *)0x0;\n        pmVar25 = pmVar30;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar22->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar26->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar32 != pmVar25);\n        *(undefined1 *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = 0;\n      }\n      if (pmVar29 == (md5_ctx *)0x0) {\n        *(char *)&pmVar28->A = '\0';\n      }\n      else {\n        pmVar29 = (md5_ctx *)((int)pmVar27 + (int)pmVar29);\n        pmVar31 = (md5_ctx *)0x0;\n        pmVar25 = pmVar27;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar31->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar31 = (md5_ctx *)((int)&pmVar31->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar28->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar29 != pmVar25);\n        *(undefined1 *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = 0;\n      }\n      cVar3 = *(char *)((int)&line_1[1].keybeg + 2);\n    }" if (parenthesized_expression "((pmVar23 == (md5_ctx *)0x0) && (pmVar24 == (md5_ctx *)0x0))" ( (binary_expression "(pmVar23 == (md5_ctx *)0x0) && (pmVar24 == (md5_ctx *)0x0)" (parenthesized_expression "(pmVar23 == (md5_ctx *)0x0)" ( (binary_expression "pmVar23 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pmVar24 == (md5_ctx *)0x0)" ( (binary_expression "pmVar24 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      cVar1 = *(char *)&pmVar25->A;\n      *(char *)&pmVar25->A = '\0';\n      cVar2 = *(char *)&pmVar26->A;\n      *(char *)&pmVar26->A = '\0';\n      cVar3 = *(char *)((int)&line_1[1].keybeg + 2);\n      pmVar28 = pmVar27;\n      pmVar26 = pmVar30;\n    }" { (expression_statement "cVar1 = *(char *)&pmVar25->A;" (assignment_expression "cVar1 = *(char *)&pmVar25->A" identifier = (pointer_expression "*(char *)&pmVar25->A" * (cast_expression "(char *)&pmVar25->A" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar25->A" & (field_expression "pmVar25->A" identifier -> field_identifier))))) ;) (expression_statement "*(char *)&pmVar25->A = '\0';" (assignment_expression "*(char *)&pmVar25->A = '\0'" (pointer_expression "*(char *)&pmVar25->A" * (cast_expression "(char *)&pmVar25->A" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar25->A" & (field_expression "pmVar25->A" identifier -> field_identifier)))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar2 = *(char *)&pmVar26->A;" (assignment_expression "cVar2 = *(char *)&pmVar26->A" identifier = (pointer_expression "*(char *)&pmVar26->A" * (cast_expression "(char *)&pmVar26->A" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar26->A" & (field_expression "pmVar26->A" identifier -> field_identifier))))) ;) (expression_statement "*(char *)&pmVar26->A = '\0';" (assignment_expression "*(char *)&pmVar26->A = '\0'" (pointer_expression "*(char *)&pmVar26->A" * (cast_expression "(char *)&pmVar26->A" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar26->A" & (field_expression "pmVar26->A" identifier -> field_identifier)))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar3 = *(char *)((int)&line_1[1].keybeg + 2);" (assignment_expression "cVar3 = *(char *)((int)&line_1[1].keybeg + 2)" identifier = (pointer_expression "*(char *)((int)&line_1[1].keybeg + 2)" * (cast_expression "(char *)((int)&line_1[1].keybeg + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&line_1[1].keybeg + 2)" ( (binary_expression "(int)&line_1[1].keybeg + 2" (cast_expression "(int)&line_1[1].keybeg" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&line_1[1].keybeg" & (field_expression "line_1[1].keybeg" (subscript_expression "line_1[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) (expression_statement "pmVar28 = pmVar27;" (assignment_expression "pmVar28 = pmVar27" identifier = identifier) ;) (expression_statement "pmVar26 = pmVar30;" (assignment_expression "pmVar26 = pmVar30" identifier = identifier) ;) }) (else_clause "else {\n      pmVar26 = (md5_ctx *)stackbuf;\n      if ((char *)((int)pmVar22 + (int)pmVar29) + 2 < (char *)0xfa1) {\n        local_2154 = (md5_ctx *)0x0;\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n      }\n      else {\n        pmVar26 = (md5_ctx *)xmalloc((size_t)((char *)((int)pmVar22 + (int)pmVar29) + 2));\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n        local_214c = pmVar22;\n        local_2150 = pmVar23;\n        local_2154 = pmVar26;\n      }\n      if (pmVar22 == (md5_ctx *)0x0) {\n        *(char *)&pmVar26->A = '\0';\n      }\n      else {\n        pmVar32 = (md5_ctx *)((int)pmVar30 + (int)pmVar22);\n        pmVar22 = (md5_ctx *)0x0;\n        pmVar25 = pmVar30;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar22->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar26->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar32 != pmVar25);\n        *(undefined1 *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = 0;\n      }\n      if (pmVar29 == (md5_ctx *)0x0) {\n        *(char *)&pmVar28->A = '\0';\n      }\n      else {\n        pmVar29 = (md5_ctx *)((int)pmVar27 + (int)pmVar29);\n        pmVar31 = (md5_ctx *)0x0;\n        pmVar25 = pmVar27;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar31->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar31 = (md5_ctx *)((int)&pmVar31->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar28->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar29 != pmVar25);\n        *(undefined1 *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = 0;\n      }\n      cVar3 = *(char *)((int)&line_1[1].keybeg + 2);\n    }" else (compound_statement "{\n      pmVar26 = (md5_ctx *)stackbuf;\n      if ((char *)((int)pmVar22 + (int)pmVar29) + 2 < (char *)0xfa1) {\n        local_2154 = (md5_ctx *)0x0;\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n      }\n      else {\n        pmVar26 = (md5_ctx *)xmalloc((size_t)((char *)((int)pmVar22 + (int)pmVar29) + 2));\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n        local_214c = pmVar22;\n        local_2150 = pmVar23;\n        local_2154 = pmVar26;\n      }\n      if (pmVar22 == (md5_ctx *)0x0) {\n        *(char *)&pmVar26->A = '\0';\n      }\n      else {\n        pmVar32 = (md5_ctx *)((int)pmVar30 + (int)pmVar22);\n        pmVar22 = (md5_ctx *)0x0;\n        pmVar25 = pmVar30;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar22->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar26->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar32 != pmVar25);\n        *(undefined1 *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = 0;\n      }\n      if (pmVar29 == (md5_ctx *)0x0) {\n        *(char *)&pmVar28->A = '\0';\n      }\n      else {\n        pmVar29 = (md5_ctx *)((int)pmVar27 + (int)pmVar29);\n        pmVar31 = (md5_ctx *)0x0;\n        pmVar25 = pmVar27;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar31->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar31 = (md5_ctx *)((int)&pmVar31->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar28->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar29 != pmVar25);\n        *(undefined1 *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = 0;\n      }\n      cVar3 = *(char *)((int)&line_1[1].keybeg + 2);\n    }" { (expression_statement "pmVar26 = (md5_ctx *)stackbuf;" (assignment_expression "pmVar26 = (md5_ctx *)stackbuf" identifier = (cast_expression "(md5_ctx *)stackbuf" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((char *)((int)pmVar22 + (int)pmVar29) + 2 < (char *)0xfa1) {\n        local_2154 = (md5_ctx *)0x0;\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n      }\n      else {\n        pmVar26 = (md5_ctx *)xmalloc((size_t)((char *)((int)pmVar22 + (int)pmVar29) + 2));\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n        local_214c = pmVar22;\n        local_2150 = pmVar23;\n        local_2154 = pmVar26;\n      }" if (parenthesized_expression "((char *)((int)pmVar22 + (int)pmVar29) + 2 < (char *)0xfa1)" ( (binary_expression "(char *)((int)pmVar22 + (int)pmVar29) + 2 < (char *)0xfa1" (binary_expression "(char *)((int)pmVar22 + (int)pmVar29) + 2" (cast_expression "(char *)((int)pmVar22 + (int)pmVar29)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar22 + (int)pmVar29)" ( (binary_expression "(int)pmVar22 + (int)pmVar29" (cast_expression "(int)pmVar22" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pmVar29" ( (type_descriptor "int" primitive_type) ) identifier)) ))) + number_literal) < (cast_expression "(char *)0xfa1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_2154 = (md5_ctx *)0x0;\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n      }" { (expression_statement "local_2154 = (md5_ctx *)0x0;" (assignment_expression "local_2154 = (md5_ctx *)0x0" identifier = (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));" (assignment_expression "pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4))" identifier = (cast_expression "(md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4))" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4))" ( (binary_expression "(char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4)" (cast_expression "(char *)((int)&pmVar22->A + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar22->A + 1)" ( (binary_expression "(int)&pmVar22->A + 1" (cast_expression "(int)&pmVar22->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar22->A" & (field_expression "pmVar22->A" identifier -> field_identifier))) + number_literal) ))) + (cast_expression "(int)(pmVar26->total + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pmVar26->total + -4)" ( (binary_expression "pmVar26->total + -4" (field_expression "pmVar26->total" identifier -> field_identifier) + number_literal) )))) )))) ;) }) (else_clause "else {\n        pmVar26 = (md5_ctx *)xmalloc((size_t)((char *)((int)pmVar22 + (int)pmVar29) + 2));\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n        local_214c = pmVar22;\n        local_2150 = pmVar23;\n        local_2154 = pmVar26;\n      }" else (compound_statement "{\n        pmVar26 = (md5_ctx *)xmalloc((size_t)((char *)((int)pmVar22 + (int)pmVar29) + 2));\n        pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));\n        local_214c = pmVar22;\n        local_2150 = pmVar23;\n        local_2154 = pmVar26;\n      }" { (expression_statement "pmVar26 = (md5_ctx *)xmalloc((size_t)((char *)((int)pmVar22 + (int)pmVar29) + 2));" (assignment_expression "pmVar26 = (md5_ctx *)xmalloc((size_t)((char *)((int)pmVar22 + (int)pmVar29) + 2))" identifier = (cast_expression "(md5_ctx *)xmalloc((size_t)((char *)((int)pmVar22 + (int)pmVar29) + 2))" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((size_t)((char *)((int)pmVar22 + (int)pmVar29) + 2))" identifier (argument_list "((size_t)((char *)((int)pmVar22 + (int)pmVar29) + 2))" ( (cast_expression "(size_t)((char *)((int)pmVar22 + (int)pmVar29) + 2)" ( (type_descriptor "size_t" primitive_type) ) (parenthesized_expression "((char *)((int)pmVar22 + (int)pmVar29) + 2)" ( (binary_expression "(char *)((int)pmVar22 + (int)pmVar29) + 2" (cast_expression "(char *)((int)pmVar22 + (int)pmVar29)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar22 + (int)pmVar29)" ( (binary_expression "(int)pmVar22 + (int)pmVar29" (cast_expression "(int)pmVar22" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pmVar29" ( (type_descriptor "int" primitive_type) ) identifier)) ))) + number_literal) ))) ))))) ;) (expression_statement "pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4));" (assignment_expression "pmVar28 = (md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4))" identifier = (cast_expression "(md5_ctx *)((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4))" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4))" ( (binary_expression "(char *)((int)&pmVar22->A + 1) + (int)(pmVar26->total + -4)" (cast_expression "(char *)((int)&pmVar22->A + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar22->A + 1)" ( (binary_expression "(int)&pmVar22->A + 1" (cast_expression "(int)&pmVar22->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar22->A" & (field_expression "pmVar22->A" identifier -> field_identifier))) + number_literal) ))) + (cast_expression "(int)(pmVar26->total + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pmVar26->total + -4)" ( (binary_expression "pmVar26->total + -4" (field_expression "pmVar26->total" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "local_214c = pmVar22;" (assignment_expression "local_214c = pmVar22" identifier = identifier) ;) (expression_statement "local_2150 = pmVar23;" (assignment_expression "local_2150 = pmVar23" identifier = identifier) ;) (expression_statement "local_2154 = pmVar26;" (assignment_expression "local_2154 = pmVar26" identifier = identifier) ;) }))) (if_statement "if (pmVar22 == (md5_ctx *)0x0) {\n        *(char *)&pmVar26->A = '\0';\n      }\n      else {\n        pmVar32 = (md5_ctx *)((int)pmVar30 + (int)pmVar22);\n        pmVar22 = (md5_ctx *)0x0;\n        pmVar25 = pmVar30;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar22->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar26->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar32 != pmVar25);\n        *(undefined1 *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = 0;\n      }" if (parenthesized_expression "(pmVar22 == (md5_ctx *)0x0)" ( (binary_expression "pmVar22 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(char *)&pmVar26->A = '\0';\n      }" { (expression_statement "*(char *)&pmVar26->A = '\0';" (assignment_expression "*(char *)&pmVar26->A = '\0'" (pointer_expression "*(char *)&pmVar26->A" * (cast_expression "(char *)&pmVar26->A" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar26->A" & (field_expression "pmVar26->A" identifier -> field_identifier)))) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n        pmVar32 = (md5_ctx *)((int)pmVar30 + (int)pmVar22);\n        pmVar22 = (md5_ctx *)0x0;\n        pmVar25 = pmVar30;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar22->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar26->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar32 != pmVar25);\n        *(undefined1 *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = 0;\n      }" else (compound_statement "{\n        pmVar32 = (md5_ctx *)((int)pmVar30 + (int)pmVar22);\n        pmVar22 = (md5_ctx *)0x0;\n        pmVar25 = pmVar30;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar22->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar26->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar32 != pmVar25);\n        *(undefined1 *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = 0;\n      }" { (expression_statement "pmVar32 = (md5_ctx *)((int)pmVar30 + (int)pmVar22);" (assignment_expression "pmVar32 = (md5_ctx *)((int)pmVar30 + (int)pmVar22)" identifier = (cast_expression "(md5_ctx *)((int)pmVar30 + (int)pmVar22)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar30 + (int)pmVar22)" ( (binary_expression "(int)pmVar30 + (int)pmVar22" (cast_expression "(int)pmVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pmVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pmVar22 = (md5_ctx *)0x0;" (assignment_expression "pmVar22 = (md5_ctx *)0x0" identifier = (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pmVar25 = pmVar30;" (assignment_expression "pmVar25 = pmVar30" identifier = identifier) ;) (do_statement "do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar22->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar26->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar32 != pmVar25);" do (compound_statement "{\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar22->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar26->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        }" { (expression_statement "bVar13 = *(byte *)&pmVar25->A;" (assignment_expression "bVar13 = *(byte *)&pmVar25->A" identifier = (pointer_expression "*(byte *)&pmVar25->A" * (cast_expression "(byte *)&pmVar25->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar25->A" & (field_expression "pmVar25->A" identifier -> field_identifier))))) ;) (if_statement "if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar22->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar26->total + -8)) = bVar13;\n          }" if (parenthesized_expression "((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0'))" ( (binary_expression "(pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')" (parenthesized_expression "(pmVar23 == (md5_ctx *)0x0)" ( (binary_expression "pmVar23 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')" ( (binary_expression "*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0'" (pointer_expression "*(char *)((int)pmVar23->total + (bVar13 - 0x10))" * (cast_expression "(char *)((int)pmVar23->total + (bVar13 - 0x10))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar23->total + (bVar13 - 0x10))" ( (binary_expression "(int)pmVar23->total + (bVar13 - 0x10)" (cast_expression "(int)pmVar23->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar23->total" identifier -> field_identifier)) + (parenthesized_expression "(bVar13 - 0x10)" ( (binary_expression "bVar13 - 0x10" identifier - number_literal) ))) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            puVar10 = pmVar22->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar26->total + -8)) = bVar13;\n          }" { (expression_statement "puVar10 = pmVar22->total;" (assignment_expression "puVar10 = pmVar22->total" identifier = (field_expression "pmVar22->total" identifier -> field_identifier)) ;) (if_statement "if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }" if (parenthesized_expression "(pmVar24 != (md5_ctx *)0x0)" ( (binary_expression "pmVar24 != (md5_ctx *)0x0" identifier != (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }" { (expression_statement "bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));" (assignment_expression "bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10))" identifier = (pointer_expression "*(byte *)((int)pmVar24->total + (bVar13 - 0x10))" * (cast_expression "(byte *)((int)pmVar24->total + (bVar13 - 0x10))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar24->total + (bVar13 - 0x10))" ( (binary_expression "(int)pmVar24->total + (bVar13 - 0x10)" (cast_expression "(int)pmVar24->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar24->total" identifier -> field_identifier)) + (parenthesized_expression "(bVar13 - 0x10)" ( (binary_expression "bVar13 - 0x10" identifier - number_literal) ))) ))))) ;) })) (expression_statement "pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);" (assignment_expression "pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1)" identifier = (cast_expression "(md5_ctx *)((int)&pmVar22->A + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar22->A + 1)" ( (binary_expression "(int)&pmVar22->A + 1" (cast_expression "(int)&pmVar22->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar22->A" & (field_expression "pmVar22->A" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "*(byte *)((int)puVar10 + (int)(pmVar26->total + -8)) = bVar13;" (assignment_expression "*(byte *)((int)puVar10 + (int)(pmVar26->total + -8)) = bVar13" (pointer_expression "*(byte *)((int)puVar10 + (int)(pmVar26->total + -8))" * (cast_expression "(byte *)((int)puVar10 + (int)(pmVar26->total + -8))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + (int)(pmVar26->total + -8))" ( (binary_expression "(int)puVar10 + (int)(pmVar26->total + -8)" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pmVar26->total + -8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pmVar26->total + -8)" ( (binary_expression "pmVar26->total + -8" (field_expression "pmVar26->total" identifier -> field_identifier) + number_literal) )))) )))) = identifier) ;) })) (expression_statement "pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);" (assignment_expression "pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1)" identifier = (cast_expression "(md5_ctx *)((int)&pmVar25->A + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar25->A + 1)" ( (binary_expression "(int)&pmVar25->A + 1" (cast_expression "(int)&pmVar25->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar25->A" & (field_expression "pmVar25->A" identifier -> field_identifier))) + number_literal) )))) ;) }) while (parenthesized_expression "(pmVar32 != pmVar25)" ( (binary_expression "pmVar32 != pmVar25" identifier != identifier) )) ;) (expression_statement "*(undefined1 *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = 0;" (assignment_expression "*(undefined1 *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = 0" (pointer_expression "*(undefined1 *)((int)pmVar22->total + (int)(pmVar26->total + -8))" * (cast_expression "(undefined1 *)((int)pmVar22->total + (int)(pmVar26->total + -8))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar22->total + (int)(pmVar26->total + -8))" ( (binary_expression "(int)pmVar22->total + (int)(pmVar26->total + -8)" (cast_expression "(int)pmVar22->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar22->total" identifier -> field_identifier)) + (cast_expression "(int)(pmVar26->total + -8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pmVar26->total + -8)" ( (binary_expression "pmVar26->total + -8" (field_expression "pmVar26->total" identifier -> field_identifier) + number_literal) )))) )))) = number_literal) ;) }))) (if_statement "if (pmVar29 == (md5_ctx *)0x0) {\n        *(char *)&pmVar28->A = '\0';\n      }\n      else {\n        pmVar29 = (md5_ctx *)((int)pmVar27 + (int)pmVar29);\n        pmVar31 = (md5_ctx *)0x0;\n        pmVar25 = pmVar27;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar31->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar31 = (md5_ctx *)((int)&pmVar31->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar28->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar29 != pmVar25);\n        *(undefined1 *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = 0;\n      }" if (parenthesized_expression "(pmVar29 == (md5_ctx *)0x0)" ( (binary_expression "pmVar29 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(char *)&pmVar28->A = '\0';\n      }" { (expression_statement "*(char *)&pmVar28->A = '\0';" (assignment_expression "*(char *)&pmVar28->A = '\0'" (pointer_expression "*(char *)&pmVar28->A" * (cast_expression "(char *)&pmVar28->A" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar28->A" & (field_expression "pmVar28->A" identifier -> field_identifier)))) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n        pmVar29 = (md5_ctx *)((int)pmVar27 + (int)pmVar29);\n        pmVar31 = (md5_ctx *)0x0;\n        pmVar25 = pmVar27;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar31->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar31 = (md5_ctx *)((int)&pmVar31->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar28->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar29 != pmVar25);\n        *(undefined1 *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = 0;\n      }" else (compound_statement "{\n        pmVar29 = (md5_ctx *)((int)pmVar27 + (int)pmVar29);\n        pmVar31 = (md5_ctx *)0x0;\n        pmVar25 = pmVar27;\n        do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar31->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar31 = (md5_ctx *)((int)&pmVar31->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar28->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar29 != pmVar25);\n        *(undefined1 *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = 0;\n      }" { (expression_statement "pmVar29 = (md5_ctx *)((int)pmVar27 + (int)pmVar29);" (assignment_expression "pmVar29 = (md5_ctx *)((int)pmVar27 + (int)pmVar29)" identifier = (cast_expression "(md5_ctx *)((int)pmVar27 + (int)pmVar29)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar27 + (int)pmVar29)" ( (binary_expression "(int)pmVar27 + (int)pmVar29" (cast_expression "(int)pmVar27" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pmVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pmVar31 = (md5_ctx *)0x0;" (assignment_expression "pmVar31 = (md5_ctx *)0x0" identifier = (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pmVar25 = pmVar27;" (assignment_expression "pmVar25 = pmVar27" identifier = identifier) ;) (do_statement "do {\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar31->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar31 = (md5_ctx *)((int)&pmVar31->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar28->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        } while (pmVar29 != pmVar25);" do (compound_statement "{\n          bVar13 = *(byte *)&pmVar25->A;\n          if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar31->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar31 = (md5_ctx *)((int)&pmVar31->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar28->total + -8)) = bVar13;\n          }\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        }" { (expression_statement "bVar13 = *(byte *)&pmVar25->A;" (assignment_expression "bVar13 = *(byte *)&pmVar25->A" identifier = (pointer_expression "*(byte *)&pmVar25->A" * (cast_expression "(byte *)&pmVar25->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar25->A" & (field_expression "pmVar25->A" identifier -> field_identifier))))) ;) (if_statement "if ((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')) {\n            puVar10 = pmVar31->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar31 = (md5_ctx *)((int)&pmVar31->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar28->total + -8)) = bVar13;\n          }" if (parenthesized_expression "((pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0'))" ( (binary_expression "(pmVar23 == (md5_ctx *)0x0) ||\n             (*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')" (parenthesized_expression "(pmVar23 == (md5_ctx *)0x0)" ( (binary_expression "pmVar23 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0')" ( (binary_expression "*(char *)((int)pmVar23->total + (bVar13 - 0x10)) == '\0'" (pointer_expression "*(char *)((int)pmVar23->total + (bVar13 - 0x10))" * (cast_expression "(char *)((int)pmVar23->total + (bVar13 - 0x10))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar23->total + (bVar13 - 0x10))" ( (binary_expression "(int)pmVar23->total + (bVar13 - 0x10)" (cast_expression "(int)pmVar23->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar23->total" identifier -> field_identifier)) + (parenthesized_expression "(bVar13 - 0x10)" ( (binary_expression "bVar13 - 0x10" identifier - number_literal) ))) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            puVar10 = pmVar31->total;\n            if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }\n            pmVar31 = (md5_ctx *)((int)&pmVar31->A + 1);\n            *(byte *)((int)puVar10 + (int)(pmVar28->total + -8)) = bVar13;\n          }" { (expression_statement "puVar10 = pmVar31->total;" (assignment_expression "puVar10 = pmVar31->total" identifier = (field_expression "pmVar31->total" identifier -> field_identifier)) ;) (if_statement "if (pmVar24 != (md5_ctx *)0x0) {\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }" if (parenthesized_expression "(pmVar24 != (md5_ctx *)0x0)" ( (binary_expression "pmVar24 != (md5_ctx *)0x0" identifier != (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));\n            }" { (expression_statement "bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10));" (assignment_expression "bVar13 = *(byte *)((int)pmVar24->total + (bVar13 - 0x10))" identifier = (pointer_expression "*(byte *)((int)pmVar24->total + (bVar13 - 0x10))" * (cast_expression "(byte *)((int)pmVar24->total + (bVar13 - 0x10))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar24->total + (bVar13 - 0x10))" ( (binary_expression "(int)pmVar24->total + (bVar13 - 0x10)" (cast_expression "(int)pmVar24->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar24->total" identifier -> field_identifier)) + (parenthesized_expression "(bVar13 - 0x10)" ( (binary_expression "bVar13 - 0x10" identifier - number_literal) ))) ))))) ;) })) (expression_statement "pmVar31 = (md5_ctx *)((int)&pmVar31->A + 1);" (assignment_expression "pmVar31 = (md5_ctx *)((int)&pmVar31->A + 1)" identifier = (cast_expression "(md5_ctx *)((int)&pmVar31->A + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar31->A + 1)" ( (binary_expression "(int)&pmVar31->A + 1" (cast_expression "(int)&pmVar31->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar31->A" & (field_expression "pmVar31->A" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "*(byte *)((int)puVar10 + (int)(pmVar28->total + -8)) = bVar13;" (assignment_expression "*(byte *)((int)puVar10 + (int)(pmVar28->total + -8)) = bVar13" (pointer_expression "*(byte *)((int)puVar10 + (int)(pmVar28->total + -8))" * (cast_expression "(byte *)((int)puVar10 + (int)(pmVar28->total + -8))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + (int)(pmVar28->total + -8))" ( (binary_expression "(int)puVar10 + (int)(pmVar28->total + -8)" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(pmVar28->total + -8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pmVar28->total + -8)" ( (binary_expression "pmVar28->total + -8" (field_expression "pmVar28->total" identifier -> field_identifier) + number_literal) )))) )))) = identifier) ;) })) (expression_statement "pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);" (assignment_expression "pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1)" identifier = (cast_expression "(md5_ctx *)((int)&pmVar25->A + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar25->A + 1)" ( (binary_expression "(int)&pmVar25->A + 1" (cast_expression "(int)&pmVar25->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar25->A" & (field_expression "pmVar25->A" identifier -> field_identifier))) + number_literal) )))) ;) }) while (parenthesized_expression "(pmVar29 != pmVar25)" ( (binary_expression "pmVar29 != pmVar25" identifier != identifier) )) ;) (expression_statement "*(undefined1 *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = 0;" (assignment_expression "*(undefined1 *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = 0" (pointer_expression "*(undefined1 *)((int)pmVar31->total + (int)(pmVar28->total + -8))" * (cast_expression "(undefined1 *)((int)pmVar31->total + (int)(pmVar28->total + -8))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar31->total + (int)(pmVar28->total + -8))" ( (binary_expression "(int)pmVar31->total + (int)(pmVar28->total + -8)" (cast_expression "(int)pmVar31->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar31->total" identifier -> field_identifier)) + (cast_expression "(int)(pmVar28->total + -8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pmVar28->total + -8)" ( (binary_expression "pmVar28->total + -8" (field_expression "pmVar28->total" identifier -> field_identifier) + number_literal) )))) )))) = number_literal) ;) }))) (expression_statement "cVar3 = *(char *)((int)&line_1[1].keybeg + 2);" (assignment_expression "cVar3 = *(char *)((int)&line_1[1].keybeg + 2)" identifier = (pointer_expression "*(char *)((int)&line_1[1].keybeg + 2)" * (cast_expression "(char *)((int)&line_1[1].keybeg + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&line_1[1].keybeg + 2)" ( (binary_expression "(int)&line_1[1].keybeg + 2" (cast_expression "(int)&line_1[1].keybeg" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&line_1[1].keybeg" & (field_expression "line_1[1].keybeg" (subscript_expression "line_1[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) }))) (expression_statement "pmVar25 = pmVar26;" (assignment_expression "pmVar25 = pmVar26" identifier = identifier) ;) (expression_statement "pmVar32 = pmVar28;" (assignment_expression "pmVar32 = pmVar28" identifier = identifier) ;) (if_statement "if (cVar3 == '\0') {\n      if (*(char *)&line_1[1].keylim != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pmVar26,&ea);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pmVar28,&eb);\n        if (pmVar26 == (md5_ctx *)ea) {\n          local_2158 = -(uint)(pmVar28 != (md5_ctx *)eb);\n          local_2150 = pmVar23;\n          goto LAB_000175d8;\n        }\n        local_2150 = pmVar23;\n        if (pmVar28 != (md5_ctx *)eb) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)&line_1[1].keylim + 1) == '\0') {\n        if (*(char *)((int)&line_1[1].keylim + 2) != '\0') {\n          pcVar33 = pcVar15;\n          iVar11 = (*pcVar15)(pmVar26,0);\n          iVar8 = (*pcVar33)(pmVar28,0);\n          local_2158 = iVar11 - iVar8;\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)&line_1[1].keybeg + 3) != '\0') {\n          pmStack_2138 = s + 1;\n          puVar10 = (uint32_t *)(puVar5 + -0x1a38);\n          pmVar25 = pmStack_2138;\n          do {\n            pmVar27 = pmVar25;\n            puVar9 = puVar10;\n            puVar10 = puVar9 + 4;\n            uVar21 = puVar9[1];\n            uVar18 = puVar9[2];\n            uVar17 = puVar9[3];\n            pmVar27->A = *puVar9;\n            pmVar27->B = uVar21;\n            pmVar27->C = uVar18;\n            pmVar27->D = uVar17;\n            pmVar25 = (md5_ctx *)pmVar27->total;\n          } while (puVar10 != (uint32_t *)(puVar5 + -0x19a8));\n          pmStack_2130 = s;\n          uVar18 = puVar9[5];\n          uVar17 = puVar9[6];\n          pmVar27->total[0] = *puVar10;\n          pmVar27->total[1] = uVar18;\n          pmVar27->buflen = uVar17;\n          pmVar25 = pmStack_2138;\n          pmVar27 = pmStack_2130;\n          do {\n            pmVar29 = pmVar27;\n            pmVar30 = pmVar25;\n            pmVar25 = (md5_ctx *)pmVar30->total;\n            uVar21 = pmVar30->B;\n            uVar18 = pmVar30->C;\n            uVar17 = pmVar30->D;\n            pmVar29->A = pmVar30->A;\n            pmVar29->B = uVar21;\n            pmVar29->C = uVar18;\n            pmVar29->D = uVar17;\n            pmVar27 = (md5_ctx *)pmVar29->total;\n          } while (pmVar25 != (md5_ctx *)(s[1].buffer + 0x1d));\n          uVar18 = pmVar30->total[1];\n          uVar17 = pmVar30->buflen;\n          cVar3 = puVar5[-0x14df];\n          pmVar29->total[0] = *(uint32_t *)pmVar25;\n          pmVar29->total[1] = uVar18;\n          pmVar29->buflen = uVar17;\n          if (cVar3 == '\0') {\n            pmVar25 = (md5_ctx *)(dig + 1);\n            md5_process_bytes(pmVar26,(size_t)pmVar22,pmStack_2130);\n            pmVar27 = (md5_ctx *)dig;\n            md5_finish_ctx(pmStack_2130,pmVar27);\n            md5_process_bytes(pmVar28,(size_t)pmVar31,pmStack_2138);\n            md5_finish_ctx(pmStack_2138,pmVar25);\n            uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmVar25,0x10);\n            local_214c = (md5_ctx *)0x0;\n            pmVar29 = pmVar22;\n            pmVar30 = pmStack_2138;\n            pmVar32 = pmVar26;\n            local_2150 = pmVar31;\n            pmStack_213c = pmVar28;\n            if (uVar12 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          pmStack_2120 = (md5_ctx *)((int)pmVar22->total + (int)(pmVar26->total + -8));\n          local_214c = (md5_ctx *)0x0;\n          pmVar30 = (md5_ctx *)stackbuf_1;\n          local_2158 = 0;\n          pmStack_211c = (md5_ctx *)((int)pmVar31->total + (int)(pmVar28->total + -8));\n          pmStack_2134 = (md5_ctx *)(((int)pmVar31->total + (int)(pmVar22->total + -8)) * 3 + 2);\n          pmVar27 = (md5_ctx *)0xfa0;\n          local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n          pmStack_2118 = (md5_ctx *)0x55555555;\n          pmVar32 = (md5_ctx *)(uint)(pmVar26 < pmStack_2120);\n          pmStack_213c = pmVar26;\n          plStack_2114 = line_1;\n          pmStack_2110 = pmVar26;\n          pmStack_210c = pmVar28;\n          pmStack_2108 = pmVar22;\n          pmStack_2104 = pmVar31;\n          pmStack_2100 = pmVar24;\n          pmStack_20fc = pmVar23;\n          pmStack_20ec = pmVar30;\n          goto LAB_00017c30;\n        }\n        if (*(char *)&line_1[2].text != '\0') {\n          local_2158 = filevercmp((char *)pmVar26,(char *)pmVar28);\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }\n        if (pmVar22 == (md5_ctx *)0x0) {\n          local_2158 = -(uint)(pmVar31 != (md5_ctx *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pmVar31 == (md5_ctx *)0x0) goto LAB_000179f8;\n        pcVar16 = (char *)((int)&pmVar31->A + 1);\n        pmVar32 = (md5_ctx *)((int)&pmVar22->A + 1);\n        pmVar20 = pmVar28;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }\n      cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }\n      pmVar30 = (md5_ctx *)(PTR_0003e1b4 + 0x6090);\n      iVar11 = find_unit_order((char *)pmVar25);\n      iVar8 = find_unit_order((char *)pmVar32);\n      local_2158 = iVar11 - iVar8;\n      pmVar27 = pmVar25;\n      pmVar29 = pmVar32;\n      local_2150 = pmVar24;\n      local_214c = pmVar23;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }\n      cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }\n    }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (*(char *)&line_1[1].keylim != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pmVar26,&ea);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pmVar28,&eb);\n        if (pmVar26 == (md5_ctx *)ea) {\n          local_2158 = -(uint)(pmVar28 != (md5_ctx *)eb);\n          local_2150 = pmVar23;\n          goto LAB_000175d8;\n        }\n        local_2150 = pmVar23;\n        if (pmVar28 != (md5_ctx *)eb) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)&line_1[1].keylim + 1) == '\0') {\n        if (*(char *)((int)&line_1[1].keylim + 2) != '\0') {\n          pcVar33 = pcVar15;\n          iVar11 = (*pcVar15)(pmVar26,0);\n          iVar8 = (*pcVar33)(pmVar28,0);\n          local_2158 = iVar11 - iVar8;\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)&line_1[1].keybeg + 3) != '\0') {\n          pmStack_2138 = s + 1;\n          puVar10 = (uint32_t *)(puVar5 + -0x1a38);\n          pmVar25 = pmStack_2138;\n          do {\n            pmVar27 = pmVar25;\n            puVar9 = puVar10;\n            puVar10 = puVar9 + 4;\n            uVar21 = puVar9[1];\n            uVar18 = puVar9[2];\n            uVar17 = puVar9[3];\n            pmVar27->A = *puVar9;\n            pmVar27->B = uVar21;\n            pmVar27->C = uVar18;\n            pmVar27->D = uVar17;\n            pmVar25 = (md5_ctx *)pmVar27->total;\n          } while (puVar10 != (uint32_t *)(puVar5 + -0x19a8));\n          pmStack_2130 = s;\n          uVar18 = puVar9[5];\n          uVar17 = puVar9[6];\n          pmVar27->total[0] = *puVar10;\n          pmVar27->total[1] = uVar18;\n          pmVar27->buflen = uVar17;\n          pmVar25 = pmStack_2138;\n          pmVar27 = pmStack_2130;\n          do {\n            pmVar29 = pmVar27;\n            pmVar30 = pmVar25;\n            pmVar25 = (md5_ctx *)pmVar30->total;\n            uVar21 = pmVar30->B;\n            uVar18 = pmVar30->C;\n            uVar17 = pmVar30->D;\n            pmVar29->A = pmVar30->A;\n            pmVar29->B = uVar21;\n            pmVar29->C = uVar18;\n            pmVar29->D = uVar17;\n            pmVar27 = (md5_ctx *)pmVar29->total;\n          } while (pmVar25 != (md5_ctx *)(s[1].buffer + 0x1d));\n          uVar18 = pmVar30->total[1];\n          uVar17 = pmVar30->buflen;\n          cVar3 = puVar5[-0x14df];\n          pmVar29->total[0] = *(uint32_t *)pmVar25;\n          pmVar29->total[1] = uVar18;\n          pmVar29->buflen = uVar17;\n          if (cVar3 == '\0') {\n            pmVar25 = (md5_ctx *)(dig + 1);\n            md5_process_bytes(pmVar26,(size_t)pmVar22,pmStack_2130);\n            pmVar27 = (md5_ctx *)dig;\n            md5_finish_ctx(pmStack_2130,pmVar27);\n            md5_process_bytes(pmVar28,(size_t)pmVar31,pmStack_2138);\n            md5_finish_ctx(pmStack_2138,pmVar25);\n            uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmVar25,0x10);\n            local_214c = (md5_ctx *)0x0;\n            pmVar29 = pmVar22;\n            pmVar30 = pmStack_2138;\n            pmVar32 = pmVar26;\n            local_2150 = pmVar31;\n            pmStack_213c = pmVar28;\n            if (uVar12 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          pmStack_2120 = (md5_ctx *)((int)pmVar22->total + (int)(pmVar26->total + -8));\n          local_214c = (md5_ctx *)0x0;\n          pmVar30 = (md5_ctx *)stackbuf_1;\n          local_2158 = 0;\n          pmStack_211c = (md5_ctx *)((int)pmVar31->total + (int)(pmVar28->total + -8));\n          pmStack_2134 = (md5_ctx *)(((int)pmVar31->total + (int)(pmVar22->total + -8)) * 3 + 2);\n          pmVar27 = (md5_ctx *)0xfa0;\n          local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n          pmStack_2118 = (md5_ctx *)0x55555555;\n          pmVar32 = (md5_ctx *)(uint)(pmVar26 < pmStack_2120);\n          pmStack_213c = pmVar26;\n          plStack_2114 = line_1;\n          pmStack_2110 = pmVar26;\n          pmStack_210c = pmVar28;\n          pmStack_2108 = pmVar22;\n          pmStack_2104 = pmVar31;\n          pmStack_2100 = pmVar24;\n          pmStack_20fc = pmVar23;\n          pmStack_20ec = pmVar30;\n          goto LAB_00017c30;\n        }\n        if (*(char *)&line_1[2].text != '\0') {\n          local_2158 = filevercmp((char *)pmVar26,(char *)pmVar28);\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }\n        if (pmVar22 == (md5_ctx *)0x0) {\n          local_2158 = -(uint)(pmVar31 != (md5_ctx *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pmVar31 == (md5_ctx *)0x0) goto LAB_000179f8;\n        pcVar16 = (char *)((int)&pmVar31->A + 1);\n        pmVar32 = (md5_ctx *)((int)&pmVar22->A + 1);\n        pmVar20 = pmVar28;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }\n      cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }\n      pmVar30 = (md5_ctx *)(PTR_0003e1b4 + 0x6090);\n      iVar11 = find_unit_order((char *)pmVar25);\n      iVar8 = find_unit_order((char *)pmVar32);\n      local_2158 = iVar11 - iVar8;\n      pmVar27 = pmVar25;\n      pmVar29 = pmVar32;\n      local_2150 = pmVar24;\n      local_214c = pmVar23;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }" { (if_statement "if (*(char *)&line_1[1].keylim != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pmVar26,&ea);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pmVar28,&eb);\n        if (pmVar26 == (md5_ctx *)ea) {\n          local_2158 = -(uint)(pmVar28 != (md5_ctx *)eb);\n          local_2150 = pmVar23;\n          goto LAB_000175d8;\n        }\n        local_2150 = pmVar23;\n        if (pmVar28 != (md5_ctx *)eb) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }" if (parenthesized_expression "(*(char *)&line_1[1].keylim != '\0')" ( (binary_expression "*(char *)&line_1[1].keylim != '\0'" (pointer_expression "*(char *)&line_1[1].keylim" * (cast_expression "(char *)&line_1[1].keylim" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&line_1[1].keylim" & (field_expression "line_1[1].keylim" (subscript_expression "line_1[1]" identifier [ number_literal ]) . field_identifier)))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pmVar26,&ea);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pmVar28,&eb);\n        if (pmVar26 == (md5_ctx *)ea) {\n          local_2158 = -(uint)(pmVar28 != (md5_ctx *)eb);\n          local_2150 = pmVar23;\n          goto LAB_000175d8;\n        }\n        local_2150 = pmVar23;\n        if (pmVar28 != (md5_ctx *)eb) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }" { (expression_statement "dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pmVar26,&ea);" (assignment_expression "dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pmVar26,&ea)" identifier = (cast_expression "(double)(*(code *)PTR_strtold_0003e524)(pmVar26,&ea)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_strtold_0003e524)(pmVar26,&ea)" (parenthesized_expression "(*(code *)PTR_strtold_0003e524)" ( (pointer_expression "*(code *)PTR_strtold_0003e524" * (cast_expression "(code *)PTR_strtold_0003e524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar26,&ea)" ( identifier , (pointer_expression "&ea" & identifier) ))))) ;) (expression_statement "dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pmVar28,&eb);" (assignment_expression "dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pmVar28,&eb)" identifier = (cast_expression "(double)(*(code *)PTR_strtold_0003e524)(pmVar28,&eb)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_strtold_0003e524)(pmVar28,&eb)" (parenthesized_expression "(*(code *)PTR_strtold_0003e524)" ( (pointer_expression "*(code *)PTR_strtold_0003e524" * (cast_expression "(code *)PTR_strtold_0003e524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar28,&eb)" ( identifier , (pointer_expression "&eb" & identifier) ))))) ;) (if_statement "if (pmVar26 == (md5_ctx *)ea) {\n          local_2158 = -(uint)(pmVar28 != (md5_ctx *)eb);\n          local_2150 = pmVar23;\n          goto LAB_000175d8;\n        }" if (parenthesized_expression "(pmVar26 == (md5_ctx *)ea)" ( (binary_expression "pmVar26 == (md5_ctx *)ea" identifier == (cast_expression "(md5_ctx *)ea" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          local_2158 = -(uint)(pmVar28 != (md5_ctx *)eb);\n          local_2150 = pmVar23;\n          goto LAB_000175d8;\n        }" { (expression_statement "local_2158 = -(uint)(pmVar28 != (md5_ctx *)eb);" (assignment_expression "local_2158 = -(uint)(pmVar28 != (md5_ctx *)eb)" identifier = (unary_expression "-(uint)(pmVar28 != (md5_ctx *)eb)" - (call_expression "(uint)(pmVar28 != (md5_ctx *)eb)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar28 != (md5_ctx *)eb)" ( (binary_expression "pmVar28 != (md5_ctx *)eb" identifier != (cast_expression "(md5_ctx *)eb" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))))) ;) (expression_statement "local_2150 = pmVar23;" (assignment_expression "local_2150 = pmVar23" identifier = identifier) ;) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) (expression_statement "local_2150 = pmVar23;" (assignment_expression "local_2150 = pmVar23" identifier = identifier) ;) (if_statement "if (pmVar28 != (md5_ctx *)eb) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }" if (parenthesized_expression "(pmVar28 != (md5_ctx *)eb)" ( (binary_expression "pmVar28 != (md5_ctx *)eb" identifier != (cast_expression "(md5_ctx *)eb" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }" { (if_statement "if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }" if (parenthesized_expression "(dVar35 <= dVar34)" ( (binary_expression "dVar35 <= dVar34" identifier <= identifier) )) (compound_statement "{\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }" { (if_statement "if (dVar35 < dVar34) goto LAB_000179f8;" if (parenthesized_expression "(dVar35 < dVar34)" ( (binary_expression "dVar35 < dVar34" identifier < identifier) )) (goto_statement "goto LAB_000179f8;" goto statement_identifier ;)) (if_statement "if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }" if (parenthesized_expression "(dVar34 == dVar35)" ( (binary_expression "dVar34 == dVar35" identifier == identifier) )) (compound_statement "{\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }" { (expression_statement "local_2158 = 0;" (assignment_expression "local_2158 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) })) (expression_statement "local_2158 = 0xffffffff;" (assignment_expression "local_2158 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) (labeled_statement "LAB_000179f8:\n        local_2158 = 1;" statement_identifier : (expression_statement "local_2158 = 1;" (assignment_expression "local_2158 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)&line_1[1].keylim + 1) == '\0') {\n        if (*(char *)((int)&line_1[1].keylim + 2) != '\0') {\n          pcVar33 = pcVar15;\n          iVar11 = (*pcVar15)(pmVar26,0);\n          iVar8 = (*pcVar33)(pmVar28,0);\n          local_2158 = iVar11 - iVar8;\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)&line_1[1].keybeg + 3) != '\0') {\n          pmStack_2138 = s + 1;\n          puVar10 = (uint32_t *)(puVar5 + -0x1a38);\n          pmVar25 = pmStack_2138;\n          do {\n            pmVar27 = pmVar25;\n            puVar9 = puVar10;\n            puVar10 = puVar9 + 4;\n            uVar21 = puVar9[1];\n            uVar18 = puVar9[2];\n            uVar17 = puVar9[3];\n            pmVar27->A = *puVar9;\n            pmVar27->B = uVar21;\n            pmVar27->C = uVar18;\n            pmVar27->D = uVar17;\n            pmVar25 = (md5_ctx *)pmVar27->total;\n          } while (puVar10 != (uint32_t *)(puVar5 + -0x19a8));\n          pmStack_2130 = s;\n          uVar18 = puVar9[5];\n          uVar17 = puVar9[6];\n          pmVar27->total[0] = *puVar10;\n          pmVar27->total[1] = uVar18;\n          pmVar27->buflen = uVar17;\n          pmVar25 = pmStack_2138;\n          pmVar27 = pmStack_2130;\n          do {\n            pmVar29 = pmVar27;\n            pmVar30 = pmVar25;\n            pmVar25 = (md5_ctx *)pmVar30->total;\n            uVar21 = pmVar30->B;\n            uVar18 = pmVar30->C;\n            uVar17 = pmVar30->D;\n            pmVar29->A = pmVar30->A;\n            pmVar29->B = uVar21;\n            pmVar29->C = uVar18;\n            pmVar29->D = uVar17;\n            pmVar27 = (md5_ctx *)pmVar29->total;\n          } while (pmVar25 != (md5_ctx *)(s[1].buffer + 0x1d));\n          uVar18 = pmVar30->total[1];\n          uVar17 = pmVar30->buflen;\n          cVar3 = puVar5[-0x14df];\n          pmVar29->total[0] = *(uint32_t *)pmVar25;\n          pmVar29->total[1] = uVar18;\n          pmVar29->buflen = uVar17;\n          if (cVar3 == '\0') {\n            pmVar25 = (md5_ctx *)(dig + 1);\n            md5_process_bytes(pmVar26,(size_t)pmVar22,pmStack_2130);\n            pmVar27 = (md5_ctx *)dig;\n            md5_finish_ctx(pmStack_2130,pmVar27);\n            md5_process_bytes(pmVar28,(size_t)pmVar31,pmStack_2138);\n            md5_finish_ctx(pmStack_2138,pmVar25);\n            uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmVar25,0x10);\n            local_214c = (md5_ctx *)0x0;\n            pmVar29 = pmVar22;\n            pmVar30 = pmStack_2138;\n            pmVar32 = pmVar26;\n            local_2150 = pmVar31;\n            pmStack_213c = pmVar28;\n            if (uVar12 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          pmStack_2120 = (md5_ctx *)((int)pmVar22->total + (int)(pmVar26->total + -8));\n          local_214c = (md5_ctx *)0x0;\n          pmVar30 = (md5_ctx *)stackbuf_1;\n          local_2158 = 0;\n          pmStack_211c = (md5_ctx *)((int)pmVar31->total + (int)(pmVar28->total + -8));\n          pmStack_2134 = (md5_ctx *)(((int)pmVar31->total + (int)(pmVar22->total + -8)) * 3 + 2);\n          pmVar27 = (md5_ctx *)0xfa0;\n          local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n          pmStack_2118 = (md5_ctx *)0x55555555;\n          pmVar32 = (md5_ctx *)(uint)(pmVar26 < pmStack_2120);\n          pmStack_213c = pmVar26;\n          plStack_2114 = line_1;\n          pmStack_2110 = pmVar26;\n          pmStack_210c = pmVar28;\n          pmStack_2108 = pmVar22;\n          pmStack_2104 = pmVar31;\n          pmStack_2100 = pmVar24;\n          pmStack_20fc = pmVar23;\n          pmStack_20ec = pmVar30;\n          goto LAB_00017c30;\n        }\n        if (*(char *)&line_1[2].text != '\0') {\n          local_2158 = filevercmp((char *)pmVar26,(char *)pmVar28);\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }\n        if (pmVar22 == (md5_ctx *)0x0) {\n          local_2158 = -(uint)(pmVar31 != (md5_ctx *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pmVar31 == (md5_ctx *)0x0) goto LAB_000179f8;\n        pcVar16 = (char *)((int)&pmVar31->A + 1);\n        pmVar32 = (md5_ctx *)((int)&pmVar22->A + 1);\n        pmVar20 = pmVar28;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }" if (parenthesized_expression "(*(char *)((int)&line_1[1].keylim + 1) == '\0')" ( (binary_expression "*(char *)((int)&line_1[1].keylim + 1) == '\0'" (pointer_expression "*(char *)((int)&line_1[1].keylim + 1)" * (cast_expression "(char *)((int)&line_1[1].keylim + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&line_1[1].keylim + 1)" ( (binary_expression "(int)&line_1[1].keylim + 1" (cast_expression "(int)&line_1[1].keylim" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&line_1[1].keylim" & (field_expression "line_1[1].keylim" (subscript_expression "line_1[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (*(char *)((int)&line_1[1].keylim + 2) != '\0') {\n          pcVar33 = pcVar15;\n          iVar11 = (*pcVar15)(pmVar26,0);\n          iVar8 = (*pcVar33)(pmVar28,0);\n          local_2158 = iVar11 - iVar8;\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)&line_1[1].keybeg + 3) != '\0') {\n          pmStack_2138 = s + 1;\n          puVar10 = (uint32_t *)(puVar5 + -0x1a38);\n          pmVar25 = pmStack_2138;\n          do {\n            pmVar27 = pmVar25;\n            puVar9 = puVar10;\n            puVar10 = puVar9 + 4;\n            uVar21 = puVar9[1];\n            uVar18 = puVar9[2];\n            uVar17 = puVar9[3];\n            pmVar27->A = *puVar9;\n            pmVar27->B = uVar21;\n            pmVar27->C = uVar18;\n            pmVar27->D = uVar17;\n            pmVar25 = (md5_ctx *)pmVar27->total;\n          } while (puVar10 != (uint32_t *)(puVar5 + -0x19a8));\n          pmStack_2130 = s;\n          uVar18 = puVar9[5];\n          uVar17 = puVar9[6];\n          pmVar27->total[0] = *puVar10;\n          pmVar27->total[1] = uVar18;\n          pmVar27->buflen = uVar17;\n          pmVar25 = pmStack_2138;\n          pmVar27 = pmStack_2130;\n          do {\n            pmVar29 = pmVar27;\n            pmVar30 = pmVar25;\n            pmVar25 = (md5_ctx *)pmVar30->total;\n            uVar21 = pmVar30->B;\n            uVar18 = pmVar30->C;\n            uVar17 = pmVar30->D;\n            pmVar29->A = pmVar30->A;\n            pmVar29->B = uVar21;\n            pmVar29->C = uVar18;\n            pmVar29->D = uVar17;\n            pmVar27 = (md5_ctx *)pmVar29->total;\n          } while (pmVar25 != (md5_ctx *)(s[1].buffer + 0x1d));\n          uVar18 = pmVar30->total[1];\n          uVar17 = pmVar30->buflen;\n          cVar3 = puVar5[-0x14df];\n          pmVar29->total[0] = *(uint32_t *)pmVar25;\n          pmVar29->total[1] = uVar18;\n          pmVar29->buflen = uVar17;\n          if (cVar3 == '\0') {\n            pmVar25 = (md5_ctx *)(dig + 1);\n            md5_process_bytes(pmVar26,(size_t)pmVar22,pmStack_2130);\n            pmVar27 = (md5_ctx *)dig;\n            md5_finish_ctx(pmStack_2130,pmVar27);\n            md5_process_bytes(pmVar28,(size_t)pmVar31,pmStack_2138);\n            md5_finish_ctx(pmStack_2138,pmVar25);\n            uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmVar25,0x10);\n            local_214c = (md5_ctx *)0x0;\n            pmVar29 = pmVar22;\n            pmVar30 = pmStack_2138;\n            pmVar32 = pmVar26;\n            local_2150 = pmVar31;\n            pmStack_213c = pmVar28;\n            if (uVar12 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          pmStack_2120 = (md5_ctx *)((int)pmVar22->total + (int)(pmVar26->total + -8));\n          local_214c = (md5_ctx *)0x0;\n          pmVar30 = (md5_ctx *)stackbuf_1;\n          local_2158 = 0;\n          pmStack_211c = (md5_ctx *)((int)pmVar31->total + (int)(pmVar28->total + -8));\n          pmStack_2134 = (md5_ctx *)(((int)pmVar31->total + (int)(pmVar22->total + -8)) * 3 + 2);\n          pmVar27 = (md5_ctx *)0xfa0;\n          local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n          pmStack_2118 = (md5_ctx *)0x55555555;\n          pmVar32 = (md5_ctx *)(uint)(pmVar26 < pmStack_2120);\n          pmStack_213c = pmVar26;\n          plStack_2114 = line_1;\n          pmStack_2110 = pmVar26;\n          pmStack_210c = pmVar28;\n          pmStack_2108 = pmVar22;\n          pmStack_2104 = pmVar31;\n          pmStack_2100 = pmVar24;\n          pmStack_20fc = pmVar23;\n          pmStack_20ec = pmVar30;\n          goto LAB_00017c30;\n        }\n        if (*(char *)&line_1[2].text != '\0') {\n          local_2158 = filevercmp((char *)pmVar26,(char *)pmVar28);\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }\n        if (pmVar22 == (md5_ctx *)0x0) {\n          local_2158 = -(uint)(pmVar31 != (md5_ctx *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pmVar31 == (md5_ctx *)0x0) goto LAB_000179f8;\n        pcVar16 = (char *)((int)&pmVar31->A + 1);\n        pmVar32 = (md5_ctx *)((int)&pmVar22->A + 1);\n        pmVar20 = pmVar28;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }" { (if_statement "if (*(char *)((int)&line_1[1].keylim + 2) != '\0') {\n          pcVar33 = pcVar15;\n          iVar11 = (*pcVar15)(pmVar26,0);\n          iVar8 = (*pcVar33)(pmVar28,0);\n          local_2158 = iVar11 - iVar8;\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }" if (parenthesized_expression "(*(char *)((int)&line_1[1].keylim + 2) != '\0')" ( (binary_expression "*(char *)((int)&line_1[1].keylim + 2) != '\0'" (pointer_expression "*(char *)((int)&line_1[1].keylim + 2)" * (cast_expression "(char *)((int)&line_1[1].keylim + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&line_1[1].keylim + 2)" ( (binary_expression "(int)&line_1[1].keylim + 2" (cast_expression "(int)&line_1[1].keylim" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&line_1[1].keylim" & (field_expression "line_1[1].keylim" (subscript_expression "line_1[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pcVar33 = pcVar15;\n          iVar11 = (*pcVar15)(pmVar26,0);\n          iVar8 = (*pcVar33)(pmVar28,0);\n          local_2158 = iVar11 - iVar8;\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }" { (expression_statement "pcVar33 = pcVar15;" (assignment_expression "pcVar33 = pcVar15" identifier = identifier) ;) (expression_statement "iVar11 = (*pcVar15)(pmVar26,0);" (assignment_expression "iVar11 = (*pcVar15)(pmVar26,0)" identifier = (call_expression "(*pcVar15)(pmVar26,0)" (parenthesized_expression "(*pcVar15)" ( (pointer_expression "*pcVar15" * identifier) )) (argument_list "(pmVar26,0)" ( identifier , number_literal )))) ;) (expression_statement "iVar8 = (*pcVar33)(pmVar28,0);" (assignment_expression "iVar8 = (*pcVar33)(pmVar28,0)" identifier = (call_expression "(*pcVar33)(pmVar28,0)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(pmVar28,0)" ( identifier , number_literal )))) ;) (expression_statement "local_2158 = iVar11 - iVar8;" (assignment_expression "local_2158 = iVar11 - iVar8" identifier = (binary_expression "iVar11 - iVar8" identifier - identifier)) ;) (expression_statement "local_2150 = pmVar24;" (assignment_expression "local_2150 = pmVar24" identifier = identifier) ;) (expression_statement "local_214c = pmVar23;" (assignment_expression "local_214c = pmVar23" identifier = identifier) ;) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)&line_1[1].keybeg + 3) != '\0') {\n          pmStack_2138 = s + 1;\n          puVar10 = (uint32_t *)(puVar5 + -0x1a38);\n          pmVar25 = pmStack_2138;\n          do {\n            pmVar27 = pmVar25;\n            puVar9 = puVar10;\n            puVar10 = puVar9 + 4;\n            uVar21 = puVar9[1];\n            uVar18 = puVar9[2];\n            uVar17 = puVar9[3];\n            pmVar27->A = *puVar9;\n            pmVar27->B = uVar21;\n            pmVar27->C = uVar18;\n            pmVar27->D = uVar17;\n            pmVar25 = (md5_ctx *)pmVar27->total;\n          } while (puVar10 != (uint32_t *)(puVar5 + -0x19a8));\n          pmStack_2130 = s;\n          uVar18 = puVar9[5];\n          uVar17 = puVar9[6];\n          pmVar27->total[0] = *puVar10;\n          pmVar27->total[1] = uVar18;\n          pmVar27->buflen = uVar17;\n          pmVar25 = pmStack_2138;\n          pmVar27 = pmStack_2130;\n          do {\n            pmVar29 = pmVar27;\n            pmVar30 = pmVar25;\n            pmVar25 = (md5_ctx *)pmVar30->total;\n            uVar21 = pmVar30->B;\n            uVar18 = pmVar30->C;\n            uVar17 = pmVar30->D;\n            pmVar29->A = pmVar30->A;\n            pmVar29->B = uVar21;\n            pmVar29->C = uVar18;\n            pmVar29->D = uVar17;\n            pmVar27 = (md5_ctx *)pmVar29->total;\n          } while (pmVar25 != (md5_ctx *)(s[1].buffer + 0x1d));\n          uVar18 = pmVar30->total[1];\n          uVar17 = pmVar30->buflen;\n          cVar3 = puVar5[-0x14df];\n          pmVar29->total[0] = *(uint32_t *)pmVar25;\n          pmVar29->total[1] = uVar18;\n          pmVar29->buflen = uVar17;\n          if (cVar3 == '\0') {\n            pmVar25 = (md5_ctx *)(dig + 1);\n            md5_process_bytes(pmVar26,(size_t)pmVar22,pmStack_2130);\n            pmVar27 = (md5_ctx *)dig;\n            md5_finish_ctx(pmStack_2130,pmVar27);\n            md5_process_bytes(pmVar28,(size_t)pmVar31,pmStack_2138);\n            md5_finish_ctx(pmStack_2138,pmVar25);\n            uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmVar25,0x10);\n            local_214c = (md5_ctx *)0x0;\n            pmVar29 = pmVar22;\n            pmVar30 = pmStack_2138;\n            pmVar32 = pmVar26;\n            local_2150 = pmVar31;\n            pmStack_213c = pmVar28;\n            if (uVar12 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          pmStack_2120 = (md5_ctx *)((int)pmVar22->total + (int)(pmVar26->total + -8));\n          local_214c = (md5_ctx *)0x0;\n          pmVar30 = (md5_ctx *)stackbuf_1;\n          local_2158 = 0;\n          pmStack_211c = (md5_ctx *)((int)pmVar31->total + (int)(pmVar28->total + -8));\n          pmStack_2134 = (md5_ctx *)(((int)pmVar31->total + (int)(pmVar22->total + -8)) * 3 + 2);\n          pmVar27 = (md5_ctx *)0xfa0;\n          local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n          pmStack_2118 = (md5_ctx *)0x55555555;\n          pmVar32 = (md5_ctx *)(uint)(pmVar26 < pmStack_2120);\n          pmStack_213c = pmVar26;\n          plStack_2114 = line_1;\n          pmStack_2110 = pmVar26;\n          pmStack_210c = pmVar28;\n          pmStack_2108 = pmVar22;\n          pmStack_2104 = pmVar31;\n          pmStack_2100 = pmVar24;\n          pmStack_20fc = pmVar23;\n          pmStack_20ec = pmVar30;\n          goto LAB_00017c30;\n        }" if (parenthesized_expression "(*(char *)((int)&line_1[1].keybeg + 3) != '\0')" ( (binary_expression "*(char *)((int)&line_1[1].keybeg + 3) != '\0'" (pointer_expression "*(char *)((int)&line_1[1].keybeg + 3)" * (cast_expression "(char *)((int)&line_1[1].keybeg + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&line_1[1].keybeg + 3)" ( (binary_expression "(int)&line_1[1].keybeg + 3" (cast_expression "(int)&line_1[1].keybeg" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&line_1[1].keybeg" & (field_expression "line_1[1].keybeg" (subscript_expression "line_1[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pmStack_2138 = s + 1;\n          puVar10 = (uint32_t *)(puVar5 + -0x1a38);\n          pmVar25 = pmStack_2138;\n          do {\n            pmVar27 = pmVar25;\n            puVar9 = puVar10;\n            puVar10 = puVar9 + 4;\n            uVar21 = puVar9[1];\n            uVar18 = puVar9[2];\n            uVar17 = puVar9[3];\n            pmVar27->A = *puVar9;\n            pmVar27->B = uVar21;\n            pmVar27->C = uVar18;\n            pmVar27->D = uVar17;\n            pmVar25 = (md5_ctx *)pmVar27->total;\n          } while (puVar10 != (uint32_t *)(puVar5 + -0x19a8));\n          pmStack_2130 = s;\n          uVar18 = puVar9[5];\n          uVar17 = puVar9[6];\n          pmVar27->total[0] = *puVar10;\n          pmVar27->total[1] = uVar18;\n          pmVar27->buflen = uVar17;\n          pmVar25 = pmStack_2138;\n          pmVar27 = pmStack_2130;\n          do {\n            pmVar29 = pmVar27;\n            pmVar30 = pmVar25;\n            pmVar25 = (md5_ctx *)pmVar30->total;\n            uVar21 = pmVar30->B;\n            uVar18 = pmVar30->C;\n            uVar17 = pmVar30->D;\n            pmVar29->A = pmVar30->A;\n            pmVar29->B = uVar21;\n            pmVar29->C = uVar18;\n            pmVar29->D = uVar17;\n            pmVar27 = (md5_ctx *)pmVar29->total;\n          } while (pmVar25 != (md5_ctx *)(s[1].buffer + 0x1d));\n          uVar18 = pmVar30->total[1];\n          uVar17 = pmVar30->buflen;\n          cVar3 = puVar5[-0x14df];\n          pmVar29->total[0] = *(uint32_t *)pmVar25;\n          pmVar29->total[1] = uVar18;\n          pmVar29->buflen = uVar17;\n          if (cVar3 == '\0') {\n            pmVar25 = (md5_ctx *)(dig + 1);\n            md5_process_bytes(pmVar26,(size_t)pmVar22,pmStack_2130);\n            pmVar27 = (md5_ctx *)dig;\n            md5_finish_ctx(pmStack_2130,pmVar27);\n            md5_process_bytes(pmVar28,(size_t)pmVar31,pmStack_2138);\n            md5_finish_ctx(pmStack_2138,pmVar25);\n            uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmVar25,0x10);\n            local_214c = (md5_ctx *)0x0;\n            pmVar29 = pmVar22;\n            pmVar30 = pmStack_2138;\n            pmVar32 = pmVar26;\n            local_2150 = pmVar31;\n            pmStack_213c = pmVar28;\n            if (uVar12 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          pmStack_2120 = (md5_ctx *)((int)pmVar22->total + (int)(pmVar26->total + -8));\n          local_214c = (md5_ctx *)0x0;\n          pmVar30 = (md5_ctx *)stackbuf_1;\n          local_2158 = 0;\n          pmStack_211c = (md5_ctx *)((int)pmVar31->total + (int)(pmVar28->total + -8));\n          pmStack_2134 = (md5_ctx *)(((int)pmVar31->total + (int)(pmVar22->total + -8)) * 3 + 2);\n          pmVar27 = (md5_ctx *)0xfa0;\n          local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n          pmStack_2118 = (md5_ctx *)0x55555555;\n          pmVar32 = (md5_ctx *)(uint)(pmVar26 < pmStack_2120);\n          pmStack_213c = pmVar26;\n          plStack_2114 = line_1;\n          pmStack_2110 = pmVar26;\n          pmStack_210c = pmVar28;\n          pmStack_2108 = pmVar22;\n          pmStack_2104 = pmVar31;\n          pmStack_2100 = pmVar24;\n          pmStack_20fc = pmVar23;\n          pmStack_20ec = pmVar30;\n          goto LAB_00017c30;\n        }" { (expression_statement "pmStack_2138 = s + 1;" (assignment_expression "pmStack_2138 = s + 1" identifier = (binary_expression "s + 1" identifier + number_literal)) ;) (expression_statement "puVar10 = (uint32_t *)(puVar5 + -0x1a38);" (assignment_expression "puVar10 = (uint32_t *)(puVar5 + -0x1a38)" identifier = (cast_expression "(uint32_t *)(puVar5 + -0x1a38)" ( (type_descriptor "uint32_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x1a38)" ( (binary_expression "puVar5 + -0x1a38" identifier + number_literal) )))) ;) (expression_statement "pmVar25 = pmStack_2138;" (assignment_expression "pmVar25 = pmStack_2138" identifier = identifier) ;) (do_statement "do {\n            pmVar27 = pmVar25;\n            puVar9 = puVar10;\n            puVar10 = puVar9 + 4;\n            uVar21 = puVar9[1];\n            uVar18 = puVar9[2];\n            uVar17 = puVar9[3];\n            pmVar27->A = *puVar9;\n            pmVar27->B = uVar21;\n            pmVar27->C = uVar18;\n            pmVar27->D = uVar17;\n            pmVar25 = (md5_ctx *)pmVar27->total;\n          } while (puVar10 != (uint32_t *)(puVar5 + -0x19a8));" do (compound_statement "{\n            pmVar27 = pmVar25;\n            puVar9 = puVar10;\n            puVar10 = puVar9 + 4;\n            uVar21 = puVar9[1];\n            uVar18 = puVar9[2];\n            uVar17 = puVar9[3];\n            pmVar27->A = *puVar9;\n            pmVar27->B = uVar21;\n            pmVar27->C = uVar18;\n            pmVar27->D = uVar17;\n            pmVar25 = (md5_ctx *)pmVar27->total;\n          }" { (expression_statement "pmVar27 = pmVar25;" (assignment_expression "pmVar27 = pmVar25" identifier = identifier) ;) (expression_statement "puVar9 = puVar10;" (assignment_expression "puVar9 = puVar10" identifier = identifier) ;) (expression_statement "puVar10 = puVar9 + 4;" (assignment_expression "puVar10 = puVar9 + 4" identifier = (binary_expression "puVar9 + 4" identifier + number_literal)) ;) (expression_statement "uVar21 = puVar9[1];" (assignment_expression "uVar21 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = puVar9[2];" (assignment_expression "uVar18 = puVar9[2]" identifier = (subscript_expression "puVar9[2]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = puVar9[3];" (assignment_expression "uVar17 = puVar9[3]" identifier = (subscript_expression "puVar9[3]" identifier [ number_literal ])) ;) (expression_statement "pmVar27->A = *puVar9;" (assignment_expression "pmVar27->A = *puVar9" (field_expression "pmVar27->A" identifier -> field_identifier) = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "pmVar27->B = uVar21;" (assignment_expression "pmVar27->B = uVar21" (field_expression "pmVar27->B" identifier -> field_identifier) = identifier) ;) (expression_statement "pmVar27->C = uVar18;" (assignment_expression "pmVar27->C = uVar18" (field_expression "pmVar27->C" identifier -> field_identifier) = identifier) ;) (expression_statement "pmVar27->D = uVar17;" (assignment_expression "pmVar27->D = uVar17" (field_expression "pmVar27->D" identifier -> field_identifier) = identifier) ;) (expression_statement "pmVar25 = (md5_ctx *)pmVar27->total;" (assignment_expression "pmVar25 = (md5_ctx *)pmVar27->total" identifier = (cast_expression "(md5_ctx *)pmVar27->total" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pmVar27->total" identifier -> field_identifier))) ;) }) while (parenthesized_expression "(puVar10 != (uint32_t *)(puVar5 + -0x19a8))" ( (binary_expression "puVar10 != (uint32_t *)(puVar5 + -0x19a8)" identifier != (cast_expression "(uint32_t *)(puVar5 + -0x19a8)" ( (type_descriptor "uint32_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x19a8)" ( (binary_expression "puVar5 + -0x19a8" identifier + number_literal) )))) )) ;) (expression_statement "pmStack_2130 = s;" (assignment_expression "pmStack_2130 = s" identifier = identifier) ;) (expression_statement "uVar18 = puVar9[5];" (assignment_expression "uVar18 = puVar9[5]" identifier = (subscript_expression "puVar9[5]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = puVar9[6];" (assignment_expression "uVar17 = puVar9[6]" identifier = (subscript_expression "puVar9[6]" identifier [ number_literal ])) ;) (expression_statement "pmVar27->total[0] = *puVar10;" (assignment_expression "pmVar27->total[0] = *puVar10" (subscript_expression "pmVar27->total[0]" (field_expression "pmVar27->total" identifier -> field_identifier) [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "pmVar27->total[1] = uVar18;" (assignment_expression "pmVar27->total[1] = uVar18" (subscript_expression "pmVar27->total[1]" (field_expression "pmVar27->total" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pmVar27->buflen = uVar17;" (assignment_expression "pmVar27->buflen = uVar17" (field_expression "pmVar27->buflen" identifier -> field_identifier) = identifier) ;) (expression_statement "pmVar25 = pmStack_2138;" (assignment_expression "pmVar25 = pmStack_2138" identifier = identifier) ;) (expression_statement "pmVar27 = pmStack_2130;" (assignment_expression "pmVar27 = pmStack_2130" identifier = identifier) ;) (do_statement "do {\n            pmVar29 = pmVar27;\n            pmVar30 = pmVar25;\n            pmVar25 = (md5_ctx *)pmVar30->total;\n            uVar21 = pmVar30->B;\n            uVar18 = pmVar30->C;\n            uVar17 = pmVar30->D;\n            pmVar29->A = pmVar30->A;\n            pmVar29->B = uVar21;\n            pmVar29->C = uVar18;\n            pmVar29->D = uVar17;\n            pmVar27 = (md5_ctx *)pmVar29->total;\n          } while (pmVar25 != (md5_ctx *)(s[1].buffer + 0x1d));" do (compound_statement "{\n            pmVar29 = pmVar27;\n            pmVar30 = pmVar25;\n            pmVar25 = (md5_ctx *)pmVar30->total;\n            uVar21 = pmVar30->B;\n            uVar18 = pmVar30->C;\n            uVar17 = pmVar30->D;\n            pmVar29->A = pmVar30->A;\n            pmVar29->B = uVar21;\n            pmVar29->C = uVar18;\n            pmVar29->D = uVar17;\n            pmVar27 = (md5_ctx *)pmVar29->total;\n          }" { (expression_statement "pmVar29 = pmVar27;" (assignment_expression "pmVar29 = pmVar27" identifier = identifier) ;) (expression_statement "pmVar30 = pmVar25;" (assignment_expression "pmVar30 = pmVar25" identifier = identifier) ;) (expression_statement "pmVar25 = (md5_ctx *)pmVar30->total;" (assignment_expression "pmVar25 = (md5_ctx *)pmVar30->total" identifier = (cast_expression "(md5_ctx *)pmVar30->total" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pmVar30->total" identifier -> field_identifier))) ;) (expression_statement "uVar21 = pmVar30->B;" (assignment_expression "uVar21 = pmVar30->B" identifier = (field_expression "pmVar30->B" identifier -> field_identifier)) ;) (expression_statement "uVar18 = pmVar30->C;" (assignment_expression "uVar18 = pmVar30->C" identifier = (field_expression "pmVar30->C" identifier -> field_identifier)) ;) (expression_statement "uVar17 = pmVar30->D;" (assignment_expression "uVar17 = pmVar30->D" identifier = (field_expression "pmVar30->D" identifier -> field_identifier)) ;) (expression_statement "pmVar29->A = pmVar30->A;" (assignment_expression "pmVar29->A = pmVar30->A" (field_expression "pmVar29->A" identifier -> field_identifier) = (field_expression "pmVar30->A" identifier -> field_identifier)) ;) (expression_statement "pmVar29->B = uVar21;" (assignment_expression "pmVar29->B = uVar21" (field_expression "pmVar29->B" identifier -> field_identifier) = identifier) ;) (expression_statement "pmVar29->C = uVar18;" (assignment_expression "pmVar29->C = uVar18" (field_expression "pmVar29->C" identifier -> field_identifier) = identifier) ;) (expression_statement "pmVar29->D = uVar17;" (assignment_expression "pmVar29->D = uVar17" (field_expression "pmVar29->D" identifier -> field_identifier) = identifier) ;) (expression_statement "pmVar27 = (md5_ctx *)pmVar29->total;" (assignment_expression "pmVar27 = (md5_ctx *)pmVar29->total" identifier = (cast_expression "(md5_ctx *)pmVar29->total" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pmVar29->total" identifier -> field_identifier))) ;) }) while (parenthesized_expression "(pmVar25 != (md5_ctx *)(s[1].buffer + 0x1d))" ( (binary_expression "pmVar25 != (md5_ctx *)(s[1].buffer + 0x1d)" identifier != (cast_expression "(md5_ctx *)(s[1].buffer + 0x1d)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(s[1].buffer + 0x1d)" ( (binary_expression "s[1].buffer + 0x1d" (field_expression "s[1].buffer" (subscript_expression "s[1]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) )) ;) (expression_statement "uVar18 = pmVar30->total[1];" (assignment_expression "uVar18 = pmVar30->total[1]" identifier = (subscript_expression "pmVar30->total[1]" (field_expression "pmVar30->total" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar17 = pmVar30->buflen;" (assignment_expression "uVar17 = pmVar30->buflen" identifier = (field_expression "pmVar30->buflen" identifier -> field_identifier)) ;) (expression_statement "cVar3 = puVar5[-0x14df];" (assignment_expression "cVar3 = puVar5[-0x14df]" identifier = (subscript_expression "puVar5[-0x14df]" identifier [ number_literal ])) ;) (expression_statement "pmVar29->total[0] = *(uint32_t *)pmVar25;" (assignment_expression "pmVar29->total[0] = *(uint32_t *)pmVar25" (subscript_expression "pmVar29->total[0]" (field_expression "pmVar29->total" identifier -> field_identifier) [ number_literal ]) = (pointer_expression "*(uint32_t *)pmVar25" * (cast_expression "(uint32_t *)pmVar25" ( (type_descriptor "uint32_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pmVar29->total[1] = uVar18;" (assignment_expression "pmVar29->total[1] = uVar18" (subscript_expression "pmVar29->total[1]" (field_expression "pmVar29->total" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pmVar29->buflen = uVar17;" (assignment_expression "pmVar29->buflen = uVar17" (field_expression "pmVar29->buflen" identifier -> field_identifier) = identifier) ;) (if_statement "if (cVar3 == '\0') {\n            pmVar25 = (md5_ctx *)(dig + 1);\n            md5_process_bytes(pmVar26,(size_t)pmVar22,pmStack_2130);\n            pmVar27 = (md5_ctx *)dig;\n            md5_finish_ctx(pmStack_2130,pmVar27);\n            md5_process_bytes(pmVar28,(size_t)pmVar31,pmStack_2138);\n            md5_finish_ctx(pmStack_2138,pmVar25);\n            uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmVar25,0x10);\n            local_214c = (md5_ctx *)0x0;\n            pmVar29 = pmVar22;\n            pmVar30 = pmStack_2138;\n            pmVar32 = pmVar26;\n            local_2150 = pmVar31;\n            pmStack_213c = pmVar28;\n            if (uVar12 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pmVar25 = (md5_ctx *)(dig + 1);\n            md5_process_bytes(pmVar26,(size_t)pmVar22,pmStack_2130);\n            pmVar27 = (md5_ctx *)dig;\n            md5_finish_ctx(pmStack_2130,pmVar27);\n            md5_process_bytes(pmVar28,(size_t)pmVar31,pmStack_2138);\n            md5_finish_ctx(pmStack_2138,pmVar25);\n            uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmVar25,0x10);\n            local_214c = (md5_ctx *)0x0;\n            pmVar29 = pmVar22;\n            pmVar30 = pmStack_2138;\n            pmVar32 = pmVar26;\n            local_2150 = pmVar31;\n            pmStack_213c = pmVar28;\n            if (uVar12 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }" { (expression_statement "pmVar25 = (md5_ctx *)(dig + 1);" (assignment_expression "pmVar25 = (md5_ctx *)(dig + 1)" identifier = (cast_expression "(md5_ctx *)(dig + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dig + 1)" ( (binary_expression "dig + 1" identifier + number_literal) )))) ;) (expression_statement "md5_process_bytes(pmVar26,(size_t)pmVar22,pmStack_2130);" (call_expression "md5_process_bytes(pmVar26,(size_t)pmVar22,pmStack_2130)" identifier (argument_list "(pmVar26,(size_t)pmVar22,pmStack_2130)" ( identifier , (cast_expression "(size_t)pmVar22" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier ))) ;) (expression_statement "pmVar27 = (md5_ctx *)dig;" (assignment_expression "pmVar27 = (md5_ctx *)dig" identifier = (cast_expression "(md5_ctx *)dig" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "md5_finish_ctx(pmStack_2130,pmVar27);" (call_expression "md5_finish_ctx(pmStack_2130,pmVar27)" identifier (argument_list "(pmStack_2130,pmVar27)" ( identifier , identifier ))) ;) (expression_statement "md5_process_bytes(pmVar28,(size_t)pmVar31,pmStack_2138);" (call_expression "md5_process_bytes(pmVar28,(size_t)pmVar31,pmStack_2138)" identifier (argument_list "(pmVar28,(size_t)pmVar31,pmStack_2138)" ( identifier , (cast_expression "(size_t)pmVar31" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier ))) ;) (expression_statement "md5_finish_ctx(pmStack_2138,pmVar25);" (call_expression "md5_finish_ctx(pmStack_2138,pmVar25)" identifier (argument_list "(pmStack_2138,pmVar25)" ( identifier , identifier ))) ;) (expression_statement "uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmVar25,0x10);" (assignment_expression "uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmVar25,0x10)" identifier = (call_expression "(*(code *)PTR_memcmp_0003e52c)(pmVar27,pmVar25,0x10)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" ( (pointer_expression "*(code *)PTR_memcmp_0003e52c" * (cast_expression "(code *)PTR_memcmp_0003e52c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar27,pmVar25,0x10)" ( identifier , identifier , number_literal )))) ;) (expression_statement "local_214c = (md5_ctx *)0x0;" (assignment_expression "local_214c = (md5_ctx *)0x0" identifier = (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pmVar29 = pmVar22;" (assignment_expression "pmVar29 = pmVar22" identifier = identifier) ;) (expression_statement "pmVar30 = pmStack_2138;" (assignment_expression "pmVar30 = pmStack_2138" identifier = identifier) ;) (expression_statement "pmVar32 = pmVar26;" (assignment_expression "pmVar32 = pmVar26" identifier = identifier) ;) (expression_statement "local_2150 = pmVar31;" (assignment_expression "local_2150 = pmVar31" identifier = identifier) ;) (expression_statement "pmStack_213c = pmVar28;" (assignment_expression "pmStack_213c = pmVar28" identifier = identifier) ;) (if_statement "if (uVar12 != 0) goto LAB_00018040;" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018040;" goto statement_identifier ;)) (goto_statement "goto LAB_00017ff4;" goto statement_identifier ;) })) (expression_statement "pmStack_2120 = (md5_ctx *)((int)pmVar22->total + (int)(pmVar26->total + -8));" (assignment_expression "pmStack_2120 = (md5_ctx *)((int)pmVar22->total + (int)(pmVar26->total + -8))" identifier = (cast_expression "(md5_ctx *)((int)pmVar22->total + (int)(pmVar26->total + -8))" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar22->total + (int)(pmVar26->total + -8))" ( (binary_expression "(int)pmVar22->total + (int)(pmVar26->total + -8)" (cast_expression "(int)pmVar22->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar22->total" identifier -> field_identifier)) + (cast_expression "(int)(pmVar26->total + -8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pmVar26->total + -8)" ( (binary_expression "pmVar26->total + -8" (field_expression "pmVar26->total" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "local_214c = (md5_ctx *)0x0;" (assignment_expression "local_214c = (md5_ctx *)0x0" identifier = (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pmVar30 = (md5_ctx *)stackbuf_1;" (assignment_expression "pmVar30 = (md5_ctx *)stackbuf_1" identifier = (cast_expression "(md5_ctx *)stackbuf_1" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_2158 = 0;" (assignment_expression "local_2158 = 0" identifier = number_literal) ;) (expression_statement "pmStack_211c = (md5_ctx *)((int)pmVar31->total + (int)(pmVar28->total + -8));" (assignment_expression "pmStack_211c = (md5_ctx *)((int)pmVar31->total + (int)(pmVar28->total + -8))" identifier = (cast_expression "(md5_ctx *)((int)pmVar31->total + (int)(pmVar28->total + -8))" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar31->total + (int)(pmVar28->total + -8))" ( (binary_expression "(int)pmVar31->total + (int)(pmVar28->total + -8)" (cast_expression "(int)pmVar31->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar31->total" identifier -> field_identifier)) + (cast_expression "(int)(pmVar28->total + -8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pmVar28->total + -8)" ( (binary_expression "pmVar28->total + -8" (field_expression "pmVar28->total" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "pmStack_2134 = (md5_ctx *)(((int)pmVar31->total + (int)(pmVar22->total + -8)) * 3 + 2);" (assignment_expression "pmStack_2134 = (md5_ctx *)(((int)pmVar31->total + (int)(pmVar22->total + -8)) * 3 + 2)" identifier = (cast_expression "(md5_ctx *)(((int)pmVar31->total + (int)(pmVar22->total + -8)) * 3 + 2)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)pmVar31->total + (int)(pmVar22->total + -8)) * 3 + 2)" ( (binary_expression "((int)pmVar31->total + (int)(pmVar22->total + -8)) * 3 + 2" (binary_expression "((int)pmVar31->total + (int)(pmVar22->total + -8)) * 3" (parenthesized_expression "((int)pmVar31->total + (int)(pmVar22->total + -8))" ( (binary_expression "(int)pmVar31->total + (int)(pmVar22->total + -8)" (cast_expression "(int)pmVar31->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar31->total" identifier -> field_identifier)) + (cast_expression "(int)(pmVar22->total + -8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pmVar22->total + -8)" ( (binary_expression "pmVar22->total + -8" (field_expression "pmVar22->total" identifier -> field_identifier) + number_literal) )))) )) * number_literal) + number_literal) )))) ;) (expression_statement "pmVar27 = (md5_ctx *)0xfa0;" (assignment_expression "pmVar27 = (md5_ctx *)0xfa0" identifier = (cast_expression "(md5_ctx *)0xfa0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);" (assignment_expression "local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c)" identifier = (cast_expression "(md5_ctx *)(uint)(pmVar28 < pmStack_211c)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pmVar28 < pmStack_211c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar28 < pmStack_211c)" ( (binary_expression "pmVar28 < pmStack_211c" identifier < identifier) ))))) ;) (expression_statement "pmStack_2118 = (md5_ctx *)0x55555555;" (assignment_expression "pmStack_2118 = (md5_ctx *)0x55555555" identifier = (cast_expression "(md5_ctx *)0x55555555" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pmVar32 = (md5_ctx *)(uint)(pmVar26 < pmStack_2120);" (assignment_expression "pmVar32 = (md5_ctx *)(uint)(pmVar26 < pmStack_2120)" identifier = (cast_expression "(md5_ctx *)(uint)(pmVar26 < pmStack_2120)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pmVar26 < pmStack_2120)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar26 < pmStack_2120)" ( (binary_expression "pmVar26 < pmStack_2120" identifier < identifier) ))))) ;) (expression_statement "pmStack_213c = pmVar26;" (assignment_expression "pmStack_213c = pmVar26" identifier = identifier) ;) (expression_statement "plStack_2114 = line_1;" (assignment_expression "plStack_2114 = line_1" identifier = identifier) ;) (expression_statement "pmStack_2110 = pmVar26;" (assignment_expression "pmStack_2110 = pmVar26" identifier = identifier) ;) (expression_statement "pmStack_210c = pmVar28;" (assignment_expression "pmStack_210c = pmVar28" identifier = identifier) ;) (expression_statement "pmStack_2108 = pmVar22;" (assignment_expression "pmStack_2108 = pmVar22" identifier = identifier) ;) (expression_statement "pmStack_2104 = pmVar31;" (assignment_expression "pmStack_2104 = pmVar31" identifier = identifier) ;) (expression_statement "pmStack_2100 = pmVar24;" (assignment_expression "pmStack_2100 = pmVar24" identifier = identifier) ;) (expression_statement "pmStack_20fc = pmVar23;" (assignment_expression "pmStack_20fc = pmVar23" identifier = identifier) ;) (expression_statement "pmStack_20ec = pmVar30;" (assignment_expression "pmStack_20ec = pmVar30" identifier = identifier) ;) (goto_statement "goto LAB_00017c30;" goto statement_identifier ;) })) (if_statement "if (*(char *)&line_1[2].text != '\0') {\n          local_2158 = filevercmp((char *)pmVar26,(char *)pmVar28);\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }" if (parenthesized_expression "(*(char *)&line_1[2].text != '\0')" ( (binary_expression "*(char *)&line_1[2].text != '\0'" (pointer_expression "*(char *)&line_1[2].text" * (cast_expression "(char *)&line_1[2].text" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&line_1[2].text" & (field_expression "line_1[2].text" (subscript_expression "line_1[2]" identifier [ number_literal ]) . field_identifier)))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_2158 = filevercmp((char *)pmVar26,(char *)pmVar28);\n          local_2150 = pmVar24;\n          local_214c = pmVar23;\n          goto LAB_000175d8;\n        }" { (expression_statement "local_2158 = filevercmp((char *)pmVar26,(char *)pmVar28);" (assignment_expression "local_2158 = filevercmp((char *)pmVar26,(char *)pmVar28)" identifier = (call_expression "filevercmp((char *)pmVar26,(char *)pmVar28)" identifier (argument_list "((char *)pmVar26,(char *)pmVar28)" ( (cast_expression "(char *)pmVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)pmVar28" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_2150 = pmVar24;" (assignment_expression "local_2150 = pmVar24" identifier = identifier) ;) (expression_statement "local_214c = pmVar23;" (assignment_expression "local_214c = pmVar23" identifier = identifier) ;) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) (if_statement "if (pmVar22 == (md5_ctx *)0x0) {\n          local_2158 = -(uint)(pmVar31 != (md5_ctx *)0x0);\n          goto LAB_000175d8;\n        }" if (parenthesized_expression "(pmVar22 == (md5_ctx *)0x0)" ( (binary_expression "pmVar22 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_2158 = -(uint)(pmVar31 != (md5_ctx *)0x0);\n          goto LAB_000175d8;\n        }" { (expression_statement "local_2158 = -(uint)(pmVar31 != (md5_ctx *)0x0);" (assignment_expression "local_2158 = -(uint)(pmVar31 != (md5_ctx *)0x0)" identifier = (unary_expression "-(uint)(pmVar31 != (md5_ctx *)0x0)" - (call_expression "(uint)(pmVar31 != (md5_ctx *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar31 != (md5_ctx *)0x0)" ( (binary_expression "pmVar31 != (md5_ctx *)0x0" identifier != (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) (if_statement "if (pmVar31 == (md5_ctx *)0x0) goto LAB_000179f8;" if (parenthesized_expression "(pmVar31 == (md5_ctx *)0x0)" ( (binary_expression "pmVar31 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000179f8;" goto statement_identifier ;)) (expression_statement "pcVar16 = (char *)((int)&pmVar31->A + 1);" (assignment_expression "pcVar16 = (char *)((int)&pmVar31->A + 1)" identifier = (cast_expression "(char *)((int)&pmVar31->A + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar31->A + 1)" ( (binary_expression "(int)&pmVar31->A + 1" (cast_expression "(int)&pmVar31->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar31->A" & (field_expression "pmVar31->A" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pmVar32 = (md5_ctx *)((int)&pmVar22->A + 1);" (assignment_expression "pmVar32 = (md5_ctx *)((int)&pmVar22->A + 1)" identifier = (cast_expression "(md5_ctx *)((int)&pmVar22->A + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar22->A + 1)" ( (binary_expression "(int)&pmVar22->A + 1" (cast_expression "(int)&pmVar22->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar22->A" & (field_expression "pmVar22->A" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pmVar20 = pmVar28;" (assignment_expression "pmVar20 = pmVar28" identifier = identifier) ;) (expression_statement "pcVar33 = (code *)PTR_xmemcoll0_0003e200;" (assignment_expression "pcVar33 = (code *)PTR_xmemcoll0_0003e200" identifier = (cast_expression "(code *)PTR_xmemcoll0_0003e200" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_000177ec;" goto statement_identifier ;) })) (expression_statement "cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];" (assignment_expression "cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0]" identifier = (subscript_expression "puVar5[*(byte *)&pmVar26->A - 0x15f0]" identifier [ (binary_expression "*(byte *)&pmVar26->A - 0x15f0" (pointer_expression "*(byte *)&pmVar26->A" * (cast_expression "(byte *)&pmVar26->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar26->A" & (field_expression "pmVar26->A" identifier -> field_identifier)))) - number_literal) ])) ;) (while_statement "while (cVar3 != '\0') {\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }" while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }" { (expression_statement "pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);" (assignment_expression "pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1)" identifier = (cast_expression "(md5_ctx *)((int)&pmVar25->A + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar25->A + 1)" ( (binary_expression "(int)&pmVar25->A + 1" (cast_expression "(int)&pmVar25->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar25->A" & (field_expression "pmVar25->A" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];" (assignment_expression "cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0]" identifier = (subscript_expression "puVar5[*(byte *)&pmVar25->A - 0x15f0]" identifier [ (binary_expression "*(byte *)&pmVar25->A - 0x15f0" (pointer_expression "*(byte *)&pmVar25->A" * (cast_expression "(byte *)&pmVar25->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar25->A" & (field_expression "pmVar25->A" identifier -> field_identifier)))) - number_literal) ])) ;) })) (expression_statement "cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];" (assignment_expression "cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0]" identifier = (subscript_expression "puVar5[*(byte *)&pmVar28->A - 0x15f0]" identifier [ (binary_expression "*(byte *)&pmVar28->A - 0x15f0" (pointer_expression "*(byte *)&pmVar28->A" * (cast_expression "(byte *)&pmVar28->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar28->A" & (field_expression "pmVar28->A" identifier -> field_identifier)))) - number_literal) ])) ;) (while_statement "while (cVar3 != '\0') {\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }" while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }" { (expression_statement "pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);" (assignment_expression "pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1)" identifier = (cast_expression "(md5_ctx *)((int)&pmVar32->A + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar32->A + 1)" ( (binary_expression "(int)&pmVar32->A + 1" (cast_expression "(int)&pmVar32->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar32->A" & (field_expression "pmVar32->A" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];" (assignment_expression "cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0]" identifier = (subscript_expression "puVar5[*(byte *)&pmVar32->A - 0x15f0]" identifier [ (binary_expression "*(byte *)&pmVar32->A - 0x15f0" (pointer_expression "*(byte *)&pmVar32->A" * (cast_expression "(byte *)&pmVar32->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar32->A" & (field_expression "pmVar32->A" identifier -> field_identifier)))) - number_literal) ])) ;) })) (expression_statement "pmVar30 = (md5_ctx *)(PTR_0003e1b4 + 0x6090);" (assignment_expression "pmVar30 = (md5_ctx *)(PTR_0003e1b4 + 0x6090)" identifier = (cast_expression "(md5_ctx *)(PTR_0003e1b4 + 0x6090)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_0003e1b4 + 0x6090)" ( (binary_expression "PTR_0003e1b4 + 0x6090" identifier + number_literal) )))) ;) (expression_statement "iVar11 = find_unit_order((char *)pmVar25);" (assignment_expression "iVar11 = find_unit_order((char *)pmVar25)" identifier = (call_expression "find_unit_order((char *)pmVar25)" identifier (argument_list "((char *)pmVar25)" ( (cast_expression "(char *)pmVar25" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "iVar8 = find_unit_order((char *)pmVar32);" (assignment_expression "iVar8 = find_unit_order((char *)pmVar32)" identifier = (call_expression "find_unit_order((char *)pmVar32)" identifier (argument_list "((char *)pmVar32)" ( (cast_expression "(char *)pmVar32" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_2158 = iVar11 - iVar8;" (assignment_expression "local_2158 = iVar11 - iVar8" identifier = (binary_expression "iVar11 - iVar8" identifier - identifier)) ;) (expression_statement "pmVar27 = pmVar25;" (assignment_expression "pmVar27 = pmVar25" identifier = identifier) ;) (expression_statement "pmVar29 = pmVar32;" (assignment_expression "pmVar29 = pmVar32" identifier = identifier) ;) (expression_statement "local_2150 = pmVar24;" (assignment_expression "local_2150 = pmVar24" identifier = identifier) ;) (expression_statement "local_214c = pmVar23;" (assignment_expression "local_214c = pmVar23" identifier = identifier) ;) (if_statement "if (local_2158 != 0) goto LAB_000175d8;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;)) }) (else_clause "else {\n      cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }\n      cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }\n    }" else (compound_statement "{\n      cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }\n      cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];\n      while (cVar3 != '\0') {\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }\n    }" { (expression_statement "cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0];" (assignment_expression "cVar3 = puVar5[*(byte *)&pmVar26->A - 0x15f0]" identifier = (subscript_expression "puVar5[*(byte *)&pmVar26->A - 0x15f0]" identifier [ (binary_expression "*(byte *)&pmVar26->A - 0x15f0" (pointer_expression "*(byte *)&pmVar26->A" * (cast_expression "(byte *)&pmVar26->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar26->A" & (field_expression "pmVar26->A" identifier -> field_identifier)))) - number_literal) ])) ;) (while_statement "while (cVar3 != '\0') {\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }" while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];\n      }" { (expression_statement "pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);" (assignment_expression "pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1)" identifier = (cast_expression "(md5_ctx *)((int)&pmVar25->A + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar25->A + 1)" ( (binary_expression "(int)&pmVar25->A + 1" (cast_expression "(int)&pmVar25->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar25->A" & (field_expression "pmVar25->A" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0];" (assignment_expression "cVar3 = puVar5[*(byte *)&pmVar25->A - 0x15f0]" identifier = (subscript_expression "puVar5[*(byte *)&pmVar25->A - 0x15f0]" identifier [ (binary_expression "*(byte *)&pmVar25->A - 0x15f0" (pointer_expression "*(byte *)&pmVar25->A" * (cast_expression "(byte *)&pmVar25->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar25->A" & (field_expression "pmVar25->A" identifier -> field_identifier)))) - number_literal) ])) ;) })) (expression_statement "cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0];" (assignment_expression "cVar3 = puVar5[*(byte *)&pmVar28->A - 0x15f0]" identifier = (subscript_expression "puVar5[*(byte *)&pmVar28->A - 0x15f0]" identifier [ (binary_expression "*(byte *)&pmVar28->A - 0x15f0" (pointer_expression "*(byte *)&pmVar28->A" * (cast_expression "(byte *)&pmVar28->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar28->A" & (field_expression "pmVar28->A" identifier -> field_identifier)))) - number_literal) ])) ;) (while_statement "while (cVar3 != '\0') {\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }" while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);\n        cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];\n      }" { (expression_statement "pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1);" (assignment_expression "pmVar32 = (md5_ctx *)((int)&pmVar32->A + 1)" identifier = (cast_expression "(md5_ctx *)((int)&pmVar32->A + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar32->A + 1)" ( (binary_expression "(int)&pmVar32->A + 1" (cast_expression "(int)&pmVar32->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar32->A" & (field_expression "pmVar32->A" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0];" (assignment_expression "cVar3 = puVar5[*(byte *)&pmVar32->A - 0x15f0]" identifier = (subscript_expression "puVar5[*(byte *)&pmVar32->A - 0x15f0]" identifier [ (binary_expression "*(byte *)&pmVar32->A - 0x15f0" (pointer_expression "*(byte *)&pmVar32->A" * (cast_expression "(byte *)&pmVar32->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar32->A" & (field_expression "pmVar32->A" identifier -> field_identifier)))) - number_literal) ])) ;) })) }))) (expression_statement "pcVar16 = *(char **)(PTR_DAT_0003e1a8 + -0x14dc);" (assignment_expression "pcVar16 = *(char **)(PTR_DAT_0003e1a8 + -0x14dc)" identifier = (pointer_expression "*(char **)(PTR_DAT_0003e1a8 + -0x14dc)" * (cast_expression "(char **)(PTR_DAT_0003e1a8 + -0x14dc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0003e1a8 + -0x14dc)" ( (binary_expression "PTR_DAT_0003e1a8 + -0x14dc" identifier + number_literal) ))))) ;) (expression_statement "pmVar20 = *(md5_ctx **)(PTR_DAT_0003e1a8 + -0x14d8);" (assignment_expression "pmVar20 = *(md5_ctx **)(PTR_DAT_0003e1a8 + -0x14d8)" identifier = (pointer_expression "*(md5_ctx **)(PTR_DAT_0003e1a8 + -0x14d8)" * (cast_expression "(md5_ctx **)(PTR_DAT_0003e1a8 + -0x14d8)" ( (type_descriptor "md5_ctx **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0003e1a8 + -0x14d8)" ( (binary_expression "PTR_DAT_0003e1a8 + -0x14d8" identifier + number_literal) ))))) ;) (expression_statement "pcVar33 = (code *)PTR_strnumcmp_0003e1f0;" (assignment_expression "pcVar33 = (code *)PTR_strnumcmp_0003e1f0" identifier = (cast_expression "(code *)PTR_strnumcmp_0003e1f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_000177ec:\n    local_2158 = (*pcVar33)(pmVar25,pmVar32,pmVar20,pcVar16);" statement_identifier : (expression_statement "local_2158 = (*pcVar33)(pmVar25,pmVar32,pmVar20,pcVar16);" (assignment_expression "local_2158 = (*pcVar33)(pmVar25,pmVar32,pmVar20,pcVar16)" identifier = (call_expression "(*pcVar33)(pmVar25,pmVar32,pmVar20,pcVar16)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(pmVar25,pmVar32,pmVar20,pcVar16)" ( identifier , identifier , identifier , identifier )))) ;)) (expression_statement "local_2150 = pmVar24;" (assignment_expression "local_2150 = pmVar24" identifier = identifier) ;) (expression_statement "local_214c = pmVar23;" (assignment_expression "local_214c = pmVar23" identifier = identifier) ;) (if_statement "if (pmVar23 != (md5_ctx *)0x0) goto LAB_000175e4;" if (parenthesized_expression "(pmVar23 != (md5_ctx *)0x0)" ( (binary_expression "pmVar23 != (md5_ctx *)0x0" identifier != (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000175e4;" goto statement_identifier ;)) (labeled_statement "LAB_00017808:\n    if (pmVar24 != (md5_ctx *)0x0) goto LAB_000175e4;" statement_identifier : (if_statement "if (pmVar24 != (md5_ctx *)0x0) goto LAB_000175e4;" if (parenthesized_expression "(pmVar24 != (md5_ctx *)0x0)" ( (binary_expression "pmVar24 != (md5_ctx *)0x0" identifier != (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000175e4;" goto statement_identifier ;))) (expression_statement "*(char *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = cVar1;" (assignment_expression "*(char *)((int)pmVar22->total + (int)(pmVar26->total + -8)) = cVar1" (pointer_expression "*(char *)((int)pmVar22->total + (int)(pmVar26->total + -8))" * (cast_expression "(char *)((int)pmVar22->total + (int)(pmVar26->total + -8))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar22->total + (int)(pmVar26->total + -8))" ( (binary_expression "(int)pmVar22->total + (int)(pmVar26->total + -8)" (cast_expression "(int)pmVar22->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar22->total" identifier -> field_identifier)) + (cast_expression "(int)(pmVar26->total + -8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pmVar26->total + -8)" ( (binary_expression "pmVar26->total + -8" (field_expression "pmVar26->total" identifier -> field_identifier) + number_literal) )))) )))) = identifier) ;) (expression_statement "*(char *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = cVar2;" (assignment_expression "*(char *)((int)pmVar31->total + (int)(pmVar28->total + -8)) = cVar2" (pointer_expression "*(char *)((int)pmVar31->total + (int)(pmVar28->total + -8))" * (cast_expression "(char *)((int)pmVar31->total + (int)(pmVar28->total + -8))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar31->total + (int)(pmVar28->total + -8))" ( (binary_expression "(int)pmVar31->total + (int)(pmVar28->total + -8)" (cast_expression "(int)pmVar31->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar31->total" identifier -> field_identifier)) + (cast_expression "(int)(pmVar28->total + -8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pmVar28->total + -8)" ( (binary_expression "pmVar28->total + -8" (field_expression "pmVar28->total" identifier -> field_identifier) + number_literal) )))) )))) = identifier) ;) (expression_statement "pmVar28 = pmVar22;" (assignment_expression "pmVar28 = pmVar22" identifier = identifier) ;) (expression_statement "pmVar32 = pmVar31;" (assignment_expression "pmVar32 = pmVar31" identifier = identifier) ;) (labeled_statement "joined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        line_1 = (line *)line_1[2].length;\n        if (line_1 != (line *)0x0) {\n          pmVar30 = (md5_ctx *)a->text;\n          key_00 = (keyfield *)a->length;\n          pmVar29 = (md5_ctx *)b->text;\n          key = (keyfield *)b->length;\n          if (line_1->keybeg == (char *)0xffffffff) {\n            pcVar16 = line_1->text;\n            pmVar25 = (md5_ctx *)\n                      ((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4));\n            pmVar26 = (md5_ctx *)\n                      ((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4));\n          }\n          else {\n            plVar19 = line_1;\n            pmVar25 = (md5_ctx *)limfield((line *)pmVar30,key_00,line_1);\n            pmVar26 = (md5_ctx *)limfield((line *)pmVar29,key,plVar19);\n            pcVar16 = line_1->text;\n          }\n          if (pcVar16 != (char *)0xffffffff) {\n            plVar19 = line_1;\n            pmVar30 = (md5_ctx *)begfield((line *)pmVar30,key_00,line_1);\n            pmVar27 = (md5_ctx *)begfield((line *)pmVar29,key,plVar19);\n            goto LAB_0001743c;\n          }\n          bVar4 = pmVar30 < pmVar25;\n          pmVar27 = pmVar29;\n          if (*(char *)&line_1[1].keybeg == '\0') goto LAB_00017440;\n          pmVar22 = pmVar30;\n          if (pmVar25 <= pmVar30) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)&line_1[1].keylim + 3) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (iVar7 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar11 = (*pcVar14)();\n      pmVar22 = (md5_ctx *)(iVar11 + 1);\n      pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar22->total + -8));\n      if (line_1 == (line *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pmVar27 = pmVar25;\n      if (pmVar27 < pmStack_2118) {\n        pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pmVar26 = (md5_ctx *)xmalloc((size_t)pmVar27);\n      if (pmVar32 != (md5_ctx *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pmVar26,pmStack_213c,pmVar29);\n      }\n      pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n      local_214c = pmVar26;\n      if (local_2150 != (md5_ctx *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pmVar25,pmVar28,pmVar22);\n        if (pmVar32 == (md5_ctx *)0x0) goto LAB_0001809c;\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n        goto LAB_00017c8c;\n      }\n      if (pmVar32 != (md5_ctx *)0x0) {\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\nFUN_00017f2c:\n        if (pmStack_213c < pmStack_2120) {\n          pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n          pmVar30 = pmVar26;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130);\n            md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138);\n            if (local_2158 == 0) {\n              pmVar26 = pmVar22;\n              if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);\n              if (pmVar27 < pmStack_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);\n              pmVar29 = (md5_ctx *)(iVar11 + 1);\n              if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }\n              pmVar22 = (md5_ctx *)0x0;\n              pmVar25 = pmVar29;\n              if (pmVar27 < pmVar29) goto LAB_00017de0;\nLAB_00018174:\n              pmVar26 = pmVar30;\n              if (pmVar27 < pmVar25) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }\n            pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n            if (pmVar32 == (md5_ctx *)0x0) {\n              if (local_2150 == (md5_ctx *)0x0) break;\nLAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n            }\n            else {\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n            pmVar30 = pmVar26;\n            if (pmStack_211c <= pmVar28) break;\n          } while( true );\n        }\n      }\n      pmStack_213c = pmVar25;\n      local_2150 = pmVar22;\n      pmStack_211c = pmStack_20fc;\n      pmStack_2120 = pmStack_2100;\n      md5_process_bytes(pmVar26,(size_t)pmVar29,pmStack_2130);\n      pmVar27 = (md5_ctx *)dig;\n      md5_finish_ctx(pmStack_2130,pmVar27);\n      md5_process_bytes(pmStack_213c,(size_t)local_2150,pmStack_2138);\n      pmStack_2134 = (md5_ctx *)(dig + 1);\n      md5_finish_ctx(pmStack_2138,pmStack_2134);\n      uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmStack_2134,0x10);\n      pmVar23 = pmStack_20fc;\n      pmVar24 = pmStack_2100;\n      pmVar22 = pmStack_2108;\n      pmVar25 = pmVar29;\n      pmVar30 = pmVar26;\n      pmVar31 = pmStack_2104;\n      pmVar32 = pmStack_2110;\n      pmVar28 = pmStack_210c;\n      line_1 = plStack_2114;\n      if ((uVar12 == 0) && (uVar12 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pmVar27 = (md5_ctx *)(uint)(local_2150 < pmVar29);\n        pmVar25 = local_2150;\n        if (pmVar27 == (md5_ctx *)0x0) {\n          pmVar25 = pmVar29;\n        }\n        uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar26,pmStack_213c,pmVar25);\n        pmVar25 = pmVar29;\n        pmVar30 = pmVar26;\n        pmStack_2138 = pmVar24;\n        pmStack_2134 = pmVar23;\n        if (uVar12 == 0) {\n          uVar12 = (int)pmVar27 - (uint)(pmVar29 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar12;\n      pmVar26 = pmVar32;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pmVar29 = pmVar25;\n      local_2150 = pmVar24;\n      pmStack_213c = pmVar23;\nLAB_000175d8:\n      if (pmVar23 == (md5_ctx *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pmVar28 = pmVar22;\n      pmVar32 = pmVar31;\n    } while( true );" statement_identifier : (do_statement "do {\n      if (local_2158 == 0) {\n        line_1 = (line *)line_1[2].length;\n        if (line_1 != (line *)0x0) {\n          pmVar30 = (md5_ctx *)a->text;\n          key_00 = (keyfield *)a->length;\n          pmVar29 = (md5_ctx *)b->text;\n          key = (keyfield *)b->length;\n          if (line_1->keybeg == (char *)0xffffffff) {\n            pcVar16 = line_1->text;\n            pmVar25 = (md5_ctx *)\n                      ((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4));\n            pmVar26 = (md5_ctx *)\n                      ((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4));\n          }\n          else {\n            plVar19 = line_1;\n            pmVar25 = (md5_ctx *)limfield((line *)pmVar30,key_00,line_1);\n            pmVar26 = (md5_ctx *)limfield((line *)pmVar29,key,plVar19);\n            pcVar16 = line_1->text;\n          }\n          if (pcVar16 != (char *)0xffffffff) {\n            plVar19 = line_1;\n            pmVar30 = (md5_ctx *)begfield((line *)pmVar30,key_00,line_1);\n            pmVar27 = (md5_ctx *)begfield((line *)pmVar29,key,plVar19);\n            goto LAB_0001743c;\n          }\n          bVar4 = pmVar30 < pmVar25;\n          pmVar27 = pmVar29;\n          if (*(char *)&line_1[1].keybeg == '\0') goto LAB_00017440;\n          pmVar22 = pmVar30;\n          if (pmVar25 <= pmVar30) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)&line_1[1].keylim + 3) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (iVar7 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar11 = (*pcVar14)();\n      pmVar22 = (md5_ctx *)(iVar11 + 1);\n      pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar22->total + -8));\n      if (line_1 == (line *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pmVar27 = pmVar25;\n      if (pmVar27 < pmStack_2118) {\n        pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pmVar26 = (md5_ctx *)xmalloc((size_t)pmVar27);\n      if (pmVar32 != (md5_ctx *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pmVar26,pmStack_213c,pmVar29);\n      }\n      pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n      local_214c = pmVar26;\n      if (local_2150 != (md5_ctx *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pmVar25,pmVar28,pmVar22);\n        if (pmVar32 == (md5_ctx *)0x0) goto LAB_0001809c;\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n        goto LAB_00017c8c;\n      }\n      if (pmVar32 != (md5_ctx *)0x0) {\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\nFUN_00017f2c:\n        if (pmStack_213c < pmStack_2120) {\n          pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n          pmVar30 = pmVar26;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130);\n            md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138);\n            if (local_2158 == 0) {\n              pmVar26 = pmVar22;\n              if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);\n              if (pmVar27 < pmStack_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);\n              pmVar29 = (md5_ctx *)(iVar11 + 1);\n              if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }\n              pmVar22 = (md5_ctx *)0x0;\n              pmVar25 = pmVar29;\n              if (pmVar27 < pmVar29) goto LAB_00017de0;\nLAB_00018174:\n              pmVar26 = pmVar30;\n              if (pmVar27 < pmVar25) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }\n            pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n            if (pmVar32 == (md5_ctx *)0x0) {\n              if (local_2150 == (md5_ctx *)0x0) break;\nLAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n            }\n            else {\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n            pmVar30 = pmVar26;\n            if (pmStack_211c <= pmVar28) break;\n          } while( true );\n        }\n      }\n      pmStack_213c = pmVar25;\n      local_2150 = pmVar22;\n      pmStack_211c = pmStack_20fc;\n      pmStack_2120 = pmStack_2100;\n      md5_process_bytes(pmVar26,(size_t)pmVar29,pmStack_2130);\n      pmVar27 = (md5_ctx *)dig;\n      md5_finish_ctx(pmStack_2130,pmVar27);\n      md5_process_bytes(pmStack_213c,(size_t)local_2150,pmStack_2138);\n      pmStack_2134 = (md5_ctx *)(dig + 1);\n      md5_finish_ctx(pmStack_2138,pmStack_2134);\n      uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmStack_2134,0x10);\n      pmVar23 = pmStack_20fc;\n      pmVar24 = pmStack_2100;\n      pmVar22 = pmStack_2108;\n      pmVar25 = pmVar29;\n      pmVar30 = pmVar26;\n      pmVar31 = pmStack_2104;\n      pmVar32 = pmStack_2110;\n      pmVar28 = pmStack_210c;\n      line_1 = plStack_2114;\n      if ((uVar12 == 0) && (uVar12 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pmVar27 = (md5_ctx *)(uint)(local_2150 < pmVar29);\n        pmVar25 = local_2150;\n        if (pmVar27 == (md5_ctx *)0x0) {\n          pmVar25 = pmVar29;\n        }\n        uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar26,pmStack_213c,pmVar25);\n        pmVar25 = pmVar29;\n        pmVar30 = pmVar26;\n        pmStack_2138 = pmVar24;\n        pmStack_2134 = pmVar23;\n        if (uVar12 == 0) {\n          uVar12 = (int)pmVar27 - (uint)(pmVar29 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar12;\n      pmVar26 = pmVar32;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pmVar29 = pmVar25;\n      local_2150 = pmVar24;\n      pmStack_213c = pmVar23;\nLAB_000175d8:\n      if (pmVar23 == (md5_ctx *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pmVar28 = pmVar22;\n      pmVar32 = pmVar31;\n    } while( true );" do (compound_statement "{\n      if (local_2158 == 0) {\n        line_1 = (line *)line_1[2].length;\n        if (line_1 != (line *)0x0) {\n          pmVar30 = (md5_ctx *)a->text;\n          key_00 = (keyfield *)a->length;\n          pmVar29 = (md5_ctx *)b->text;\n          key = (keyfield *)b->length;\n          if (line_1->keybeg == (char *)0xffffffff) {\n            pcVar16 = line_1->text;\n            pmVar25 = (md5_ctx *)\n                      ((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4));\n            pmVar26 = (md5_ctx *)\n                      ((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4));\n          }\n          else {\n            plVar19 = line_1;\n            pmVar25 = (md5_ctx *)limfield((line *)pmVar30,key_00,line_1);\n            pmVar26 = (md5_ctx *)limfield((line *)pmVar29,key,plVar19);\n            pcVar16 = line_1->text;\n          }\n          if (pcVar16 != (char *)0xffffffff) {\n            plVar19 = line_1;\n            pmVar30 = (md5_ctx *)begfield((line *)pmVar30,key_00,line_1);\n            pmVar27 = (md5_ctx *)begfield((line *)pmVar29,key,plVar19);\n            goto LAB_0001743c;\n          }\n          bVar4 = pmVar30 < pmVar25;\n          pmVar27 = pmVar29;\n          if (*(char *)&line_1[1].keybeg == '\0') goto LAB_00017440;\n          pmVar22 = pmVar30;\n          if (pmVar25 <= pmVar30) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)&line_1[1].keylim + 3) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (iVar7 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar11 = (*pcVar14)();\n      pmVar22 = (md5_ctx *)(iVar11 + 1);\n      pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar22->total + -8));\n      if (line_1 == (line *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pmVar27 = pmVar25;\n      if (pmVar27 < pmStack_2118) {\n        pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pmVar26 = (md5_ctx *)xmalloc((size_t)pmVar27);\n      if (pmVar32 != (md5_ctx *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pmVar26,pmStack_213c,pmVar29);\n      }\n      pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n      local_214c = pmVar26;\n      if (local_2150 != (md5_ctx *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pmVar25,pmVar28,pmVar22);\n        if (pmVar32 == (md5_ctx *)0x0) goto LAB_0001809c;\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n        goto LAB_00017c8c;\n      }\n      if (pmVar32 != (md5_ctx *)0x0) {\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\nFUN_00017f2c:\n        if (pmStack_213c < pmStack_2120) {\n          pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n          pmVar30 = pmVar26;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130);\n            md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138);\n            if (local_2158 == 0) {\n              pmVar26 = pmVar22;\n              if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);\n              if (pmVar27 < pmStack_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);\n              pmVar29 = (md5_ctx *)(iVar11 + 1);\n              if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }\n              pmVar22 = (md5_ctx *)0x0;\n              pmVar25 = pmVar29;\n              if (pmVar27 < pmVar29) goto LAB_00017de0;\nLAB_00018174:\n              pmVar26 = pmVar30;\n              if (pmVar27 < pmVar25) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }\n            pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n            if (pmVar32 == (md5_ctx *)0x0) {\n              if (local_2150 == (md5_ctx *)0x0) break;\nLAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n            }\n            else {\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n            pmVar30 = pmVar26;\n            if (pmStack_211c <= pmVar28) break;\n          } while( true );\n        }\n      }\n      pmStack_213c = pmVar25;\n      local_2150 = pmVar22;\n      pmStack_211c = pmStack_20fc;\n      pmStack_2120 = pmStack_2100;\n      md5_process_bytes(pmVar26,(size_t)pmVar29,pmStack_2130);\n      pmVar27 = (md5_ctx *)dig;\n      md5_finish_ctx(pmStack_2130,pmVar27);\n      md5_process_bytes(pmStack_213c,(size_t)local_2150,pmStack_2138);\n      pmStack_2134 = (md5_ctx *)(dig + 1);\n      md5_finish_ctx(pmStack_2138,pmStack_2134);\n      uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmStack_2134,0x10);\n      pmVar23 = pmStack_20fc;\n      pmVar24 = pmStack_2100;\n      pmVar22 = pmStack_2108;\n      pmVar25 = pmVar29;\n      pmVar30 = pmVar26;\n      pmVar31 = pmStack_2104;\n      pmVar32 = pmStack_2110;\n      pmVar28 = pmStack_210c;\n      line_1 = plStack_2114;\n      if ((uVar12 == 0) && (uVar12 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pmVar27 = (md5_ctx *)(uint)(local_2150 < pmVar29);\n        pmVar25 = local_2150;\n        if (pmVar27 == (md5_ctx *)0x0) {\n          pmVar25 = pmVar29;\n        }\n        uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar26,pmStack_213c,pmVar25);\n        pmVar25 = pmVar29;\n        pmVar30 = pmVar26;\n        pmStack_2138 = pmVar24;\n        pmStack_2134 = pmVar23;\n        if (uVar12 == 0) {\n          uVar12 = (int)pmVar27 - (uint)(pmVar29 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar12;\n      pmVar26 = pmVar32;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pmVar29 = pmVar25;\n      local_2150 = pmVar24;\n      pmStack_213c = pmVar23;\nLAB_000175d8:\n      if (pmVar23 == (md5_ctx *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pmVar28 = pmVar22;\n      pmVar32 = pmVar31;\n    }" { (if_statement "if (local_2158 == 0) {\n        line_1 = (line *)line_1[2].length;\n        if (line_1 != (line *)0x0) {\n          pmVar30 = (md5_ctx *)a->text;\n          key_00 = (keyfield *)a->length;\n          pmVar29 = (md5_ctx *)b->text;\n          key = (keyfield *)b->length;\n          if (line_1->keybeg == (char *)0xffffffff) {\n            pcVar16 = line_1->text;\n            pmVar25 = (md5_ctx *)\n                      ((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4));\n            pmVar26 = (md5_ctx *)\n                      ((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4));\n          }\n          else {\n            plVar19 = line_1;\n            pmVar25 = (md5_ctx *)limfield((line *)pmVar30,key_00,line_1);\n            pmVar26 = (md5_ctx *)limfield((line *)pmVar29,key,plVar19);\n            pcVar16 = line_1->text;\n          }\n          if (pcVar16 != (char *)0xffffffff) {\n            plVar19 = line_1;\n            pmVar30 = (md5_ctx *)begfield((line *)pmVar30,key_00,line_1);\n            pmVar27 = (md5_ctx *)begfield((line *)pmVar29,key,plVar19);\n            goto LAB_0001743c;\n          }\n          bVar4 = pmVar30 < pmVar25;\n          pmVar27 = pmVar29;\n          if (*(char *)&line_1[1].keybeg == '\0') goto LAB_00017440;\n          pmVar22 = pmVar30;\n          if (pmVar25 <= pmVar30) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)&line_1[1].keylim + 3) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }" if (parenthesized_expression "(local_2158 == 0)" ( (binary_expression "local_2158 == 0" identifier == number_literal) )) (compound_statement "{\n        line_1 = (line *)line_1[2].length;\n        if (line_1 != (line *)0x0) {\n          pmVar30 = (md5_ctx *)a->text;\n          key_00 = (keyfield *)a->length;\n          pmVar29 = (md5_ctx *)b->text;\n          key = (keyfield *)b->length;\n          if (line_1->keybeg == (char *)0xffffffff) {\n            pcVar16 = line_1->text;\n            pmVar25 = (md5_ctx *)\n                      ((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4));\n            pmVar26 = (md5_ctx *)\n                      ((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4));\n          }\n          else {\n            plVar19 = line_1;\n            pmVar25 = (md5_ctx *)limfield((line *)pmVar30,key_00,line_1);\n            pmVar26 = (md5_ctx *)limfield((line *)pmVar29,key,plVar19);\n            pcVar16 = line_1->text;\n          }\n          if (pcVar16 != (char *)0xffffffff) {\n            plVar19 = line_1;\n            pmVar30 = (md5_ctx *)begfield((line *)pmVar30,key_00,line_1);\n            pmVar27 = (md5_ctx *)begfield((line *)pmVar29,key,plVar19);\n            goto LAB_0001743c;\n          }\n          bVar4 = pmVar30 < pmVar25;\n          pmVar27 = pmVar29;\n          if (*(char *)&line_1[1].keybeg == '\0') goto LAB_00017440;\n          pmVar22 = pmVar30;\n          if (pmVar25 <= pmVar30) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }" { (expression_statement "line_1 = (line *)line_1[2].length;" (assignment_expression "line_1 = (line *)line_1[2].length" identifier = (cast_expression "(line *)line_1[2].length" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "line_1[2].length" (subscript_expression "line_1[2]" identifier [ number_literal ]) . field_identifier))) ;) (if_statement "if (line_1 != (line *)0x0) {\n          pmVar30 = (md5_ctx *)a->text;\n          key_00 = (keyfield *)a->length;\n          pmVar29 = (md5_ctx *)b->text;\n          key = (keyfield *)b->length;\n          if (line_1->keybeg == (char *)0xffffffff) {\n            pcVar16 = line_1->text;\n            pmVar25 = (md5_ctx *)\n                      ((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4));\n            pmVar26 = (md5_ctx *)\n                      ((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4));\n          }\n          else {\n            plVar19 = line_1;\n            pmVar25 = (md5_ctx *)limfield((line *)pmVar30,key_00,line_1);\n            pmVar26 = (md5_ctx *)limfield((line *)pmVar29,key,plVar19);\n            pcVar16 = line_1->text;\n          }\n          if (pcVar16 != (char *)0xffffffff) {\n            plVar19 = line_1;\n            pmVar30 = (md5_ctx *)begfield((line *)pmVar30,key_00,line_1);\n            pmVar27 = (md5_ctx *)begfield((line *)pmVar29,key,plVar19);\n            goto LAB_0001743c;\n          }\n          bVar4 = pmVar30 < pmVar25;\n          pmVar27 = pmVar29;\n          if (*(char *)&line_1[1].keybeg == '\0') goto LAB_00017440;\n          pmVar22 = pmVar30;\n          if (pmVar25 <= pmVar30) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }" if (parenthesized_expression "(line_1 != (line *)0x0)" ( (binary_expression "line_1 != (line *)0x0" identifier != (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pmVar30 = (md5_ctx *)a->text;\n          key_00 = (keyfield *)a->length;\n          pmVar29 = (md5_ctx *)b->text;\n          key = (keyfield *)b->length;\n          if (line_1->keybeg == (char *)0xffffffff) {\n            pcVar16 = line_1->text;\n            pmVar25 = (md5_ctx *)\n                      ((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4));\n            pmVar26 = (md5_ctx *)\n                      ((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4));\n          }\n          else {\n            plVar19 = line_1;\n            pmVar25 = (md5_ctx *)limfield((line *)pmVar30,key_00,line_1);\n            pmVar26 = (md5_ctx *)limfield((line *)pmVar29,key,plVar19);\n            pcVar16 = line_1->text;\n          }\n          if (pcVar16 != (char *)0xffffffff) {\n            plVar19 = line_1;\n            pmVar30 = (md5_ctx *)begfield((line *)pmVar30,key_00,line_1);\n            pmVar27 = (md5_ctx *)begfield((line *)pmVar29,key,plVar19);\n            goto LAB_0001743c;\n          }\n          bVar4 = pmVar30 < pmVar25;\n          pmVar27 = pmVar29;\n          if (*(char *)&line_1[1].keybeg == '\0') goto LAB_00017440;\n          pmVar22 = pmVar30;\n          if (pmVar25 <= pmVar30) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }" { (expression_statement "pmVar30 = (md5_ctx *)a->text;" (assignment_expression "pmVar30 = (md5_ctx *)a->text" identifier = (cast_expression "(md5_ctx *)a->text" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "a->text" identifier -> field_identifier))) ;) (expression_statement "key_00 = (keyfield *)a->length;" (assignment_expression "key_00 = (keyfield *)a->length" identifier = (cast_expression "(keyfield *)a->length" ( (type_descriptor "keyfield *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "a->length" identifier -> field_identifier))) ;) (expression_statement "pmVar29 = (md5_ctx *)b->text;" (assignment_expression "pmVar29 = (md5_ctx *)b->text" identifier = (cast_expression "(md5_ctx *)b->text" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "b->text" identifier -> field_identifier))) ;) (expression_statement "key = (keyfield *)b->length;" (assignment_expression "key = (keyfield *)b->length" identifier = (cast_expression "(keyfield *)b->length" ( (type_descriptor "keyfield *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "b->length" identifier -> field_identifier))) ;) (if_statement "if (line_1->keybeg == (char *)0xffffffff) {\n            pcVar16 = line_1->text;\n            pmVar25 = (md5_ctx *)\n                      ((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4));\n            pmVar26 = (md5_ctx *)\n                      ((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4));\n          }\n          else {\n            plVar19 = line_1;\n            pmVar25 = (md5_ctx *)limfield((line *)pmVar30,key_00,line_1);\n            pmVar26 = (md5_ctx *)limfield((line *)pmVar29,key,plVar19);\n            pcVar16 = line_1->text;\n          }" if (parenthesized_expression "(line_1->keybeg == (char *)0xffffffff)" ( (binary_expression "line_1->keybeg == (char *)0xffffffff" (field_expression "line_1->keybeg" identifier -> field_identifier) == (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar16 = line_1->text;\n            pmVar25 = (md5_ctx *)\n                      ((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4));\n            pmVar26 = (md5_ctx *)\n                      ((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4));\n          }" { (expression_statement "pcVar16 = line_1->text;" (assignment_expression "pcVar16 = line_1->text" identifier = (field_expression "line_1->text" identifier -> field_identifier)) ;) (expression_statement "pmVar25 = (md5_ctx *)\n                      ((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4));" (assignment_expression "pmVar25 = (md5_ctx *)\n                      ((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4))" identifier = (cast_expression "(md5_ctx *)\n                      ((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4))" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4))" ( (binary_expression "(undefined1 *)((int)&key_00[-1].next + 3) + (int)(pmVar30->total + -4)" (cast_expression "(undefined1 *)((int)&key_00[-1].next + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&key_00[-1].next + 3)" ( (binary_expression "(int)&key_00[-1].next + 3" (cast_expression "(int)&key_00[-1].next" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&key_00[-1].next" & (field_expression "key_00[-1].next" (subscript_expression "key_00[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) + (cast_expression "(int)(pmVar30->total + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pmVar30->total + -4)" ( (binary_expression "pmVar30->total + -4" (field_expression "pmVar30->total" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "pmVar26 = (md5_ctx *)\n                      ((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4));" (assignment_expression "pmVar26 = (md5_ctx *)\n                      ((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4))" identifier = (cast_expression "(md5_ctx *)\n                      ((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4))" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4))" ( (binary_expression "(undefined1 *)((int)&key[-1].next + 3) + (int)(pmVar29->total + -4)" (cast_expression "(undefined1 *)((int)&key[-1].next + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&key[-1].next + 3)" ( (binary_expression "(int)&key[-1].next + 3" (cast_expression "(int)&key[-1].next" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&key[-1].next" & (field_expression "key[-1].next" (subscript_expression "key[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) + (cast_expression "(int)(pmVar29->total + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pmVar29->total + -4)" ( (binary_expression "pmVar29->total + -4" (field_expression "pmVar29->total" identifier -> field_identifier) + number_literal) )))) )))) ;) }) (else_clause "else {\n            plVar19 = line_1;\n            pmVar25 = (md5_ctx *)limfield((line *)pmVar30,key_00,line_1);\n            pmVar26 = (md5_ctx *)limfield((line *)pmVar29,key,plVar19);\n            pcVar16 = line_1->text;\n          }" else (compound_statement "{\n            plVar19 = line_1;\n            pmVar25 = (md5_ctx *)limfield((line *)pmVar30,key_00,line_1);\n            pmVar26 = (md5_ctx *)limfield((line *)pmVar29,key,plVar19);\n            pcVar16 = line_1->text;\n          }" { (expression_statement "plVar19 = line_1;" (assignment_expression "plVar19 = line_1" identifier = identifier) ;) (expression_statement "pmVar25 = (md5_ctx *)limfield((line *)pmVar30,key_00,line_1);" (assignment_expression "pmVar25 = (md5_ctx *)limfield((line *)pmVar30,key_00,line_1)" identifier = (cast_expression "(md5_ctx *)limfield((line *)pmVar30,key_00,line_1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "limfield((line *)pmVar30,key_00,line_1)" identifier (argument_list "((line *)pmVar30,key_00,line_1)" ( (cast_expression "(line *)pmVar30" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier ))))) ;) (expression_statement "pmVar26 = (md5_ctx *)limfield((line *)pmVar29,key,plVar19);" (assignment_expression "pmVar26 = (md5_ctx *)limfield((line *)pmVar29,key,plVar19)" identifier = (cast_expression "(md5_ctx *)limfield((line *)pmVar29,key,plVar19)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "limfield((line *)pmVar29,key,plVar19)" identifier (argument_list "((line *)pmVar29,key,plVar19)" ( (cast_expression "(line *)pmVar29" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier ))))) ;) (expression_statement "pcVar16 = line_1->text;" (assignment_expression "pcVar16 = line_1->text" identifier = (field_expression "line_1->text" identifier -> field_identifier)) ;) }))) (if_statement "if (pcVar16 != (char *)0xffffffff) {\n            plVar19 = line_1;\n            pmVar30 = (md5_ctx *)begfield((line *)pmVar30,key_00,line_1);\n            pmVar27 = (md5_ctx *)begfield((line *)pmVar29,key,plVar19);\n            goto LAB_0001743c;\n          }" if (parenthesized_expression "(pcVar16 != (char *)0xffffffff)" ( (binary_expression "pcVar16 != (char *)0xffffffff" identifier != (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            plVar19 = line_1;\n            pmVar30 = (md5_ctx *)begfield((line *)pmVar30,key_00,line_1);\n            pmVar27 = (md5_ctx *)begfield((line *)pmVar29,key,plVar19);\n            goto LAB_0001743c;\n          }" { (expression_statement "plVar19 = line_1;" (assignment_expression "plVar19 = line_1" identifier = identifier) ;) (expression_statement "pmVar30 = (md5_ctx *)begfield((line *)pmVar30,key_00,line_1);" (assignment_expression "pmVar30 = (md5_ctx *)begfield((line *)pmVar30,key_00,line_1)" identifier = (cast_expression "(md5_ctx *)begfield((line *)pmVar30,key_00,line_1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "begfield((line *)pmVar30,key_00,line_1)" identifier (argument_list "((line *)pmVar30,key_00,line_1)" ( (cast_expression "(line *)pmVar30" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier ))))) ;) (expression_statement "pmVar27 = (md5_ctx *)begfield((line *)pmVar29,key,plVar19);" (assignment_expression "pmVar27 = (md5_ctx *)begfield((line *)pmVar29,key,plVar19)" identifier = (cast_expression "(md5_ctx *)begfield((line *)pmVar29,key,plVar19)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "begfield((line *)pmVar29,key,plVar19)" identifier (argument_list "((line *)pmVar29,key,plVar19)" ( (cast_expression "(line *)pmVar29" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier ))))) ;) (goto_statement "goto LAB_0001743c;" goto statement_identifier ;) })) (expression_statement "bVar4 = pmVar30 < pmVar25;" (assignment_expression "bVar4 = pmVar30 < pmVar25" identifier = (binary_expression "pmVar30 < pmVar25" identifier < identifier)) ;) (expression_statement "pmVar27 = pmVar29;" (assignment_expression "pmVar27 = pmVar29" identifier = identifier) ;) (if_statement "if (*(char *)&line_1[1].keybeg == '\0') goto LAB_00017440;" if (parenthesized_expression "(*(char *)&line_1[1].keybeg == '\0')" ( (binary_expression "*(char *)&line_1[1].keybeg == '\0'" (pointer_expression "*(char *)&line_1[1].keybeg" * (cast_expression "(char *)&line_1[1].keybeg" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&line_1[1].keybeg" & (field_expression "line_1[1].keybeg" (subscript_expression "line_1[1]" identifier [ number_literal ]) . field_identifier)))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00017440;" goto statement_identifier ;)) (expression_statement "pmVar22 = pmVar30;" (assignment_expression "pmVar22 = pmVar30" identifier = identifier) ;) (if_statement "if (pmVar25 <= pmVar30) goto LAB_000178f8;" if (parenthesized_expression "(pmVar25 <= pmVar30)" ( (binary_expression "pmVar25 <= pmVar30" identifier <= identifier) )) (goto_statement "goto LAB_000178f8;" goto statement_identifier ;)) (goto_statement "goto LAB_000178dc;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00017838:\n        if (*(char *)((int)&line_1[1].keylim + 3) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }" else (compound_statement "{\nLAB_00017838:\n        if (*(char *)((int)&line_1[1].keylim + 3) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }" { (labeled_statement "LAB_00017838:\n        if (*(char *)((int)&line_1[1].keylim + 3) != '\0') {\n          local_2158 = -local_2158;\n        }" statement_identifier : (if_statement "if (*(char *)((int)&line_1[1].keylim + 3) != '\0') {\n          local_2158 = -local_2158;\n        }" if (parenthesized_expression "(*(char *)((int)&line_1[1].keylim + 3) != '\0')" ( (binary_expression "*(char *)((int)&line_1[1].keylim + 3) != '\0'" (pointer_expression "*(char *)((int)&line_1[1].keylim + 3)" * (cast_expression "(char *)((int)&line_1[1].keylim + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&line_1[1].keylim + 3)" ( (binary_expression "(int)&line_1[1].keylim + 3" (cast_expression "(int)&line_1[1].keylim" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&line_1[1].keylim" & (field_expression "line_1[1].keylim" (subscript_expression "line_1[1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_2158 = -local_2158;\n        }" { (expression_statement "local_2158 = -local_2158;" (assignment_expression "local_2158 = -local_2158" identifier = (unary_expression "-local_2158" - identifier)) ;) }))) }))) (if_statement "if (iVar7 == *(int *)puVar6) {\n        return local_2158;\n      }" if (parenthesized_expression "(iVar7 == *(int *)puVar6)" ( (binary_expression "iVar7 == *(int *)puVar6" identifier == (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return local_2158;\n      }" { (return_statement "return local_2158;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_0003e518)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003e518)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003e518)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0003e518" * (cast_expression "(code *)PTR___stack_chk_fail_0003e518" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00017dc0:\n      iVar11 = (*pcVar14)();" statement_identifier : (expression_statement "iVar11 = (*pcVar14)();" (assignment_expression "iVar11 = (*pcVar14)()" identifier = (call_expression "(*pcVar14)()" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "()" ( )))) ;)) (expression_statement "pmVar22 = (md5_ctx *)(iVar11 + 1);" (assignment_expression "pmVar22 = (md5_ctx *)(iVar11 + 1)" identifier = (cast_expression "(md5_ctx *)(iVar11 + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 1)" ( (binary_expression "iVar11 + 1" identifier + number_literal) )))) ;) (expression_statement "pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar22->total + -8));" (assignment_expression "pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar22->total + -8))" identifier = (cast_expression "(md5_ctx *)((int)pmVar29->total + (int)(pmVar22->total + -8))" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar29->total + (int)(pmVar22->total + -8))" ( (binary_expression "(int)pmVar29->total + (int)(pmVar22->total + -8)" (cast_expression "(int)pmVar29->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar29->total" identifier -> field_identifier)) + (cast_expression "(int)(pmVar22->total + -8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pmVar22->total + -8)" ( (binary_expression "pmVar22->total + -8" (field_expression "pmVar22->total" identifier -> field_identifier) + number_literal) )))) )))) ;) (if_statement "if (line_1 == (line *)0x0) goto LAB_00018174;" if (parenthesized_expression "(line_1 == (line *)0x0)" ( (binary_expression "line_1 == (line *)0x0" identifier == (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00018174;" goto statement_identifier ;)) (labeled_statement "LAB_00017de0:\n      pmVar27 = pmVar25;" statement_identifier : (expression_statement "pmVar27 = pmVar25;" (assignment_expression "pmVar27 = pmVar25" identifier = identifier) ;)) (if_statement "if (pmVar27 < pmStack_2118) {\n        pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n      }" if (parenthesized_expression "(pmVar27 < pmStack_2118)" ( (binary_expression "pmVar27 < pmStack_2118" identifier < identifier) )) (compound_statement "{\n        pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n      }" { (expression_statement "pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);" (assignment_expression "pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1)" identifier = (cast_expression "(md5_ctx *)((uint)((int)pmVar27 * 3) >> 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((int)pmVar27 * 3) >> 1)" ( (binary_expression "(uint)((int)pmVar27 * 3) >> 1" (call_expression "(uint)((int)pmVar27 * 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pmVar27 * 3)" ( (binary_expression "(int)pmVar27 * 3" (cast_expression "(int)pmVar27" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) >> number_literal) )))) ;) })) (expression_statement "(*(code *)PTR_free_0003e558)(local_214c);" (call_expression "(*(code *)PTR_free_0003e558)(local_214c)" (parenthesized_expression "(*(code *)PTR_free_0003e558)" ( (pointer_expression "*(code *)PTR_free_0003e558" * (cast_expression "(code *)PTR_free_0003e558" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_214c)" ( identifier ))) ;) (expression_statement "pmVar26 = (md5_ctx *)xmalloc((size_t)pmVar27);" (assignment_expression "pmVar26 = (md5_ctx *)xmalloc((size_t)pmVar27)" identifier = (cast_expression "(md5_ctx *)xmalloc((size_t)pmVar27)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((size_t)pmVar27)" identifier (argument_list "((size_t)pmVar27)" ( (cast_expression "(size_t)pmVar27" ( (type_descriptor "size_t" primitive_type) ) identifier) ))))) ;) (if_statement "if (pmVar32 != (md5_ctx *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pmVar26,pmStack_213c,pmVar29);\n      }" if (parenthesized_expression "(pmVar32 != (md5_ctx *)0x0)" ( (binary_expression "pmVar32 != (md5_ctx *)0x0" identifier != (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR_strxfrm_0003e464)(pmVar26,pmStack_213c,pmVar29);\n      }" { (expression_statement "(*(code *)PTR_strxfrm_0003e464)(pmVar26,pmStack_213c,pmVar29);" (call_expression "(*(code *)PTR_strxfrm_0003e464)(pmVar26,pmStack_213c,pmVar29)" (parenthesized_expression "(*(code *)PTR_strxfrm_0003e464)" ( (pointer_expression "*(code *)PTR_strxfrm_0003e464" * (cast_expression "(code *)PTR_strxfrm_0003e464" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar26,pmStack_213c,pmVar29)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));" (assignment_expression "pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8))" identifier = (cast_expression "(md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8))" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar29->total + (int)(pmVar26->total + -8))" ( (binary_expression "(int)pmVar29->total + (int)(pmVar26->total + -8)" (cast_expression "(int)pmVar29->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar29->total" identifier -> field_identifier)) + (cast_expression "(int)(pmVar26->total + -8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pmVar26->total + -8)" ( (binary_expression "pmVar26->total + -8" (field_expression "pmVar26->total" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "local_214c = pmVar26;" (assignment_expression "local_214c = pmVar26" identifier = identifier) ;) (if_statement "if (local_2150 != (md5_ctx *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pmVar25,pmVar28,pmVar22);\n        if (pmVar32 == (md5_ctx *)0x0) goto LAB_0001809c;\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n        goto LAB_00017c8c;\n      }" if (parenthesized_expression "(local_2150 != (md5_ctx *)0x0)" ( (binary_expression "local_2150 != (md5_ctx *)0x0" identifier != (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR_strxfrm_0003e464)(pmVar25,pmVar28,pmVar22);\n        if (pmVar32 == (md5_ctx *)0x0) goto LAB_0001809c;\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n        goto LAB_00017c8c;\n      }" { (expression_statement "(*(code *)PTR_strxfrm_0003e464)(pmVar25,pmVar28,pmVar22);" (call_expression "(*(code *)PTR_strxfrm_0003e464)(pmVar25,pmVar28,pmVar22)" (parenthesized_expression "(*(code *)PTR_strxfrm_0003e464)" ( (pointer_expression "*(code *)PTR_strxfrm_0003e464" * (cast_expression "(code *)PTR_strxfrm_0003e464" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar25,pmVar28,pmVar22)" ( identifier , identifier , identifier ))) ;) (if_statement "if (pmVar32 == (md5_ctx *)0x0) goto LAB_0001809c;" if (parenthesized_expression "(pmVar32 == (md5_ctx *)0x0)" ( (binary_expression "pmVar32 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001809c;" goto statement_identifier ;)) (expression_statement "iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);" (assignment_expression "iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c)" identifier = (call_expression "(*(code *)PTR_strlen_0003e488)(pmStack_213c)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" ( (pointer_expression "*(code *)PTR_strlen_0003e488" * (cast_expression "(code *)PTR_strlen_0003e488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmStack_213c)" ( identifier )))) ;) (expression_statement "pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);" (assignment_expression "pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf)" identifier = (cast_expression "(md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmStack_213c->total + iVar11 + -0xf)" ( (binary_expression "(int)pmStack_213c->total + iVar11 + -0xf" (binary_expression "(int)pmStack_213c->total + iVar11" (cast_expression "(int)pmStack_213c->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmStack_213c->total" identifier -> field_identifier)) + identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00017c8c;" goto statement_identifier ;) })) (if_statement "if (pmVar32 != (md5_ctx *)0x0) {\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\nFUN_00017f2c:\n        if (pmStack_213c < pmStack_2120) {\n          pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n          pmVar30 = pmVar26;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130);\n            md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138);\n            if (local_2158 == 0) {\n              pmVar26 = pmVar22;\n              if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);\n              if (pmVar27 < pmStack_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);\n              pmVar29 = (md5_ctx *)(iVar11 + 1);\n              if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }\n              pmVar22 = (md5_ctx *)0x0;\n              pmVar25 = pmVar29;\n              if (pmVar27 < pmVar29) goto LAB_00017de0;\nLAB_00018174:\n              pmVar26 = pmVar30;\n              if (pmVar27 < pmVar25) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }\n            pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n            if (pmVar32 == (md5_ctx *)0x0) {\n              if (local_2150 == (md5_ctx *)0x0) break;\nLAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n            }\n            else {\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n            pmVar30 = pmVar26;\n            if (pmStack_211c <= pmVar28) break;\n          } while( true );\n        }\n      }" if (parenthesized_expression "(pmVar32 != (md5_ctx *)0x0)" ( (binary_expression "pmVar32 != (md5_ctx *)0x0" identifier != (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n        pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\nFUN_00017f2c:\n        if (pmStack_213c < pmStack_2120) {\n          pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n          pmVar30 = pmVar26;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130);\n            md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138);\n            if (local_2158 == 0) {\n              pmVar26 = pmVar22;\n              if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);\n              if (pmVar27 < pmStack_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);\n              pmVar29 = (md5_ctx *)(iVar11 + 1);\n              if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }\n              pmVar22 = (md5_ctx *)0x0;\n              pmVar25 = pmVar29;\n              if (pmVar27 < pmVar29) goto LAB_00017de0;\nLAB_00018174:\n              pmVar26 = pmVar30;\n              if (pmVar27 < pmVar25) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }\n            pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n            if (pmVar32 == (md5_ctx *)0x0) {\n              if (local_2150 == (md5_ctx *)0x0) break;\nLAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n            }\n            else {\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n            pmVar30 = pmVar26;\n            if (pmStack_211c <= pmVar28) break;\n          } while( true );\n        }\n      }" { (expression_statement "iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);" (assignment_expression "iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c)" identifier = (call_expression "(*(code *)PTR_strlen_0003e488)(pmStack_213c)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" ( (pointer_expression "*(code *)PTR_strlen_0003e488" * (cast_expression "(code *)PTR_strlen_0003e488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmStack_213c)" ( identifier )))) ;) (expression_statement "pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);" (assignment_expression "pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf)" identifier = (cast_expression "(md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmStack_213c->total + iVar11 + -0xf)" ( (binary_expression "(int)pmStack_213c->total + iVar11 + -0xf" (binary_expression "(int)pmStack_213c->total + iVar11" (cast_expression "(int)pmStack_213c->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmStack_213c->total" identifier -> field_identifier)) + identifier) + number_literal) )))) ;) (labeled_statement "FUN_00017f2c:\n        if (pmStack_213c < pmStack_2120) {\n          pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n          pmVar30 = pmVar26;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130);\n            md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138);\n            if (local_2158 == 0) {\n              pmVar26 = pmVar22;\n              if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);\n              if (pmVar27 < pmStack_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);\n              pmVar29 = (md5_ctx *)(iVar11 + 1);\n              if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }\n              pmVar22 = (md5_ctx *)0x0;\n              pmVar25 = pmVar29;\n              if (pmVar27 < pmVar29) goto LAB_00017de0;\nLAB_00018174:\n              pmVar26 = pmVar30;\n              if (pmVar27 < pmVar25) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }\n            pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n            if (pmVar32 == (md5_ctx *)0x0) {\n              if (local_2150 == (md5_ctx *)0x0) break;\nLAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n            }\n            else {\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n            pmVar30 = pmVar26;\n            if (pmStack_211c <= pmVar28) break;\n          } while( true );\n        }" statement_identifier : (if_statement "if (pmStack_213c < pmStack_2120) {\n          pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n          pmVar30 = pmVar26;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130);\n            md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138);\n            if (local_2158 == 0) {\n              pmVar26 = pmVar22;\n              if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);\n              if (pmVar27 < pmStack_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);\n              pmVar29 = (md5_ctx *)(iVar11 + 1);\n              if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }\n              pmVar22 = (md5_ctx *)0x0;\n              pmVar25 = pmVar29;\n              if (pmVar27 < pmVar29) goto LAB_00017de0;\nLAB_00018174:\n              pmVar26 = pmVar30;\n              if (pmVar27 < pmVar25) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }\n            pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n            if (pmVar32 == (md5_ctx *)0x0) {\n              if (local_2150 == (md5_ctx *)0x0) break;\nLAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n            }\n            else {\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n            pmVar30 = pmVar26;\n            if (pmStack_211c <= pmVar28) break;\n          } while( true );\n        }" if (parenthesized_expression "(pmStack_213c < pmStack_2120)" ( (binary_expression "pmStack_213c < pmStack_2120" identifier < identifier) )) (compound_statement "{\n          pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n          pmVar30 = pmVar26;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130);\n            md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138);\n            if (local_2158 == 0) {\n              pmVar26 = pmVar22;\n              if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);\n              if (pmVar27 < pmStack_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);\n              pmVar29 = (md5_ctx *)(iVar11 + 1);\n              if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }\n              pmVar22 = (md5_ctx *)0x0;\n              pmVar25 = pmVar29;\n              if (pmVar27 < pmVar29) goto LAB_00017de0;\nLAB_00018174:\n              pmVar26 = pmVar30;\n              if (pmVar27 < pmVar25) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }\n            pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n            if (pmVar32 == (md5_ctx *)0x0) {\n              if (local_2150 == (md5_ctx *)0x0) break;\nLAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n            }\n            else {\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n            pmVar30 = pmVar26;\n            if (pmStack_211c <= pmVar28) break;\n          } while( true );\n        }" { (expression_statement "pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);" (assignment_expression "pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120)" identifier = (cast_expression "(md5_ctx *)(uint)(pmStack_213c < pmStack_2120)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pmStack_213c < pmStack_2120)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmStack_213c < pmStack_2120)" ( (binary_expression "pmStack_213c < pmStack_2120" identifier < identifier) ))))) ;) (expression_statement "pmVar30 = pmVar26;" (assignment_expression "pmVar30 = pmVar26" identifier = identifier) ;) (labeled_statement "LAB_00017cc8:\n          do {\n            md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130);\n            md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138);\n            if (local_2158 == 0) {\n              pmVar26 = pmVar22;\n              if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);\n              if (pmVar27 < pmStack_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);\n              pmVar29 = (md5_ctx *)(iVar11 + 1);\n              if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }\n              pmVar22 = (md5_ctx *)0x0;\n              pmVar25 = pmVar29;\n              if (pmVar27 < pmVar29) goto LAB_00017de0;\nLAB_00018174:\n              pmVar26 = pmVar30;\n              if (pmVar27 < pmVar25) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }\n            pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n            if (pmVar32 == (md5_ctx *)0x0) {\n              if (local_2150 == (md5_ctx *)0x0) break;\nLAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n            }\n            else {\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n            pmVar30 = pmVar26;\n            if (pmStack_211c <= pmVar28) break;\n          } while( true );" statement_identifier : (do_statement "do {\n            md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130);\n            md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138);\n            if (local_2158 == 0) {\n              pmVar26 = pmVar22;\n              if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);\n              if (pmVar27 < pmStack_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);\n              pmVar29 = (md5_ctx *)(iVar11 + 1);\n              if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }\n              pmVar22 = (md5_ctx *)0x0;\n              pmVar25 = pmVar29;\n              if (pmVar27 < pmVar29) goto LAB_00017de0;\nLAB_00018174:\n              pmVar26 = pmVar30;\n              if (pmVar27 < pmVar25) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }\n            pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n            if (pmVar32 == (md5_ctx *)0x0) {\n              if (local_2150 == (md5_ctx *)0x0) break;\nLAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n            }\n            else {\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n            pmVar30 = pmVar26;\n            if (pmStack_211c <= pmVar28) break;\n          } while( true );" do (compound_statement "{\n            md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130);\n            md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138);\n            if (local_2158 == 0) {\n              pmVar26 = pmVar22;\n              if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);\n              if (pmVar27 < pmStack_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);\n              pmVar29 = (md5_ctx *)(iVar11 + 1);\n              if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }\n              pmVar22 = (md5_ctx *)0x0;\n              pmVar25 = pmVar29;\n              if (pmVar27 < pmVar29) goto LAB_00017de0;\nLAB_00018174:\n              pmVar26 = pmVar30;\n              if (pmVar27 < pmVar25) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }\n            pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));\n            if (pmVar32 == (md5_ctx *)0x0) {\n              if (local_2150 == (md5_ctx *)0x0) break;\nLAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n            }\n            else {\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n            pmVar30 = pmVar26;\n            if (pmStack_211c <= pmVar28) break;\n          }" { (expression_statement "md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130);" (call_expression "md5_process_bytes(pmVar30,(size_t)pmVar29,pmStack_2130)" identifier (argument_list "(pmVar30,(size_t)pmVar29,pmStack_2130)" ( identifier , (cast_expression "(size_t)pmVar29" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier ))) ;) (expression_statement "md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138);" (call_expression "md5_process_bytes(pmVar25,(size_t)pmVar22,pmStack_2138)" identifier (argument_list "(pmVar25,(size_t)pmVar22,pmStack_2138)" ( identifier , (cast_expression "(size_t)pmVar22" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier ))) ;) (if_statement "if (local_2158 == 0) {\n              pmVar26 = pmVar22;\n              if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);\n              if (pmVar27 < pmStack_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);\n              pmVar29 = (md5_ctx *)(iVar11 + 1);\n              if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }\n              pmVar22 = (md5_ctx *)0x0;\n              pmVar25 = pmVar29;\n              if (pmVar27 < pmVar29) goto LAB_00017de0;\nLAB_00018174:\n              pmVar26 = pmVar30;\n              if (pmVar27 < pmVar25) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }" if (parenthesized_expression "(local_2158 == 0)" ( (binary_expression "local_2158 == 0" identifier == number_literal) )) (compound_statement "{\n              pmVar26 = pmVar22;\n              if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);\n              if (pmVar27 < pmStack_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);\n              pmVar29 = (md5_ctx *)(iVar11 + 1);\n              if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }\n              pmVar22 = (md5_ctx *)0x0;\n              pmVar25 = pmVar29;\n              if (pmVar27 < pmVar29) goto LAB_00017de0;\nLAB_00018174:\n              pmVar26 = pmVar30;\n              if (pmVar27 < pmVar25) goto LAB_00017de0;\n            }" { (expression_statement "pmVar26 = pmVar22;" (assignment_expression "pmVar26 = pmVar22" identifier = identifier) ;) (if_statement "if (pmVar22 < pmVar29 == 0) {\n                pmVar26 = pmVar29;\n              }" if (parenthesized_expression "(pmVar22 < pmVar29 == 0)" ( (binary_expression "pmVar22 < pmVar29 == 0" (binary_expression "pmVar22 < pmVar29" identifier < identifier) == number_literal) )) (compound_statement "{\n                pmVar26 = pmVar29;\n              }" { (expression_statement "pmVar26 = pmVar29;" (assignment_expression "pmVar26 = pmVar29" identifier = identifier) ;) })) (expression_statement "local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26);" (assignment_expression "local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26)" identifier = (call_expression "(*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar25,pmVar26)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" ( (pointer_expression "*(code *)PTR_memcmp_0003e52c" * (cast_expression "(code *)PTR_memcmp_0003e52c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar30,pmVar25,pmVar26)" ( identifier , identifier , identifier )))) ;) (if_statement "if (local_2158 != 0) goto LAB_00017c30;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017c30;" goto statement_identifier ;)) (expression_statement "local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22);" (assignment_expression "local_2158 = (uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22)" identifier = (binary_expression "(uint)(pmVar22 < pmVar29) - (uint)(pmVar29 < pmVar22)" (call_expression "(uint)(pmVar22 < pmVar29)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar22 < pmVar29)" ( (binary_expression "pmVar22 < pmVar29" identifier < identifier) ))) - (call_expression "(uint)(pmVar29 < pmVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar29 < pmVar22)" ( (binary_expression "pmVar29 < pmVar22" identifier < identifier) ))))) ;) (if_statement "if (pmVar27 < pmStack_2134) goto LAB_00017d44;" if (parenthesized_expression "(pmVar27 < pmStack_2134)" ( (binary_expression "pmVar27 < pmStack_2134" identifier < identifier) )) (goto_statement "goto LAB_00017d44;" goto statement_identifier ;)) (labeled_statement "LAB_00017c40:\n              if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;" statement_identifier : (if_statement "if (pmVar32 == (md5_ctx *)0x0) goto LAB_00017c48;" if (parenthesized_expression "(pmVar32 == (md5_ctx *)0x0)" ( (binary_expression "pmVar32 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00017c48;" goto statement_identifier ;))) (labeled_statement "LAB_00017d8c:\n              iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);" statement_identifier : (expression_statement "iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27);" (assignment_expression "iVar11 = (*pcVar14)(pmVar30,pmStack_213c,pmVar27)" identifier = (call_expression "(*pcVar14)(pmVar30,pmStack_213c,pmVar27)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(pmVar30,pmStack_213c,pmVar27)" ( identifier , identifier , identifier )))) ;)) (expression_statement "pmVar29 = (md5_ctx *)(iVar11 + 1);" (assignment_expression "pmVar29 = (md5_ctx *)(iVar11 + 1)" identifier = (cast_expression "(md5_ctx *)(iVar11 + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 1)" ( (binary_expression "iVar11 + 1" identifier + number_literal) )))) ;) (if_statement "if (local_2150 != (md5_ctx *)0x0) {\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }" if (parenthesized_expression "(local_2150 != (md5_ctx *)0x0)" ( (binary_expression "local_2150 != (md5_ctx *)0x0" identifier != (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                line_1 = (line *)(uint)(pmVar27 < pmVar29);\n                goto LAB_00017dc0;\n              }" { (expression_statement "line_1 = (line *)(uint)(pmVar27 < pmVar29);" (assignment_expression "line_1 = (line *)(uint)(pmVar27 < pmVar29)" identifier = (cast_expression "(line *)(uint)(pmVar27 < pmVar29)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pmVar27 < pmVar29)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar27 < pmVar29)" ( (binary_expression "pmVar27 < pmVar29" identifier < identifier) ))))) ;) (goto_statement "goto LAB_00017dc0;" goto statement_identifier ;) })) (expression_statement "pmVar22 = (md5_ctx *)0x0;" (assignment_expression "pmVar22 = (md5_ctx *)0x0" identifier = (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pmVar25 = pmVar29;" (assignment_expression "pmVar25 = pmVar29" identifier = identifier) ;) (if_statement "if (pmVar27 < pmVar29) goto LAB_00017de0;" if (parenthesized_expression "(pmVar27 < pmVar29)" ( (binary_expression "pmVar27 < pmVar29" identifier < identifier) )) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (labeled_statement "LAB_00018174:\n              pmVar26 = pmVar30;" statement_identifier : (expression_statement "pmVar26 = pmVar30;" (assignment_expression "pmVar26 = pmVar30" identifier = identifier) ;)) (if_statement "if (pmVar27 < pmVar25) goto LAB_00017de0;" if (parenthesized_expression "(pmVar27 < pmVar25)" ( (binary_expression "pmVar27 < pmVar25" identifier < identifier) )) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }" else (compound_statement "{\nLAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;\nLAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);\n              if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);\n              local_214c = pmVar30;\n              if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }\n              if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;\n              if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }\n              pmVar29 = (md5_ctx *)0x0;\n              pmVar26 = pmVar30;\n            }" { (labeled_statement "LAB_00017c30:\n              if (pmStack_2134 <= pmVar27) goto LAB_00017c40;" statement_identifier : (if_statement "if (pmStack_2134 <= pmVar27) goto LAB_00017c40;" if (parenthesized_expression "(pmStack_2134 <= pmVar27)" ( (binary_expression "pmStack_2134 <= pmVar27" identifier <= identifier) )) (goto_statement "goto LAB_00017c40;" goto statement_identifier ;))) (labeled_statement "LAB_00017d44:\n              pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);" statement_identifier : (expression_statement "pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1);" (assignment_expression "pmVar27 = (md5_ctx *)((uint)((int)pmVar27 * 3) >> 1)" identifier = (cast_expression "(md5_ctx *)((uint)((int)pmVar27 * 3) >> 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((int)pmVar27 * 3) >> 1)" ( (binary_expression "(uint)((int)pmVar27 * 3) >> 1" (call_expression "(uint)((int)pmVar27 * 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pmVar27 * 3)" ( (binary_expression "(int)pmVar27 * 3" (cast_expression "(int)pmVar27" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) >> number_literal) )))) ;)) (if_statement "if (pmVar27 <= pmStack_2134) {\n                pmVar27 = pmStack_2134;\n              }" if (parenthesized_expression "(pmVar27 <= pmStack_2134)" ( (binary_expression "pmVar27 <= pmStack_2134" identifier <= identifier) )) (compound_statement "{\n                pmVar27 = pmStack_2134;\n              }" { (expression_statement "pmVar27 = pmStack_2134;" (assignment_expression "pmVar27 = pmStack_2134" identifier = identifier) ;) })) (expression_statement "(*(code *)PTR_free_0003e558)(local_214c);" (call_expression "(*(code *)PTR_free_0003e558)(local_214c)" (parenthesized_expression "(*(code *)PTR_free_0003e558)" ( (pointer_expression "*(code *)PTR_free_0003e558" * (cast_expression "(code *)PTR_free_0003e558" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_214c)" ( identifier ))) ;) (expression_statement "pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27);" (assignment_expression "pmVar30 = (md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27)" identifier = (cast_expression "(md5_ctx *)(*(code *)PTR_malloc_0003e4a4)(pmVar27)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003e4a4)(pmVar27)" (parenthesized_expression "(*(code *)PTR_malloc_0003e4a4)" ( (pointer_expression "*(code *)PTR_malloc_0003e4a4" * (cast_expression "(code *)PTR_malloc_0003e4a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar27)" ( identifier ))))) ;) (expression_statement "local_214c = pmVar30;" (assignment_expression "local_214c = pmVar30" identifier = identifier) ;) (if_statement "if (pmVar30 == (md5_ctx *)0x0) {\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }" if (parenthesized_expression "(pmVar30 == (md5_ctx *)0x0)" ( (binary_expression "pmVar30 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pmVar27 = (md5_ctx *)0xfa0;\n                pmVar30 = pmStack_20ec;\n                goto LAB_00017c40;\n              }" { (expression_statement "pmVar27 = (md5_ctx *)0xfa0;" (assignment_expression "pmVar27 = (md5_ctx *)0xfa0" identifier = (cast_expression "(md5_ctx *)0xfa0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pmVar30 = pmStack_20ec;" (assignment_expression "pmVar30 = pmStack_20ec" identifier = identifier) ;) (goto_statement "goto LAB_00017c40;" goto statement_identifier ;) })) (if_statement "if (pmVar32 != (md5_ctx *)0x0) goto LAB_00017d8c;" if (parenthesized_expression "(pmVar32 != (md5_ctx *)0x0)" ( (binary_expression "pmVar32 != (md5_ctx *)0x0" identifier != (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00017d8c;" goto statement_identifier ;)) (labeled_statement "LAB_00017c48:\n              pmVar22 = (md5_ctx *)0x0;" statement_identifier : (expression_statement "pmVar22 = (md5_ctx *)0x0;" (assignment_expression "pmVar22 = (md5_ctx *)0x0" identifier = (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (local_2150 != (md5_ctx *)0x0) {\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }" if (parenthesized_expression "(local_2150 != (md5_ctx *)0x0)" ( (binary_expression "local_2150 != (md5_ctx *)0x0" identifier != (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pmVar29 = (md5_ctx *)0x0;\n                line_1 = (line *)0x0;\n                goto LAB_00017dc0;\n              }" { (expression_statement "pmVar29 = (md5_ctx *)0x0;" (assignment_expression "pmVar29 = (md5_ctx *)0x0" identifier = (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "line_1 = (line *)0x0;" (assignment_expression "line_1 = (line *)0x0" identifier = (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00017dc0;" goto statement_identifier ;) })) (expression_statement "pmVar29 = (md5_ctx *)0x0;" (assignment_expression "pmVar29 = (md5_ctx *)0x0" identifier = (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pmVar26 = pmVar30;" (assignment_expression "pmVar26 = pmVar30" identifier = identifier) ;) }))) (expression_statement "pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8));" (assignment_expression "pmVar25 = (md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8))" identifier = (cast_expression "(md5_ctx *)((int)pmVar29->total + (int)(pmVar26->total + -8))" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar29->total + (int)(pmVar26->total + -8))" ( (binary_expression "(int)pmVar29->total + (int)(pmVar26->total + -8)" (cast_expression "(int)pmVar29->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar29->total" identifier -> field_identifier)) + (cast_expression "(int)(pmVar26->total + -8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pmVar26->total + -8)" ( (binary_expression "pmVar26->total + -8" (field_expression "pmVar26->total" identifier -> field_identifier) + number_literal) )))) )))) ;) (if_statement "if (pmVar32 == (md5_ctx *)0x0) {\n              if (local_2150 == (md5_ctx *)0x0) break;\nLAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n            }\n            else {\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }" if (parenthesized_expression "(pmVar32 == (md5_ctx *)0x0)" ( (binary_expression "pmVar32 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (local_2150 == (md5_ctx *)0x0) break;\nLAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n            }" { (if_statement "if (local_2150 == (md5_ctx *)0x0) break;" if (parenthesized_expression "(local_2150 == (md5_ctx *)0x0)" ( (binary_expression "local_2150 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0001809c:\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);" statement_identifier : (expression_statement "iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);" (assignment_expression "iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28)" identifier = (call_expression "(*(code *)PTR_strlen_0003e488)(pmVar28)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" ( (pointer_expression "*(code *)PTR_strlen_0003e488" * (cast_expression "(code *)PTR_strlen_0003e488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar28)" ( identifier )))) ;)) (expression_statement "pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);" (assignment_expression "pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf)" identifier = (cast_expression "(md5_ctx *)((int)pmVar28->total + iVar11 + -0xf)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar28->total + iVar11 + -0xf)" ( (binary_expression "(int)pmVar28->total + iVar11 + -0xf" (binary_expression "(int)pmVar28->total + iVar11" (cast_expression "(int)pmVar28->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar28->total" identifier -> field_identifier)) + identifier) + number_literal) )))) ;) }) (else_clause "else {\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }" else (compound_statement "{\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);\n              pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);\n              if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;\nLAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);\n              iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);\n              pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);\n              if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }\n            }" { (expression_statement "iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c);" (assignment_expression "iVar11 = (*(code *)PTR_strlen_0003e488)(pmStack_213c)" identifier = (call_expression "(*(code *)PTR_strlen_0003e488)(pmStack_213c)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" ( (pointer_expression "*(code *)PTR_strlen_0003e488" * (cast_expression "(code *)PTR_strlen_0003e488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmStack_213c)" ( identifier )))) ;) (expression_statement "pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf);" (assignment_expression "pmStack_213c = (md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf)" identifier = (cast_expression "(md5_ctx *)((int)pmStack_213c->total + iVar11 + -0xf)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmStack_213c->total + iVar11 + -0xf)" ( (binary_expression "(int)pmStack_213c->total + iVar11 + -0xf" (binary_expression "(int)pmStack_213c->total + iVar11" (cast_expression "(int)pmStack_213c->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmStack_213c->total" identifier -> field_identifier)) + identifier) + number_literal) )))) ;) (if_statement "if (local_2150 == (md5_ctx *)0x0) goto FUN_00017f2c;" if (parenthesized_expression "(local_2150 == (md5_ctx *)0x0)" ( (binary_expression "local_2150 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto FUN_00017f2c;" goto statement_identifier ;)) (labeled_statement "LAB_00017c8c:\n              pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);" statement_identifier : (expression_statement "pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120);" (assignment_expression "pmVar32 = (md5_ctx *)(uint)(pmStack_213c < pmStack_2120)" identifier = (cast_expression "(md5_ctx *)(uint)(pmStack_213c < pmStack_2120)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pmStack_213c < pmStack_2120)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmStack_213c < pmStack_2120)" ( (binary_expression "pmStack_213c < pmStack_2120" identifier < identifier) ))))) ;)) (expression_statement "iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28);" (assignment_expression "iVar11 = (*(code *)PTR_strlen_0003e488)(pmVar28)" identifier = (call_expression "(*(code *)PTR_strlen_0003e488)(pmVar28)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" ( (pointer_expression "*(code *)PTR_strlen_0003e488" * (cast_expression "(code *)PTR_strlen_0003e488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar28)" ( identifier )))) ;) (expression_statement "pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf);" (assignment_expression "pmVar28 = (md5_ctx *)((int)pmVar28->total + iVar11 + -0xf)" identifier = (cast_expression "(md5_ctx *)((int)pmVar28->total + iVar11 + -0xf)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar28->total + iVar11 + -0xf)" ( (binary_expression "(int)pmVar28->total + iVar11 + -0xf" (binary_expression "(int)pmVar28->total + iVar11" (cast_expression "(int)pmVar28->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar28->total" identifier -> field_identifier)) + identifier) + number_literal) )))) ;) (if_statement "if (pmVar32 != (md5_ctx *)0x0) {\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }" if (parenthesized_expression "(pmVar32 != (md5_ctx *)0x0)" ( (binary_expression "pmVar32 != (md5_ctx *)0x0" identifier != (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);\n                pmVar30 = pmVar26;\n                goto LAB_00017cc8;\n              }" { (expression_statement "local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);" (assignment_expression "local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c)" identifier = (cast_expression "(md5_ctx *)(uint)(pmVar28 < pmStack_211c)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pmVar28 < pmStack_211c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar28 < pmStack_211c)" ( (binary_expression "pmVar28 < pmStack_211c" identifier < identifier) ))))) ;) (expression_statement "pmVar30 = pmVar26;" (assignment_expression "pmVar30 = pmVar26" identifier = identifier) ;) (goto_statement "goto LAB_00017cc8;" goto statement_identifier ;) })) }))) (expression_statement "local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c);" (assignment_expression "local_2150 = (md5_ctx *)(uint)(pmVar28 < pmStack_211c)" identifier = (cast_expression "(md5_ctx *)(uint)(pmVar28 < pmStack_211c)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pmVar28 < pmStack_211c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar28 < pmStack_211c)" ( (binary_expression "pmVar28 < pmStack_211c" identifier < identifier) ))))) ;) (expression_statement "pmVar30 = pmVar26;" (assignment_expression "pmVar30 = pmVar26" identifier = identifier) ;) (if_statement "if (pmStack_211c <= pmVar28) break;" if (parenthesized_expression "(pmStack_211c <= pmVar28)" ( (binary_expression "pmStack_211c <= pmVar28" identifier <= identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) }))) })) (expression_statement "pmStack_213c = pmVar25;" (assignment_expression "pmStack_213c = pmVar25" identifier = identifier) ;) (expression_statement "local_2150 = pmVar22;" (assignment_expression "local_2150 = pmVar22" identifier = identifier) ;) (expression_statement "pmStack_211c = pmStack_20fc;" (assignment_expression "pmStack_211c = pmStack_20fc" identifier = identifier) ;) (expression_statement "pmStack_2120 = pmStack_2100;" (assignment_expression "pmStack_2120 = pmStack_2100" identifier = identifier) ;) (expression_statement "md5_process_bytes(pmVar26,(size_t)pmVar29,pmStack_2130);" (call_expression "md5_process_bytes(pmVar26,(size_t)pmVar29,pmStack_2130)" identifier (argument_list "(pmVar26,(size_t)pmVar29,pmStack_2130)" ( identifier , (cast_expression "(size_t)pmVar29" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier ))) ;) (expression_statement "pmVar27 = (md5_ctx *)dig;" (assignment_expression "pmVar27 = (md5_ctx *)dig" identifier = (cast_expression "(md5_ctx *)dig" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "md5_finish_ctx(pmStack_2130,pmVar27);" (call_expression "md5_finish_ctx(pmStack_2130,pmVar27)" identifier (argument_list "(pmStack_2130,pmVar27)" ( identifier , identifier ))) ;) (expression_statement "md5_process_bytes(pmStack_213c,(size_t)local_2150,pmStack_2138);" (call_expression "md5_process_bytes(pmStack_213c,(size_t)local_2150,pmStack_2138)" identifier (argument_list "(pmStack_213c,(size_t)local_2150,pmStack_2138)" ( identifier , (cast_expression "(size_t)local_2150" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier ))) ;) (expression_statement "pmStack_2134 = (md5_ctx *)(dig + 1);" (assignment_expression "pmStack_2134 = (md5_ctx *)(dig + 1)" identifier = (cast_expression "(md5_ctx *)(dig + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(dig + 1)" ( (binary_expression "dig + 1" identifier + number_literal) )))) ;) (expression_statement "md5_finish_ctx(pmStack_2138,pmStack_2134);" (call_expression "md5_finish_ctx(pmStack_2138,pmStack_2134)" identifier (argument_list "(pmStack_2138,pmStack_2134)" ( identifier , identifier ))) ;) (expression_statement "uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmStack_2134,0x10);" (assignment_expression "uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar27,pmStack_2134,0x10)" identifier = (call_expression "(*(code *)PTR_memcmp_0003e52c)(pmVar27,pmStack_2134,0x10)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" ( (pointer_expression "*(code *)PTR_memcmp_0003e52c" * (cast_expression "(code *)PTR_memcmp_0003e52c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar27,pmStack_2134,0x10)" ( identifier , identifier , number_literal )))) ;) (expression_statement "pmVar23 = pmStack_20fc;" (assignment_expression "pmVar23 = pmStack_20fc" identifier = identifier) ;) (expression_statement "pmVar24 = pmStack_2100;" (assignment_expression "pmVar24 = pmStack_2100" identifier = identifier) ;) (expression_statement "pmVar22 = pmStack_2108;" (assignment_expression "pmVar22 = pmStack_2108" identifier = identifier) ;) (expression_statement "pmVar25 = pmVar29;" (assignment_expression "pmVar25 = pmVar29" identifier = identifier) ;) (expression_statement "pmVar30 = pmVar26;" (assignment_expression "pmVar30 = pmVar26" identifier = identifier) ;) (expression_statement "pmVar31 = pmStack_2104;" (assignment_expression "pmVar31 = pmStack_2104" identifier = identifier) ;) (expression_statement "pmVar32 = pmStack_2110;" (assignment_expression "pmVar32 = pmStack_2110" identifier = identifier) ;) (expression_statement "pmVar28 = pmStack_210c;" (assignment_expression "pmVar28 = pmStack_210c" identifier = identifier) ;) (expression_statement "line_1 = plStack_2114;" (assignment_expression "line_1 = plStack_2114" identifier = identifier) ;) (if_statement "if ((uVar12 == 0) && (uVar12 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pmVar27 = (md5_ctx *)(uint)(local_2150 < pmVar29);\n        pmVar25 = local_2150;\n        if (pmVar27 == (md5_ctx *)0x0) {\n          pmVar25 = pmVar29;\n        }\n        uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar26,pmStack_213c,pmVar25);\n        pmVar25 = pmVar29;\n        pmVar30 = pmVar26;\n        pmStack_2138 = pmVar24;\n        pmStack_2134 = pmVar23;\n        if (uVar12 == 0) {\n          uVar12 = (int)pmVar27 - (uint)(pmVar29 < local_2150);\n        }\n      }" if (parenthesized_expression "((uVar12 == 0) && (uVar12 = local_2158, local_2158 == 0))" ( (binary_expression "(uVar12 == 0) && (uVar12 = local_2158, local_2158 == 0)" (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar12 = local_2158, local_2158 == 0)" ( (comma_expression "uVar12 = local_2158, local_2158 == 0" (assignment_expression "uVar12 = local_2158" identifier = identifier) , (binary_expression "local_2158 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_00017ff4:\n        pmVar27 = (md5_ctx *)(uint)(local_2150 < pmVar29);\n        pmVar25 = local_2150;\n        if (pmVar27 == (md5_ctx *)0x0) {\n          pmVar25 = pmVar29;\n        }\n        uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar26,pmStack_213c,pmVar25);\n        pmVar25 = pmVar29;\n        pmVar30 = pmVar26;\n        pmStack_2138 = pmVar24;\n        pmStack_2134 = pmVar23;\n        if (uVar12 == 0) {\n          uVar12 = (int)pmVar27 - (uint)(pmVar29 < local_2150);\n        }\n      }" { (labeled_statement "LAB_00017ff4:\n        pmVar27 = (md5_ctx *)(uint)(local_2150 < pmVar29);" statement_identifier : (expression_statement "pmVar27 = (md5_ctx *)(uint)(local_2150 < pmVar29);" (assignment_expression "pmVar27 = (md5_ctx *)(uint)(local_2150 < pmVar29)" identifier = (cast_expression "(md5_ctx *)(uint)(local_2150 < pmVar29)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(local_2150 < pmVar29)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_2150 < pmVar29)" ( (binary_expression "local_2150 < pmVar29" identifier < identifier) ))))) ;)) (expression_statement "pmVar25 = local_2150;" (assignment_expression "pmVar25 = local_2150" identifier = identifier) ;) (if_statement "if (pmVar27 == (md5_ctx *)0x0) {\n          pmVar25 = pmVar29;\n        }" if (parenthesized_expression "(pmVar27 == (md5_ctx *)0x0)" ( (binary_expression "pmVar27 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pmVar25 = pmVar29;\n        }" { (expression_statement "pmVar25 = pmVar29;" (assignment_expression "pmVar25 = pmVar29" identifier = identifier) ;) })) (expression_statement "uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar26,pmStack_213c,pmVar25);" (assignment_expression "uVar12 = (*(code *)PTR_memcmp_0003e52c)(pmVar26,pmStack_213c,pmVar25)" identifier = (call_expression "(*(code *)PTR_memcmp_0003e52c)(pmVar26,pmStack_213c,pmVar25)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" ( (pointer_expression "*(code *)PTR_memcmp_0003e52c" * (cast_expression "(code *)PTR_memcmp_0003e52c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar26,pmStack_213c,pmVar25)" ( identifier , identifier , identifier )))) ;) (expression_statement "pmVar25 = pmVar29;" (assignment_expression "pmVar25 = pmVar29" identifier = identifier) ;) (expression_statement "pmVar30 = pmVar26;" (assignment_expression "pmVar30 = pmVar26" identifier = identifier) ;) (expression_statement "pmStack_2138 = pmVar24;" (assignment_expression "pmStack_2138 = pmVar24" identifier = identifier) ;) (expression_statement "pmStack_2134 = pmVar23;" (assignment_expression "pmStack_2134 = pmVar23" identifier = identifier) ;) (if_statement "if (uVar12 == 0) {\n          uVar12 = (int)pmVar27 - (uint)(pmVar29 < local_2150);\n        }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar12 = (int)pmVar27 - (uint)(pmVar29 < local_2150);\n        }" { (expression_statement "uVar12 = (int)pmVar27 - (uint)(pmVar29 < local_2150);" (assignment_expression "uVar12 = (int)pmVar27 - (uint)(pmVar29 < local_2150)" identifier = (binary_expression "(int)pmVar27 - (uint)(pmVar29 < local_2150)" (cast_expression "(int)pmVar27" ( (type_descriptor "int" primitive_type) ) identifier) - (call_expression "(uint)(pmVar29 < local_2150)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar29 < local_2150)" ( (binary_expression "pmVar29 < local_2150" identifier < identifier) ))))) ;) })) })) (labeled_statement "LAB_00018040:\n      local_2158 = uVar12;" statement_identifier : (expression_statement "local_2158 = uVar12;" (assignment_expression "local_2158 = uVar12" identifier = identifier) ;)) (expression_statement "pmVar26 = pmVar32;" (assignment_expression "pmVar26 = pmVar32" identifier = identifier) ;) (expression_statement "(*(code *)PTR_free_0003e558)(local_214c);" (call_expression "(*(code *)PTR_free_0003e558)(local_214c)" (parenthesized_expression "(*(code *)PTR_free_0003e558)" ( (pointer_expression "*(code *)PTR_free_0003e558" * (cast_expression "(code *)PTR_free_0003e558" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_214c)" ( identifier ))) ;) (expression_statement "pmVar29 = pmVar25;" (assignment_expression "pmVar29 = pmVar25" identifier = identifier) ;) (expression_statement "local_2150 = pmVar24;" (assignment_expression "local_2150 = pmVar24" identifier = identifier) ;) (expression_statement "pmStack_213c = pmVar23;" (assignment_expression "pmStack_213c = pmVar23" identifier = identifier) ;) (labeled_statement "LAB_000175d8:\n      if (pmVar23 == (md5_ctx *)0x0) goto LAB_00017808;" statement_identifier : (if_statement "if (pmVar23 == (md5_ctx *)0x0) goto LAB_00017808;" if (parenthesized_expression "(pmVar23 == (md5_ctx *)0x0)" ( (binary_expression "pmVar23 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00017808;" goto statement_identifier ;))) (labeled_statement "LAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);" statement_identifier : (expression_statement "(*(code *)PTR_free_0003e558)(local_2154);" (call_expression "(*(code *)PTR_free_0003e558)(local_2154)" (parenthesized_expression "(*(code *)PTR_free_0003e558)" ( (pointer_expression "*(code *)PTR_free_0003e558" * (cast_expression "(code *)PTR_free_0003e558" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_2154)" ( identifier ))) ;)) (expression_statement "pmVar28 = pmVar22;" (assignment_expression "pmVar28 = pmVar22" identifier = identifier) ;) (expression_statement "pmVar32 = pmVar31;" (assignment_expression "pmVar32 = pmVar31" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "pmVar32 = pmVar29;" (assignment_expression "pmVar32 = pmVar29" identifier = identifier) ;) (if_statement "if (pmVar23 == (md5_ctx *)0x0) {\n    pmVar28 = (md5_ctx *)(uint)(pmVar29 != (md5_ctx *)0x0);\n    if (pmVar22 == (md5_ctx *)0x0) {\n      local_2158 = -(int)pmVar28;\n      goto joined_r0x0001782c;\n    }\n    if (pmVar29 != (md5_ctx *)0x0) {\n      if (pmVar24 == (md5_ctx *)0x0) {\n        pmVar26 = pmVar29;\n        if (pmVar22 <= pmVar29) {\n          pmVar26 = pmVar22;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar27,pmVar26);\n        local_2150 = pmVar22;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pmVar30 < pmVar25) && (pmVar27 < pmVar26)) {\n        pmVar28 = (md5_ctx *)(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar30->A - 0x10));\n        local_2158 = (int)pmVar28 -\n                     (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));\n        if (local_2158 != 0) goto LAB_00017838;\n        pmVar23 = (md5_ctx *)((int)pmVar30 + (int)pmVar29);\n        pmVar26 = pmVar27;\n        pmVar25 = pmVar30;\n        while( true ) {\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n          pmVar26 = (md5_ctx *)((int)&pmVar26->A + 1);\n          pmVar30 = pmVar23;\n          if ((pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22)) || (pmVar25 == pmVar23)) break;\n          local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10)) -\n                       (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10));\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pmVar22 < pmVar29) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pmVar22 != pmVar29);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }" if (parenthesized_expression "(pmVar23 == (md5_ctx *)0x0)" ( (binary_expression "pmVar23 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pmVar28 = (md5_ctx *)(uint)(pmVar29 != (md5_ctx *)0x0);\n    if (pmVar22 == (md5_ctx *)0x0) {\n      local_2158 = -(int)pmVar28;\n      goto joined_r0x0001782c;\n    }\n    if (pmVar29 != (md5_ctx *)0x0) {\n      if (pmVar24 == (md5_ctx *)0x0) {\n        pmVar26 = pmVar29;\n        if (pmVar22 <= pmVar29) {\n          pmVar26 = pmVar22;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar27,pmVar26);\n        local_2150 = pmVar22;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pmVar30 < pmVar25) && (pmVar27 < pmVar26)) {\n        pmVar28 = (md5_ctx *)(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar30->A - 0x10));\n        local_2158 = (int)pmVar28 -\n                     (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));\n        if (local_2158 != 0) goto LAB_00017838;\n        pmVar23 = (md5_ctx *)((int)pmVar30 + (int)pmVar29);\n        pmVar26 = pmVar27;\n        pmVar25 = pmVar30;\n        while( true ) {\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n          pmVar26 = (md5_ctx *)((int)&pmVar26->A + 1);\n          pmVar30 = pmVar23;\n          if ((pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22)) || (pmVar25 == pmVar23)) break;\n          local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10)) -\n                       (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10));\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pmVar22 < pmVar29) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pmVar22 != pmVar29);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }" { (expression_statement "pmVar28 = (md5_ctx *)(uint)(pmVar29 != (md5_ctx *)0x0);" (assignment_expression "pmVar28 = (md5_ctx *)(uint)(pmVar29 != (md5_ctx *)0x0)" identifier = (cast_expression "(md5_ctx *)(uint)(pmVar29 != (md5_ctx *)0x0)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pmVar29 != (md5_ctx *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar29 != (md5_ctx *)0x0)" ( (binary_expression "pmVar29 != (md5_ctx *)0x0" identifier != (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (if_statement "if (pmVar22 == (md5_ctx *)0x0) {\n      local_2158 = -(int)pmVar28;\n      goto joined_r0x0001782c;\n    }" if (parenthesized_expression "(pmVar22 == (md5_ctx *)0x0)" ( (binary_expression "pmVar22 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_2158 = -(int)pmVar28;\n      goto joined_r0x0001782c;\n    }" { (expression_statement "local_2158 = -(int)pmVar28;" (assignment_expression "local_2158 = -(int)pmVar28" identifier = (unary_expression "-(int)pmVar28" - (cast_expression "(int)pmVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto joined_r0x0001782c;" goto statement_identifier ;) })) (if_statement "if (pmVar29 != (md5_ctx *)0x0) {\n      if (pmVar24 == (md5_ctx *)0x0) {\n        pmVar26 = pmVar29;\n        if (pmVar22 <= pmVar29) {\n          pmVar26 = pmVar22;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar27,pmVar26);\n        local_2150 = pmVar22;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pmVar30 < pmVar25) && (pmVar27 < pmVar26)) {\n        pmVar28 = (md5_ctx *)(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar30->A - 0x10));\n        local_2158 = (int)pmVar28 -\n                     (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));\n        if (local_2158 != 0) goto LAB_00017838;\n        pmVar23 = (md5_ctx *)((int)pmVar30 + (int)pmVar29);\n        pmVar26 = pmVar27;\n        pmVar25 = pmVar30;\n        while( true ) {\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n          pmVar26 = (md5_ctx *)((int)&pmVar26->A + 1);\n          pmVar30 = pmVar23;\n          if ((pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22)) || (pmVar25 == pmVar23)) break;\n          local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10)) -\n                       (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10));\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pmVar22 < pmVar29) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pmVar22 != pmVar29);\n      goto joined_r0x0001782c;\n    }" if (parenthesized_expression "(pmVar29 != (md5_ctx *)0x0)" ( (binary_expression "pmVar29 != (md5_ctx *)0x0" identifier != (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pmVar24 == (md5_ctx *)0x0) {\n        pmVar26 = pmVar29;\n        if (pmVar22 <= pmVar29) {\n          pmVar26 = pmVar22;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar27,pmVar26);\n        local_2150 = pmVar22;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pmVar30 < pmVar25) && (pmVar27 < pmVar26)) {\n        pmVar28 = (md5_ctx *)(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar30->A - 0x10));\n        local_2158 = (int)pmVar28 -\n                     (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));\n        if (local_2158 != 0) goto LAB_00017838;\n        pmVar23 = (md5_ctx *)((int)pmVar30 + (int)pmVar29);\n        pmVar26 = pmVar27;\n        pmVar25 = pmVar30;\n        while( true ) {\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n          pmVar26 = (md5_ctx *)((int)&pmVar26->A + 1);\n          pmVar30 = pmVar23;\n          if ((pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22)) || (pmVar25 == pmVar23)) break;\n          local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10)) -\n                       (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10));\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pmVar22 < pmVar29) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pmVar22 != pmVar29);\n      goto joined_r0x0001782c;\n    }" { (if_statement "if (pmVar24 == (md5_ctx *)0x0) {\n        pmVar26 = pmVar29;\n        if (pmVar22 <= pmVar29) {\n          pmVar26 = pmVar22;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar27,pmVar26);\n        local_2150 = pmVar22;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pmVar30 < pmVar25) && (pmVar27 < pmVar26)) {\n        pmVar28 = (md5_ctx *)(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar30->A - 0x10));\n        local_2158 = (int)pmVar28 -\n                     (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));\n        if (local_2158 != 0) goto LAB_00017838;\n        pmVar23 = (md5_ctx *)((int)pmVar30 + (int)pmVar29);\n        pmVar26 = pmVar27;\n        pmVar25 = pmVar30;\n        while( true ) {\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n          pmVar26 = (md5_ctx *)((int)&pmVar26->A + 1);\n          pmVar30 = pmVar23;\n          if ((pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22)) || (pmVar25 == pmVar23)) break;\n          local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10)) -\n                       (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10));\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }" if (parenthesized_expression "(pmVar24 == (md5_ctx *)0x0)" ( (binary_expression "pmVar24 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pmVar26 = pmVar29;\n        if (pmVar22 <= pmVar29) {\n          pmVar26 = pmVar22;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar27,pmVar26);\n        local_2150 = pmVar22;\n        if (local_2158 != 0) goto LAB_00017838;\n      }" { (expression_statement "pmVar26 = pmVar29;" (assignment_expression "pmVar26 = pmVar29" identifier = identifier) ;) (if_statement "if (pmVar22 <= pmVar29) {\n          pmVar26 = pmVar22;\n        }" if (parenthesized_expression "(pmVar22 <= pmVar29)" ( (binary_expression "pmVar22 <= pmVar29" identifier <= identifier) )) (compound_statement "{\n          pmVar26 = pmVar22;\n        }" { (expression_statement "pmVar26 = pmVar22;" (assignment_expression "pmVar26 = pmVar22" identifier = identifier) ;) })) (expression_statement "local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar27,pmVar26);" (assignment_expression "local_2158 = (*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar27,pmVar26)" identifier = (call_expression "(*(code *)PTR_memcmp_0003e52c)(pmVar30,pmVar27,pmVar26)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" ( (pointer_expression "*(code *)PTR_memcmp_0003e52c" * (cast_expression "(code *)PTR_memcmp_0003e52c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pmVar30,pmVar27,pmVar26)" ( identifier , identifier , identifier )))) ;) (expression_statement "local_2150 = pmVar22;" (assignment_expression "local_2150 = pmVar22" identifier = identifier) ;) (if_statement "if (local_2158 != 0) goto LAB_00017838;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017838;" goto statement_identifier ;)) }) (else_clause "else if ((pmVar30 < pmVar25) && (pmVar27 < pmVar26)) {\n        pmVar28 = (md5_ctx *)(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar30->A - 0x10));\n        local_2158 = (int)pmVar28 -\n                     (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));\n        if (local_2158 != 0) goto LAB_00017838;\n        pmVar23 = (md5_ctx *)((int)pmVar30 + (int)pmVar29);\n        pmVar26 = pmVar27;\n        pmVar25 = pmVar30;\n        while( true ) {\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n          pmVar26 = (md5_ctx *)((int)&pmVar26->A + 1);\n          pmVar30 = pmVar23;\n          if ((pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22)) || (pmVar25 == pmVar23)) break;\n          local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10)) -\n                       (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10));\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }" else (if_statement "if ((pmVar30 < pmVar25) && (pmVar27 < pmVar26)) {\n        pmVar28 = (md5_ctx *)(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar30->A - 0x10));\n        local_2158 = (int)pmVar28 -\n                     (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));\n        if (local_2158 != 0) goto LAB_00017838;\n        pmVar23 = (md5_ctx *)((int)pmVar30 + (int)pmVar29);\n        pmVar26 = pmVar27;\n        pmVar25 = pmVar30;\n        while( true ) {\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n          pmVar26 = (md5_ctx *)((int)&pmVar26->A + 1);\n          pmVar30 = pmVar23;\n          if ((pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22)) || (pmVar25 == pmVar23)) break;\n          local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10)) -\n                       (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10));\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }" if (parenthesized_expression "((pmVar30 < pmVar25) && (pmVar27 < pmVar26))" ( (binary_expression "(pmVar30 < pmVar25) && (pmVar27 < pmVar26)" (parenthesized_expression "(pmVar30 < pmVar25)" ( (binary_expression "pmVar30 < pmVar25" identifier < identifier) )) && (parenthesized_expression "(pmVar27 < pmVar26)" ( (binary_expression "pmVar27 < pmVar26" identifier < identifier) ))) )) (compound_statement "{\n        pmVar28 = (md5_ctx *)(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar30->A - 0x10));\n        local_2158 = (int)pmVar28 -\n                     (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));\n        if (local_2158 != 0) goto LAB_00017838;\n        pmVar23 = (md5_ctx *)((int)pmVar30 + (int)pmVar29);\n        pmVar26 = pmVar27;\n        pmVar25 = pmVar30;\n        while( true ) {\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n          pmVar26 = (md5_ctx *)((int)&pmVar26->A + 1);\n          pmVar30 = pmVar23;\n          if ((pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22)) || (pmVar25 == pmVar23)) break;\n          local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10)) -\n                       (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10));\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }" { (expression_statement "pmVar28 = (md5_ctx *)(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar30->A - 0x10));" (assignment_expression "pmVar28 = (md5_ctx *)(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar30->A - 0x10))" identifier = (binary_expression "(md5_ctx *)(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar30->A - 0x10))" (cast_expression "(md5_ctx *)(uint)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)((int)pmVar24->total + (*(byte *)&pmVar30->A - 0x10))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar24->total + (*(byte *)&pmVar30->A - 0x10))" ( (binary_expression "(int)pmVar24->total + (*(byte *)&pmVar30->A - 0x10)" (cast_expression "(int)pmVar24->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar24->total" identifier -> field_identifier)) + (parenthesized_expression "(*(byte *)&pmVar30->A - 0x10)" ( (binary_expression "*(byte *)&pmVar30->A - 0x10" (pointer_expression "*(byte *)&pmVar30->A" * (cast_expression "(byte *)&pmVar30->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar30->A" & (field_expression "pmVar30->A" identifier -> field_identifier)))) - number_literal) ))) ))))) ;) (expression_statement "local_2158 = (int)pmVar28 -\n                     (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));" (assignment_expression "local_2158 = (int)pmVar28 -\n                     (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10))" identifier = (binary_expression "(int)pmVar28 -\n                     (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10))" (cast_expression "(int)pmVar28" ( (type_descriptor "int" primitive_type) ) identifier) - (binary_expression "(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10))" ( (binary_expression "(int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10)" (cast_expression "(int)pmVar24->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar24->total" identifier -> field_identifier)) + (parenthesized_expression "(*(byte *)&pmVar27->A - 0x10)" ( (binary_expression "*(byte *)&pmVar27->A - 0x10" (pointer_expression "*(byte *)&pmVar27->A" * (cast_expression "(byte *)&pmVar27->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar27->A" & (field_expression "pmVar27->A" identifier -> field_identifier)))) - number_literal) ))) )))))) ;) (if_statement "if (local_2158 != 0) goto LAB_00017838;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017838;" goto statement_identifier ;)) (expression_statement "pmVar23 = (md5_ctx *)((int)pmVar30 + (int)pmVar29);" (assignment_expression "pmVar23 = (md5_ctx *)((int)pmVar30 + (int)pmVar29)" identifier = (cast_expression "(md5_ctx *)((int)pmVar30 + (int)pmVar29)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar30 + (int)pmVar29)" ( (binary_expression "(int)pmVar30 + (int)pmVar29" (cast_expression "(int)pmVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pmVar29" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pmVar26 = pmVar27;" (assignment_expression "pmVar26 = pmVar27" identifier = identifier) ;) (expression_statement "pmVar25 = pmVar30;" (assignment_expression "pmVar25 = pmVar30" identifier = identifier) ;) (while_statement "while( true ) {\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n          pmVar26 = (md5_ctx *)((int)&pmVar26->A + 1);\n          pmVar30 = pmVar23;\n          if ((pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22)) || (pmVar25 == pmVar23)) break;\n          local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10)) -\n                       (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10));\n          if (local_2158 != 0) goto LAB_00017838;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);\n          pmVar26 = (md5_ctx *)((int)&pmVar26->A + 1);\n          pmVar30 = pmVar23;\n          if ((pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22)) || (pmVar25 == pmVar23)) break;\n          local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10)) -\n                       (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10));\n          if (local_2158 != 0) goto LAB_00017838;\n        }" { (expression_statement "pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1);" (assignment_expression "pmVar25 = (md5_ctx *)((int)&pmVar25->A + 1)" identifier = (cast_expression "(md5_ctx *)((int)&pmVar25->A + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar25->A + 1)" ( (binary_expression "(int)&pmVar25->A + 1" (cast_expression "(int)&pmVar25->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar25->A" & (field_expression "pmVar25->A" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pmVar26 = (md5_ctx *)((int)&pmVar26->A + 1);" (assignment_expression "pmVar26 = (md5_ctx *)((int)&pmVar26->A + 1)" identifier = (cast_expression "(md5_ctx *)((int)&pmVar26->A + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar26->A + 1)" ( (binary_expression "(int)&pmVar26->A + 1" (cast_expression "(int)&pmVar26->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar26->A" & (field_expression "pmVar26->A" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pmVar30 = pmVar23;" (assignment_expression "pmVar30 = pmVar23" identifier = identifier) ;) (if_statement "if ((pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22)) || (pmVar25 == pmVar23)) break;" if (parenthesized_expression "((pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22)) || (pmVar25 == pmVar23))" ( (binary_expression "(pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22)) || (pmVar25 == pmVar23)" (parenthesized_expression "(pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22))" ( (binary_expression "pmVar26 == (md5_ctx *)((int)pmVar27 + (int)pmVar22)" identifier == (cast_expression "(md5_ctx *)((int)pmVar27 + (int)pmVar22)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar27 + (int)pmVar22)" ( (binary_expression "(int)pmVar27 + (int)pmVar22" (cast_expression "(int)pmVar27" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pmVar22" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) || (parenthesized_expression "(pmVar25 == pmVar23)" ( (binary_expression "pmVar25 == pmVar23" identifier == identifier) ))) )) (break_statement "break;" break ;)) (expression_statement "local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10)) -\n                       (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10));" (assignment_expression "local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10)) -\n                       (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10))" identifier = (binary_expression "(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10)) -\n                       (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10))" (binary_expression "(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10))" ( (binary_expression "(int)pmVar24->total + (*(byte *)&pmVar25->A - 0x10)" (cast_expression "(int)pmVar24->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar24->total" identifier -> field_identifier)) + (parenthesized_expression "(*(byte *)&pmVar25->A - 0x10)" ( (binary_expression "*(byte *)&pmVar25->A - 0x10" (pointer_expression "*(byte *)&pmVar25->A" * (cast_expression "(byte *)&pmVar25->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar25->A" & (field_expression "pmVar25->A" identifier -> field_identifier)))) - number_literal) ))) )))) - (binary_expression "(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10))" ( (binary_expression "(int)pmVar24->total + (*(byte *)&pmVar26->A - 0x10)" (cast_expression "(int)pmVar24->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar24->total" identifier -> field_identifier)) + (parenthesized_expression "(*(byte *)&pmVar26->A - 0x10)" ( (binary_expression "*(byte *)&pmVar26->A - 0x10" (pointer_expression "*(byte *)&pmVar26->A" * (cast_expression "(byte *)&pmVar26->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar26->A" & (field_expression "pmVar26->A" identifier -> field_identifier)))) - number_literal) ))) )))))) ;) (if_statement "if (local_2158 != 0) goto LAB_00017838;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017838;" goto statement_identifier ;)) })) })))) (if_statement "if (pmVar22 < pmVar29) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }" if (parenthesized_expression "(pmVar22 < pmVar29)" ( (binary_expression "pmVar22 < pmVar29" identifier < identifier) )) (compound_statement "{\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }" { (expression_statement "local_2158 = 0xffffffff;" (assignment_expression "local_2158 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_00017838;" goto statement_identifier ;) })) (expression_statement "local_2158 = (uint)(pmVar22 != pmVar29);" (assignment_expression "local_2158 = (uint)(pmVar22 != pmVar29)" identifier = (call_expression "(uint)(pmVar22 != pmVar29)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar22 != pmVar29)" ( (binary_expression "pmVar22 != pmVar29" identifier != identifier) )))) ;) (goto_statement "goto joined_r0x0001782c;" goto statement_identifier ;) })) (expression_statement "local_2158 = 1;" (assignment_expression "local_2158 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00017838;" goto statement_identifier ;) })) (expression_statement "pmVar22 = pmVar30;" (assignment_expression "pmVar22 = pmVar30" identifier = identifier) ;) (if_statement "if (pmVar24 != (md5_ctx *)0x0) goto LAB_000174c0;" if (parenthesized_expression "(pmVar24 != (md5_ctx *)0x0)" ( (binary_expression "pmVar24 != (md5_ctx *)0x0" identifier != (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000174c0;" goto statement_identifier ;)) (labeled_statement "LAB_000181d0:\n  if ((pmVar25 <= pmVar22) ||\n     (*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0')) {\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    pmVar31 = pmVar27;\n    if (pmVar26 <= pmVar27) {\n      local_2158 = (uint)(pmVar27 < pmVar26);\n      goto LAB_00018290;\n    }\n    while (pmVar27 = (md5_ctx *)((int)&pmVar31->A + 1),\n          *(char *)((int)pmVar23->total + (*(byte *)&pmVar31->A - 0x10)) != '\0') {\n      pmVar31 = pmVar27;\n      if (pmVar26 == pmVar27) goto LAB_00018284;\n    }\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    if (pmVar28 == (md5_ctx *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*(byte *)&pmVar22->A - (uint)*(byte *)&pmVar31->A;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" statement_identifier : (if_statement "if ((pmVar25 <= pmVar22) ||\n     (*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0')) {\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    pmVar31 = pmVar27;\n    if (pmVar26 <= pmVar27) {\n      local_2158 = (uint)(pmVar27 < pmVar26);\n      goto LAB_00018290;\n    }\n    while (pmVar27 = (md5_ctx *)((int)&pmVar31->A + 1),\n          *(char *)((int)pmVar23->total + (*(byte *)&pmVar31->A - 0x10)) != '\0') {\n      pmVar31 = pmVar27;\n      if (pmVar26 == pmVar27) goto LAB_00018284;\n    }\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    if (pmVar28 == (md5_ctx *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*(byte *)&pmVar22->A - (uint)*(byte *)&pmVar31->A;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" if (parenthesized_expression "((pmVar25 <= pmVar22) ||\n     (*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0'))" ( (binary_expression "(pmVar25 <= pmVar22) ||\n     (*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0')" (parenthesized_expression "(pmVar25 <= pmVar22)" ( (binary_expression "pmVar25 <= pmVar22" identifier <= identifier) )) || (parenthesized_expression "(*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0')" ( (binary_expression "*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0'" (pointer_expression "*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10))" * (cast_expression "(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10))" ( (binary_expression "(int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)" (cast_expression "(int)pmVar23->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar23->total" identifier -> field_identifier)) + (parenthesized_expression "(*(byte *)&pmVar22->A - 0x10)" ( (binary_expression "*(byte *)&pmVar22->A - 0x10" (pointer_expression "*(byte *)&pmVar22->A" * (cast_expression "(byte *)&pmVar22->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar22->A" & (field_expression "pmVar22->A" identifier -> field_identifier)))) - number_literal) ))) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    pmVar31 = pmVar27;\n    if (pmVar26 <= pmVar27) {\n      local_2158 = (uint)(pmVar27 < pmVar26);\n      goto LAB_00018290;\n    }\n    while (pmVar27 = (md5_ctx *)((int)&pmVar31->A + 1),\n          *(char *)((int)pmVar23->total + (*(byte *)&pmVar31->A - 0x10)) != '\0') {\n      pmVar31 = pmVar27;\n      if (pmVar26 == pmVar27) goto LAB_00018284;\n    }\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    if (pmVar28 == (md5_ctx *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*(byte *)&pmVar22->A - (uint)*(byte *)&pmVar31->A;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" { (expression_statement "pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);" (assignment_expression "pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25)" identifier = (cast_expression "(md5_ctx *)(uint)(pmVar22 < pmVar25)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pmVar22 < pmVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar22 < pmVar25)" ( (binary_expression "pmVar22 < pmVar25" identifier < identifier) ))))) ;) (expression_statement "pmVar31 = pmVar27;" (assignment_expression "pmVar31 = pmVar27" identifier = identifier) ;) (if_statement "if (pmVar26 <= pmVar27) {\n      local_2158 = (uint)(pmVar27 < pmVar26);\n      goto LAB_00018290;\n    }" if (parenthesized_expression "(pmVar26 <= pmVar27)" ( (binary_expression "pmVar26 <= pmVar27" identifier <= identifier) )) (compound_statement "{\n      local_2158 = (uint)(pmVar27 < pmVar26);\n      goto LAB_00018290;\n    }" { (expression_statement "local_2158 = (uint)(pmVar27 < pmVar26);" (assignment_expression "local_2158 = (uint)(pmVar27 < pmVar26)" identifier = (call_expression "(uint)(pmVar27 < pmVar26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar27 < pmVar26)" ( (binary_expression "pmVar27 < pmVar26" identifier < identifier) )))) ;) (goto_statement "goto LAB_00018290;" goto statement_identifier ;) })) (while_statement "while (pmVar27 = (md5_ctx *)((int)&pmVar31->A + 1),\n          *(char *)((int)pmVar23->total + (*(byte *)&pmVar31->A - 0x10)) != '\0') {\n      pmVar31 = pmVar27;\n      if (pmVar26 == pmVar27) goto LAB_00018284;\n    }" while (parenthesized_expression "(pmVar27 = (md5_ctx *)((int)&pmVar31->A + 1),\n          *(char *)((int)pmVar23->total + (*(byte *)&pmVar31->A - 0x10)) != '\0')" ( (comma_expression "pmVar27 = (md5_ctx *)((int)&pmVar31->A + 1),\n          *(char *)((int)pmVar23->total + (*(byte *)&pmVar31->A - 0x10)) != '\0'" (assignment_expression "pmVar27 = (md5_ctx *)((int)&pmVar31->A + 1)" identifier = (cast_expression "(md5_ctx *)((int)&pmVar31->A + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar31->A + 1)" ( (binary_expression "(int)&pmVar31->A + 1" (cast_expression "(int)&pmVar31->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar31->A" & (field_expression "pmVar31->A" identifier -> field_identifier))) + number_literal) )))) , (binary_expression "*(char *)((int)pmVar23->total + (*(byte *)&pmVar31->A - 0x10)) != '\0'" (pointer_expression "*(char *)((int)pmVar23->total + (*(byte *)&pmVar31->A - 0x10))" * (cast_expression "(char *)((int)pmVar23->total + (*(byte *)&pmVar31->A - 0x10))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar23->total + (*(byte *)&pmVar31->A - 0x10))" ( (binary_expression "(int)pmVar23->total + (*(byte *)&pmVar31->A - 0x10)" (cast_expression "(int)pmVar23->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar23->total" identifier -> field_identifier)) + (parenthesized_expression "(*(byte *)&pmVar31->A - 0x10)" ( (binary_expression "*(byte *)&pmVar31->A - 0x10" (pointer_expression "*(byte *)&pmVar31->A" * (cast_expression "(byte *)&pmVar31->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar31->A" & (field_expression "pmVar31->A" identifier -> field_identifier)))) - number_literal) ))) )))) != (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n      pmVar31 = pmVar27;\n      if (pmVar26 == pmVar27) goto LAB_00018284;\n    }" { (expression_statement "pmVar31 = pmVar27;" (assignment_expression "pmVar31 = pmVar27" identifier = identifier) ;) (if_statement "if (pmVar26 == pmVar27) goto LAB_00018284;" if (parenthesized_expression "(pmVar26 == pmVar27)" ( (binary_expression "pmVar26 == pmVar27" identifier == identifier) )) (goto_statement "goto LAB_00018284;" goto statement_identifier ;)) })) (expression_statement "pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);" (assignment_expression "pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25)" identifier = (cast_expression "(md5_ctx *)(uint)(pmVar22 < pmVar25)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pmVar22 < pmVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar22 < pmVar25)" ( (binary_expression "pmVar22 < pmVar25" identifier < identifier) ))))) ;) (if_statement "if (pmVar28 == (md5_ctx *)0x0) goto LAB_0001828c;" if (parenthesized_expression "(pmVar28 == (md5_ctx *)0x0)" ( (binary_expression "pmVar28 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001828c;" goto statement_identifier ;)) (expression_statement "local_2158 = (uint)*(byte *)&pmVar22->A - (uint)*(byte *)&pmVar31->A;" (assignment_expression "local_2158 = (uint)*(byte *)&pmVar22->A - (uint)*(byte *)&pmVar31->A" identifier = (binary_expression "(uint)*(byte *)&pmVar22->A - (uint)*(byte *)&pmVar31->A" (binary_expression "(uint)*(byte *)&pmVar22->A" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)&pmVar22->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar22->A" & (field_expression "pmVar22->A" identifier -> field_identifier)))) - (binary_expression "(uint)*(byte *)&pmVar31->A" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)&pmVar31->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar31->A" & (field_expression "pmVar31->A" identifier -> field_identifier)))))) ;) (if_statement "if (local_2158 != 0) goto LAB_00017838;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017838;" goto statement_identifier ;)) }))) (expression_statement "pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);" (assignment_expression "pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1)" identifier = (cast_expression "(md5_ctx *)((int)&pmVar22->A + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar22->A + 1)" ( (binary_expression "(int)&pmVar22->A + 1" (cast_expression "(int)&pmVar22->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar22->A" & (field_expression "pmVar22->A" identifier -> field_identifier))) + number_literal) )))) ;) (goto_statement "goto LAB_000181d0;" goto statement_identifier ;) (labeled_statement "LAB_000174c0:\n  if ((pmVar25 <= pmVar22) ||\n     (*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0')) {\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    if (pmVar26 <= pmVar27) {\n      local_2158 = (uint)(pmVar27 < pmVar26);\n      goto LAB_00018290;\n    }\n    while (pmVar28 = (md5_ctx *)((int)&pmVar27->A + 1),\n          *(char *)((int)pmVar23->total + (*(byte *)&pmVar27->A - 0x10)) != '\0') {\n      pmVar27 = pmVar28;\n      if (pmVar26 == pmVar28) goto LAB_00018284;\n    }\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    pmVar31 = pmVar27;\n    if (pmVar28 == (md5_ctx *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar22->A - 0x10)) -\n                 (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));\n    pmVar27 = (md5_ctx *)((int)&pmVar27->A + 1);\n    if (local_2158 != 0) goto LAB_00017838;\n  }" statement_identifier : (if_statement "if ((pmVar25 <= pmVar22) ||\n     (*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0')) {\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    if (pmVar26 <= pmVar27) {\n      local_2158 = (uint)(pmVar27 < pmVar26);\n      goto LAB_00018290;\n    }\n    while (pmVar28 = (md5_ctx *)((int)&pmVar27->A + 1),\n          *(char *)((int)pmVar23->total + (*(byte *)&pmVar27->A - 0x10)) != '\0') {\n      pmVar27 = pmVar28;\n      if (pmVar26 == pmVar28) goto LAB_00018284;\n    }\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    pmVar31 = pmVar27;\n    if (pmVar28 == (md5_ctx *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar22->A - 0x10)) -\n                 (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));\n    pmVar27 = (md5_ctx *)((int)&pmVar27->A + 1);\n    if (local_2158 != 0) goto LAB_00017838;\n  }" if (parenthesized_expression "((pmVar25 <= pmVar22) ||\n     (*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0'))" ( (binary_expression "(pmVar25 <= pmVar22) ||\n     (*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0')" (parenthesized_expression "(pmVar25 <= pmVar22)" ( (binary_expression "pmVar25 <= pmVar22" identifier <= identifier) )) || (parenthesized_expression "(*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0')" ( (binary_expression "*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)) == '\0'" (pointer_expression "*(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10))" * (cast_expression "(char *)((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10))" ( (binary_expression "(int)pmVar23->total + (*(byte *)&pmVar22->A - 0x10)" (cast_expression "(int)pmVar23->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar23->total" identifier -> field_identifier)) + (parenthesized_expression "(*(byte *)&pmVar22->A - 0x10)" ( (binary_expression "*(byte *)&pmVar22->A - 0x10" (pointer_expression "*(byte *)&pmVar22->A" * (cast_expression "(byte *)&pmVar22->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar22->A" & (field_expression "pmVar22->A" identifier -> field_identifier)))) - number_literal) ))) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    if (pmVar26 <= pmVar27) {\n      local_2158 = (uint)(pmVar27 < pmVar26);\n      goto LAB_00018290;\n    }\n    while (pmVar28 = (md5_ctx *)((int)&pmVar27->A + 1),\n          *(char *)((int)pmVar23->total + (*(byte *)&pmVar27->A - 0x10)) != '\0') {\n      pmVar27 = pmVar28;\n      if (pmVar26 == pmVar28) goto LAB_00018284;\n    }\n    pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);\n    pmVar31 = pmVar27;\n    if (pmVar28 == (md5_ctx *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar22->A - 0x10)) -\n                 (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));\n    pmVar27 = (md5_ctx *)((int)&pmVar27->A + 1);\n    if (local_2158 != 0) goto LAB_00017838;\n  }" { (expression_statement "pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);" (assignment_expression "pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25)" identifier = (cast_expression "(md5_ctx *)(uint)(pmVar22 < pmVar25)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pmVar22 < pmVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar22 < pmVar25)" ( (binary_expression "pmVar22 < pmVar25" identifier < identifier) ))))) ;) (if_statement "if (pmVar26 <= pmVar27) {\n      local_2158 = (uint)(pmVar27 < pmVar26);\n      goto LAB_00018290;\n    }" if (parenthesized_expression "(pmVar26 <= pmVar27)" ( (binary_expression "pmVar26 <= pmVar27" identifier <= identifier) )) (compound_statement "{\n      local_2158 = (uint)(pmVar27 < pmVar26);\n      goto LAB_00018290;\n    }" { (expression_statement "local_2158 = (uint)(pmVar27 < pmVar26);" (assignment_expression "local_2158 = (uint)(pmVar27 < pmVar26)" identifier = (call_expression "(uint)(pmVar27 < pmVar26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar27 < pmVar26)" ( (binary_expression "pmVar27 < pmVar26" identifier < identifier) )))) ;) (goto_statement "goto LAB_00018290;" goto statement_identifier ;) })) (while_statement "while (pmVar28 = (md5_ctx *)((int)&pmVar27->A + 1),\n          *(char *)((int)pmVar23->total + (*(byte *)&pmVar27->A - 0x10)) != '\0') {\n      pmVar27 = pmVar28;\n      if (pmVar26 == pmVar28) goto LAB_00018284;\n    }" while (parenthesized_expression "(pmVar28 = (md5_ctx *)((int)&pmVar27->A + 1),\n          *(char *)((int)pmVar23->total + (*(byte *)&pmVar27->A - 0x10)) != '\0')" ( (comma_expression "pmVar28 = (md5_ctx *)((int)&pmVar27->A + 1),\n          *(char *)((int)pmVar23->total + (*(byte *)&pmVar27->A - 0x10)) != '\0'" (assignment_expression "pmVar28 = (md5_ctx *)((int)&pmVar27->A + 1)" identifier = (cast_expression "(md5_ctx *)((int)&pmVar27->A + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar27->A + 1)" ( (binary_expression "(int)&pmVar27->A + 1" (cast_expression "(int)&pmVar27->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar27->A" & (field_expression "pmVar27->A" identifier -> field_identifier))) + number_literal) )))) , (binary_expression "*(char *)((int)pmVar23->total + (*(byte *)&pmVar27->A - 0x10)) != '\0'" (pointer_expression "*(char *)((int)pmVar23->total + (*(byte *)&pmVar27->A - 0x10))" * (cast_expression "(char *)((int)pmVar23->total + (*(byte *)&pmVar27->A - 0x10))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar23->total + (*(byte *)&pmVar27->A - 0x10))" ( (binary_expression "(int)pmVar23->total + (*(byte *)&pmVar27->A - 0x10)" (cast_expression "(int)pmVar23->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar23->total" identifier -> field_identifier)) + (parenthesized_expression "(*(byte *)&pmVar27->A - 0x10)" ( (binary_expression "*(byte *)&pmVar27->A - 0x10" (pointer_expression "*(byte *)&pmVar27->A" * (cast_expression "(byte *)&pmVar27->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar27->A" & (field_expression "pmVar27->A" identifier -> field_identifier)))) - number_literal) ))) )))) != (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n      pmVar27 = pmVar28;\n      if (pmVar26 == pmVar28) goto LAB_00018284;\n    }" { (expression_statement "pmVar27 = pmVar28;" (assignment_expression "pmVar27 = pmVar28" identifier = identifier) ;) (if_statement "if (pmVar26 == pmVar28) goto LAB_00018284;" if (parenthesized_expression "(pmVar26 == pmVar28)" ( (binary_expression "pmVar26 == pmVar28" identifier == identifier) )) (goto_statement "goto LAB_00018284;" goto statement_identifier ;)) })) (expression_statement "pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);" (assignment_expression "pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25)" identifier = (cast_expression "(md5_ctx *)(uint)(pmVar22 < pmVar25)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pmVar22 < pmVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar22 < pmVar25)" ( (binary_expression "pmVar22 < pmVar25" identifier < identifier) ))))) ;) (expression_statement "pmVar31 = pmVar27;" (assignment_expression "pmVar31 = pmVar27" identifier = identifier) ;) (if_statement "if (pmVar28 == (md5_ctx *)0x0) goto LAB_0001828c;" if (parenthesized_expression "(pmVar28 == (md5_ctx *)0x0)" ( (binary_expression "pmVar28 == (md5_ctx *)0x0" identifier == (cast_expression "(md5_ctx *)0x0" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001828c;" goto statement_identifier ;)) (expression_statement "local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar22->A - 0x10)) -\n                 (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10));" (assignment_expression "local_2158 = (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar22->A - 0x10)) -\n                 (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10))" identifier = (binary_expression "(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar22->A - 0x10)) -\n                 (uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10))" (binary_expression "(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar22->A - 0x10))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pmVar24->total + (*(byte *)&pmVar22->A - 0x10))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar24->total + (*(byte *)&pmVar22->A - 0x10))" ( (binary_expression "(int)pmVar24->total + (*(byte *)&pmVar22->A - 0x10)" (cast_expression "(int)pmVar24->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar24->total" identifier -> field_identifier)) + (parenthesized_expression "(*(byte *)&pmVar22->A - 0x10)" ( (binary_expression "*(byte *)&pmVar22->A - 0x10" (pointer_expression "*(byte *)&pmVar22->A" * (cast_expression "(byte *)&pmVar22->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar22->A" & (field_expression "pmVar22->A" identifier -> field_identifier)))) - number_literal) ))) )))) - (binary_expression "(uint)*(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10))" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10))" ( (binary_expression "(int)pmVar24->total + (*(byte *)&pmVar27->A - 0x10)" (cast_expression "(int)pmVar24->total" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar24->total" identifier -> field_identifier)) + (parenthesized_expression "(*(byte *)&pmVar27->A - 0x10)" ( (binary_expression "*(byte *)&pmVar27->A - 0x10" (pointer_expression "*(byte *)&pmVar27->A" * (cast_expression "(byte *)&pmVar27->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar27->A" & (field_expression "pmVar27->A" identifier -> field_identifier)))) - number_literal) ))) )))))) ;) (expression_statement "pmVar27 = (md5_ctx *)((int)&pmVar27->A + 1);" (assignment_expression "pmVar27 = (md5_ctx *)((int)&pmVar27->A + 1)" identifier = (cast_expression "(md5_ctx *)((int)&pmVar27->A + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar27->A + 1)" ( (binary_expression "(int)&pmVar27->A + 1" (cast_expression "(int)&pmVar27->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar27->A" & (field_expression "pmVar27->A" identifier -> field_identifier))) + number_literal) )))) ;) (if_statement "if (local_2158 != 0) goto LAB_00017838;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017838;" goto statement_identifier ;)) }))) (expression_statement "pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1);" (assignment_expression "pmVar22 = (md5_ctx *)((int)&pmVar22->A + 1)" identifier = (cast_expression "(md5_ctx *)((int)&pmVar22->A + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar22->A + 1)" ( (binary_expression "(int)&pmVar22->A + 1" (cast_expression "(int)&pmVar22->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar22->A" & (field_expression "pmVar22->A" identifier -> field_identifier))) + number_literal) )))) ;) (goto_statement "goto LAB_000174c0;" goto statement_identifier ;) (labeled_statement "LAB_00018284:\n  pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);" statement_identifier : (expression_statement "pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25);" (assignment_expression "pmVar28 = (md5_ctx *)(uint)(pmVar22 < pmVar25)" identifier = (cast_expression "(md5_ctx *)(uint)(pmVar22 < pmVar25)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pmVar22 < pmVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar22 < pmVar25)" ( (binary_expression "pmVar22 < pmVar25" identifier < identifier) ))))) ;)) (expression_statement "pmVar31 = pmVar26;" (assignment_expression "pmVar31 = pmVar26" identifier = identifier) ;) (labeled_statement "LAB_0001828c:\n  local_2158 = (uint)(pmVar31 < pmVar26);" statement_identifier : (expression_statement "local_2158 = (uint)(pmVar31 < pmVar26);" (assignment_expression "local_2158 = (uint)(pmVar31 < pmVar26)" identifier = (call_expression "(uint)(pmVar31 < pmVar26)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pmVar31 < pmVar26)" ( (binary_expression "pmVar31 < pmVar26" identifier < identifier) )))) ;)) (expression_statement "pmVar27 = pmVar31;" (assignment_expression "pmVar27 = pmVar31" identifier = identifier) ;) (labeled_statement "LAB_00018290:\n  local_2158 = (int)pmVar28 - local_2158;" statement_identifier : (expression_statement "local_2158 = (int)pmVar28 - local_2158;" (assignment_expression "local_2158 = (int)pmVar28 - local_2158" identifier = (binary_expression "(int)pmVar28 - local_2158" (cast_expression "(int)pmVar28" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;)) (goto_statement "goto joined_r0x0001782c;" goto statement_identifier ;) (while_statement "while (pmVar30 = pmVar25, pmVar22 = pmVar23, pmVar25 != pmVar23) {\nLAB_000178dc:\n    pmVar23 = (md5_ctx *)((int)&pmVar22->A + 1);\n    pmVar30 = pmVar22;\n    if (puVar5[*(byte *)&pmVar22->A - 0x15f0] == '\0') break;\n  }" while (parenthesized_expression "(pmVar30 = pmVar25, pmVar22 = pmVar23, pmVar25 != pmVar23)" ( (comma_expression "pmVar30 = pmVar25, pmVar22 = pmVar23, pmVar25 != pmVar23" (assignment_expression "pmVar30 = pmVar25" identifier = identifier) , (comma_expression "pmVar22 = pmVar23, pmVar25 != pmVar23" (assignment_expression "pmVar22 = pmVar23" identifier = identifier) , (binary_expression "pmVar25 != pmVar23" identifier != identifier))) )) (compound_statement "{\nLAB_000178dc:\n    pmVar23 = (md5_ctx *)((int)&pmVar22->A + 1);\n    pmVar30 = pmVar22;\n    if (puVar5[*(byte *)&pmVar22->A - 0x15f0] == '\0') break;\n  }" { (labeled_statement "LAB_000178dc:\n    pmVar23 = (md5_ctx *)((int)&pmVar22->A + 1);" statement_identifier : (expression_statement "pmVar23 = (md5_ctx *)((int)&pmVar22->A + 1);" (assignment_expression "pmVar23 = (md5_ctx *)((int)&pmVar22->A + 1)" identifier = (cast_expression "(md5_ctx *)((int)&pmVar22->A + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar22->A + 1)" ( (binary_expression "(int)&pmVar22->A + 1" (cast_expression "(int)&pmVar22->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar22->A" & (field_expression "pmVar22->A" identifier -> field_identifier))) + number_literal) )))) ;)) (expression_statement "pmVar30 = pmVar22;" (assignment_expression "pmVar30 = pmVar22" identifier = identifier) ;) (if_statement "if (puVar5[*(byte *)&pmVar22->A - 0x15f0] == '\0') break;" if (parenthesized_expression "(puVar5[*(byte *)&pmVar22->A - 0x15f0] == '\0')" ( (binary_expression "puVar5[*(byte *)&pmVar22->A - 0x15f0] == '\0'" (subscript_expression "puVar5[*(byte *)&pmVar22->A - 0x15f0]" identifier [ (binary_expression "*(byte *)&pmVar22->A - 0x15f0" (pointer_expression "*(byte *)&pmVar22->A" * (cast_expression "(byte *)&pmVar22->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar22->A" & (field_expression "pmVar22->A" identifier -> field_identifier)))) - number_literal) ]) == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) })) (labeled_statement "LAB_000178f8:\n  bVar4 = pmVar30 < pmVar25;" statement_identifier : (expression_statement "bVar4 = pmVar30 < pmVar25;" (assignment_expression "bVar4 = pmVar30 < pmVar25" identifier = (binary_expression "pmVar30 < pmVar25" identifier < identifier)) ;)) (if_statement "if (pmVar29 < pmVar26) {\n    do {\n      bVar4 = pmVar30 < pmVar25;\n      pmVar27 = pmVar29;\n      if (puVar5[*(byte *)&pmVar29->A - 0x15f0] == '\0') break;\n      pmVar29 = (md5_ctx *)((int)&pmVar29->A + 1);\n      pmVar27 = pmVar26;\n    } while (pmVar26 != pmVar29);\n  }" if (parenthesized_expression "(pmVar29 < pmVar26)" ( (binary_expression "pmVar29 < pmVar26" identifier < identifier) )) (compound_statement "{\n    do {\n      bVar4 = pmVar30 < pmVar25;\n      pmVar27 = pmVar29;\n      if (puVar5[*(byte *)&pmVar29->A - 0x15f0] == '\0') break;\n      pmVar29 = (md5_ctx *)((int)&pmVar29->A + 1);\n      pmVar27 = pmVar26;\n    } while (pmVar26 != pmVar29);\n  }" { (do_statement "do {\n      bVar4 = pmVar30 < pmVar25;\n      pmVar27 = pmVar29;\n      if (puVar5[*(byte *)&pmVar29->A - 0x15f0] == '\0') break;\n      pmVar29 = (md5_ctx *)((int)&pmVar29->A + 1);\n      pmVar27 = pmVar26;\n    } while (pmVar26 != pmVar29);" do (compound_statement "{\n      bVar4 = pmVar30 < pmVar25;\n      pmVar27 = pmVar29;\n      if (puVar5[*(byte *)&pmVar29->A - 0x15f0] == '\0') break;\n      pmVar29 = (md5_ctx *)((int)&pmVar29->A + 1);\n      pmVar27 = pmVar26;\n    }" { (expression_statement "bVar4 = pmVar30 < pmVar25;" (assignment_expression "bVar4 = pmVar30 < pmVar25" identifier = (binary_expression "pmVar30 < pmVar25" identifier < identifier)) ;) (expression_statement "pmVar27 = pmVar29;" (assignment_expression "pmVar27 = pmVar29" identifier = identifier) ;) (if_statement "if (puVar5[*(byte *)&pmVar29->A - 0x15f0] == '\0') break;" if (parenthesized_expression "(puVar5[*(byte *)&pmVar29->A - 0x15f0] == '\0')" ( (binary_expression "puVar5[*(byte *)&pmVar29->A - 0x15f0] == '\0'" (subscript_expression "puVar5[*(byte *)&pmVar29->A - 0x15f0]" identifier [ (binary_expression "*(byte *)&pmVar29->A - 0x15f0" (pointer_expression "*(byte *)&pmVar29->A" * (cast_expression "(byte *)&pmVar29->A" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar29->A" & (field_expression "pmVar29->A" identifier -> field_identifier)))) - number_literal) ]) == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "pmVar29 = (md5_ctx *)((int)&pmVar29->A + 1);" (assignment_expression "pmVar29 = (md5_ctx *)((int)&pmVar29->A + 1)" identifier = (cast_expression "(md5_ctx *)((int)&pmVar29->A + 1)" ( (type_descriptor "md5_ctx *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar29->A + 1)" ( (binary_expression "(int)&pmVar29->A + 1" (cast_expression "(int)&pmVar29->A" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar29->A" & (field_expression "pmVar29->A" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pmVar27 = pmVar26;" (assignment_expression "pmVar27 = pmVar26" identifier = identifier) ;) }) while (parenthesized_expression "(pmVar26 != pmVar29)" ( (binary_expression "pmVar26 != pmVar29" identifier != identifier) )) ;) })) (goto_statement "goto LAB_00017440;" goto statement_identifier ;) })))
(translation_unit "uint FUN_00017390(undefined4 *param_1,undefined4 *param_2)\n\n{\n  byte bVar1;\n  byte bVar2;\n  char cVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  byte bVar10;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  uint uVar9;\n  code *pcVar11;\n  code *pcVar12;\n  int iVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  byte *pbVar16;\n  undefined4 uVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  int iVar23;\n  byte *pbVar24;\n  int iVar25;\n  byte *pbVar26;\n  byte *pbVar27;\n  byte *pbVar28;\n  byte *pbVar29;\n  byte *pbVar30;\n  byte *pbVar31;\n  int *piVar32;\n  code *pcVar33;\n  double dVar34;\n  double dVar35;\n  uint local_2158;\n  byte *local_2154;\n  byte *local_2150;\n  byte *local_214c;\n  byte *local_213c;\n  byte *local_2138;\n  byte *local_2134;\n  undefined4 *local_2130;\n  byte *local_2120;\n  byte *local_211c;\n  byte *local_2118;\n  int *local_2114;\n  byte *local_2110;\n  byte *local_210c;\n  byte *local_2108;\n  byte *local_2104;\n  byte *local_2100;\n  byte *local_20fc;\n  byte *local_20ec;\n  byte *local_20e8;\n  byte *local_20e4 [6];\n  byte abStack_20cc [16];\n  byte abStack_20bc [16];\n  undefined4 local_20ac [39];\n  byte local_2010 [4];\n  undefined4 local_200c [35];\n  byte abStack_1f80 [12];\n  byte local_1f74 [4000];\n  byte abStack_fd4 [4000];\n  int local_34;\n  \n  puVar6 = PTR___stack_chk_guard_0003e550;\n  puVar5 = PTR_DAT_0003e1a8;\n  pbVar22 = (byte *)param_1[3];\n  pcVar11 = (code *)(PTR_0003e1b4 + 0x6938);\n  pbVar24 = (byte *)param_2[3];\n  piVar32 = *(int **)(PTR_DAT_0003e1a8 + -0x1908);\n  local_34 = *(int *)PTR___stack_chk_guard_0003e550;\n  pbVar29 = (byte *)param_1[2];\n  pcVar12 = (code *)(PTR_0003e1b4 + 0x613c);\n  pbVar26 = (byte *)param_2[2];\n  bVar1 = 0;\n  bVar2 = 0;\nLAB_0001743c:\n  bVar4 = pbVar29 < pbVar22;\nLAB_00017440:\n  if (!bVar4) {\n    pbVar22 = pbVar29;\n  }\n  if (pbVar24 <= pbVar26) {\n    pbVar24 = pbVar26;\n  }\n  pbVar18 = pbVar22 + -(int)pbVar29;\n  pbVar21 = (byte *)piVar32[5];\n  pbVar28 = pbVar24 + -(int)pbVar26;\n  pbVar20 = (byte *)piVar32[4];\n  if (((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||\n     (*(char *)(piVar32 + 8) != '\0')) {\n    pbVar30 = pbVar28;\n    if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }\n    else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }\n    pbVar22 = pbVar24;\n    pbVar31 = pbVar27;\n    if (cVar3 == '\0') {\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }\n    pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);\n    local_2150 = pbVar21;\n    local_214c = pbVar20;\n    if (pbVar20 != (byte *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;\n    pbVar24[(int)pbVar18] = bVar1;\n    pbVar27[(int)pbVar30] = bVar2;\n    pbVar27 = pbVar18;\n    pbVar31 = pbVar30;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );\n  }\n  pbVar31 = pbVar28;\n  if (pbVar20 == (byte *)0x0) {\n    pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);\n    if (pbVar18 == (byte *)0x0) {\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }\n    if (pbVar28 != (byte *)0x0) {\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }\n  pbVar18 = pbVar29;\n  if (pbVar21 != (byte *)0x0) goto LAB_000174c0;\nLAB_000181d0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pbVar18 = pbVar18 + 1;\n  goto LAB_000181d0;\nLAB_000174c0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];\n    pbVar26 = pbVar26 + 1;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pbVar18 = pbVar18 + 1;\n  goto LAB_000174c0;\nLAB_00018284:\n  pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n  pbVar30 = pbVar24;\nLAB_0001828c:\n  local_2158 = (uint)(pbVar30 < pbVar24);\n  pbVar26 = pbVar30;\nLAB_00018290:\n  local_2158 = (int)pbVar27 - local_2158;\n  goto joined_r0x0001782c;\n  while (pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20) {\nLAB_000178dc:\n    pbVar20 = pbVar18 + 1;\n    pbVar29 = pbVar18;\n    if (puVar5[*pbVar18 - 0x15f0] == '\0') break;\n  }\nLAB_000178f8:\n  bVar4 = pbVar29 < pbVar22;\n  if (pbVar28 < pbVar24) {\n    do {\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    } while (pbVar24 != pbVar28);\n  }\n  goto LAB_00017440;\n}\n\n" (function_definition "uint FUN_00017390(undefined4 *param_1,undefined4 *param_2)\n\n{\n  byte bVar1;\n  byte bVar2;\n  char cVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  byte bVar10;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  uint uVar9;\n  code *pcVar11;\n  code *pcVar12;\n  int iVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  byte *pbVar16;\n  undefined4 uVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  int iVar23;\n  byte *pbVar24;\n  int iVar25;\n  byte *pbVar26;\n  byte *pbVar27;\n  byte *pbVar28;\n  byte *pbVar29;\n  byte *pbVar30;\n  byte *pbVar31;\n  int *piVar32;\n  code *pcVar33;\n  double dVar34;\n  double dVar35;\n  uint local_2158;\n  byte *local_2154;\n  byte *local_2150;\n  byte *local_214c;\n  byte *local_213c;\n  byte *local_2138;\n  byte *local_2134;\n  undefined4 *local_2130;\n  byte *local_2120;\n  byte *local_211c;\n  byte *local_2118;\n  int *local_2114;\n  byte *local_2110;\n  byte *local_210c;\n  byte *local_2108;\n  byte *local_2104;\n  byte *local_2100;\n  byte *local_20fc;\n  byte *local_20ec;\n  byte *local_20e8;\n  byte *local_20e4 [6];\n  byte abStack_20cc [16];\n  byte abStack_20bc [16];\n  undefined4 local_20ac [39];\n  byte local_2010 [4];\n  undefined4 local_200c [35];\n  byte abStack_1f80 [12];\n  byte local_1f74 [4000];\n  byte abStack_fd4 [4000];\n  int local_34;\n  \n  puVar6 = PTR___stack_chk_guard_0003e550;\n  puVar5 = PTR_DAT_0003e1a8;\n  pbVar22 = (byte *)param_1[3];\n  pcVar11 = (code *)(PTR_0003e1b4 + 0x6938);\n  pbVar24 = (byte *)param_2[3];\n  piVar32 = *(int **)(PTR_DAT_0003e1a8 + -0x1908);\n  local_34 = *(int *)PTR___stack_chk_guard_0003e550;\n  pbVar29 = (byte *)param_1[2];\n  pcVar12 = (code *)(PTR_0003e1b4 + 0x613c);\n  pbVar26 = (byte *)param_2[2];\n  bVar1 = 0;\n  bVar2 = 0;\nLAB_0001743c:\n  bVar4 = pbVar29 < pbVar22;\nLAB_00017440:\n  if (!bVar4) {\n    pbVar22 = pbVar29;\n  }\n  if (pbVar24 <= pbVar26) {\n    pbVar24 = pbVar26;\n  }\n  pbVar18 = pbVar22 + -(int)pbVar29;\n  pbVar21 = (byte *)piVar32[5];\n  pbVar28 = pbVar24 + -(int)pbVar26;\n  pbVar20 = (byte *)piVar32[4];\n  if (((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||\n     (*(char *)(piVar32 + 8) != '\0')) {\n    pbVar30 = pbVar28;\n    if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }\n    else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }\n    pbVar22 = pbVar24;\n    pbVar31 = pbVar27;\n    if (cVar3 == '\0') {\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }\n    pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);\n    local_2150 = pbVar21;\n    local_214c = pbVar20;\n    if (pbVar20 != (byte *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;\n    pbVar24[(int)pbVar18] = bVar1;\n    pbVar27[(int)pbVar30] = bVar2;\n    pbVar27 = pbVar18;\n    pbVar31 = pbVar30;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );\n  }\n  pbVar31 = pbVar28;\n  if (pbVar20 == (byte *)0x0) {\n    pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);\n    if (pbVar18 == (byte *)0x0) {\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }\n    if (pbVar28 != (byte *)0x0) {\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }\n  pbVar18 = pbVar29;\n  if (pbVar21 != (byte *)0x0) goto LAB_000174c0;\nLAB_000181d0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pbVar18 = pbVar18 + 1;\n  goto LAB_000181d0;\nLAB_000174c0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];\n    pbVar26 = pbVar26 + 1;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pbVar18 = pbVar18 + 1;\n  goto LAB_000174c0;\nLAB_00018284:\n  pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n  pbVar30 = pbVar24;\nLAB_0001828c:\n  local_2158 = (uint)(pbVar30 < pbVar24);\n  pbVar26 = pbVar30;\nLAB_00018290:\n  local_2158 = (int)pbVar27 - local_2158;\n  goto joined_r0x0001782c;\n  while (pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20) {\nLAB_000178dc:\n    pbVar20 = pbVar18 + 1;\n    pbVar29 = pbVar18;\n    if (puVar5[*pbVar18 - 0x15f0] == '\0') break;\n  }\nLAB_000178f8:\n  bVar4 = pbVar29 < pbVar22;\n  if (pbVar28 < pbVar24) {\n    do {\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    } while (pbVar24 != pbVar28);\n  }\n  goto LAB_00017440;\n}" type_identifier (function_declarator "FUN_00017390(undefined4 *param_1,undefined4 *param_2)" identifier (parameter_list "(undefined4 *param_1,undefined4 *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  char cVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  byte bVar10;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  uint uVar9;\n  code *pcVar11;\n  code *pcVar12;\n  int iVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  byte *pbVar16;\n  undefined4 uVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  int iVar23;\n  byte *pbVar24;\n  int iVar25;\n  byte *pbVar26;\n  byte *pbVar27;\n  byte *pbVar28;\n  byte *pbVar29;\n  byte *pbVar30;\n  byte *pbVar31;\n  int *piVar32;\n  code *pcVar33;\n  double dVar34;\n  double dVar35;\n  uint local_2158;\n  byte *local_2154;\n  byte *local_2150;\n  byte *local_214c;\n  byte *local_213c;\n  byte *local_2138;\n  byte *local_2134;\n  undefined4 *local_2130;\n  byte *local_2120;\n  byte *local_211c;\n  byte *local_2118;\n  int *local_2114;\n  byte *local_2110;\n  byte *local_210c;\n  byte *local_2108;\n  byte *local_2104;\n  byte *local_2100;\n  byte *local_20fc;\n  byte *local_20ec;\n  byte *local_20e8;\n  byte *local_20e4 [6];\n  byte abStack_20cc [16];\n  byte abStack_20bc [16];\n  undefined4 local_20ac [39];\n  byte local_2010 [4];\n  undefined4 local_200c [35];\n  byte abStack_1f80 [12];\n  byte local_1f74 [4000];\n  byte abStack_fd4 [4000];\n  int local_34;\n  \n  puVar6 = PTR___stack_chk_guard_0003e550;\n  puVar5 = PTR_DAT_0003e1a8;\n  pbVar22 = (byte *)param_1[3];\n  pcVar11 = (code *)(PTR_0003e1b4 + 0x6938);\n  pbVar24 = (byte *)param_2[3];\n  piVar32 = *(int **)(PTR_DAT_0003e1a8 + -0x1908);\n  local_34 = *(int *)PTR___stack_chk_guard_0003e550;\n  pbVar29 = (byte *)param_1[2];\n  pcVar12 = (code *)(PTR_0003e1b4 + 0x613c);\n  pbVar26 = (byte *)param_2[2];\n  bVar1 = 0;\n  bVar2 = 0;\nLAB_0001743c:\n  bVar4 = pbVar29 < pbVar22;\nLAB_00017440:\n  if (!bVar4) {\n    pbVar22 = pbVar29;\n  }\n  if (pbVar24 <= pbVar26) {\n    pbVar24 = pbVar26;\n  }\n  pbVar18 = pbVar22 + -(int)pbVar29;\n  pbVar21 = (byte *)piVar32[5];\n  pbVar28 = pbVar24 + -(int)pbVar26;\n  pbVar20 = (byte *)piVar32[4];\n  if (((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||\n     (*(char *)(piVar32 + 8) != '\0')) {\n    pbVar30 = pbVar28;\n    if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }\n    else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }\n    pbVar22 = pbVar24;\n    pbVar31 = pbVar27;\n    if (cVar3 == '\0') {\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }\n    pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);\n    local_2150 = pbVar21;\n    local_214c = pbVar20;\n    if (pbVar20 != (byte *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;\n    pbVar24[(int)pbVar18] = bVar1;\n    pbVar27[(int)pbVar30] = bVar2;\n    pbVar27 = pbVar18;\n    pbVar31 = pbVar30;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );\n  }\n  pbVar31 = pbVar28;\n  if (pbVar20 == (byte *)0x0) {\n    pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);\n    if (pbVar18 == (byte *)0x0) {\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }\n    if (pbVar28 != (byte *)0x0) {\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }\n  pbVar18 = pbVar29;\n  if (pbVar21 != (byte *)0x0) goto LAB_000174c0;\nLAB_000181d0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pbVar18 = pbVar18 + 1;\n  goto LAB_000181d0;\nLAB_000174c0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];\n    pbVar26 = pbVar26 + 1;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pbVar18 = pbVar18 + 1;\n  goto LAB_000174c0;\nLAB_00018284:\n  pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n  pbVar30 = pbVar24;\nLAB_0001828c:\n  local_2158 = (uint)(pbVar30 < pbVar24);\n  pbVar26 = pbVar30;\nLAB_00018290:\n  local_2158 = (int)pbVar27 - local_2158;\n  goto joined_r0x0001782c;\n  while (pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20) {\nLAB_000178dc:\n    pbVar20 = pbVar18 + 1;\n    pbVar29 = pbVar18;\n    if (puVar5[*pbVar18 - 0x15f0] == '\0') break;\n  }\nLAB_000178f8:\n  bVar4 = pbVar29 < pbVar22;\n  if (pbVar28 < pbVar24) {\n    do {\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    } while (pbVar24 != pbVar28);\n  }\n  goto LAB_00017440;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "byte *pbVar21;" type_identifier (pointer_declarator "*pbVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "byte *pbVar27;" type_identifier (pointer_declarator "*pbVar27" * identifier) ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "byte *pbVar29;" type_identifier (pointer_declarator "*pbVar29" * identifier) ;) (declaration "byte *pbVar30;" type_identifier (pointer_declarator "*pbVar30" * identifier) ;) (declaration "byte *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "int *piVar32;" primitive_type (pointer_declarator "*piVar32" * identifier) ;) (declaration "code *pcVar33;" type_identifier (pointer_declarator "*pcVar33" * identifier) ;) (declaration "double dVar34;" primitive_type identifier ;) (declaration "double dVar35;" primitive_type identifier ;) (declaration "uint local_2158;" type_identifier identifier ;) (declaration "byte *local_2154;" type_identifier (pointer_declarator "*local_2154" * identifier) ;) (declaration "byte *local_2150;" type_identifier (pointer_declarator "*local_2150" * identifier) ;) (declaration "byte *local_214c;" type_identifier (pointer_declarator "*local_214c" * identifier) ;) (declaration "byte *local_213c;" type_identifier (pointer_declarator "*local_213c" * identifier) ;) (declaration "byte *local_2138;" type_identifier (pointer_declarator "*local_2138" * identifier) ;) (declaration "byte *local_2134;" type_identifier (pointer_declarator "*local_2134" * identifier) ;) (declaration "undefined4 *local_2130;" type_identifier (pointer_declarator "*local_2130" * identifier) ;) (declaration "byte *local_2120;" type_identifier (pointer_declarator "*local_2120" * identifier) ;) (declaration "byte *local_211c;" type_identifier (pointer_declarator "*local_211c" * identifier) ;) (declaration "byte *local_2118;" type_identifier (pointer_declarator "*local_2118" * identifier) ;) (declaration "int *local_2114;" primitive_type (pointer_declarator "*local_2114" * identifier) ;) (declaration "byte *local_2110;" type_identifier (pointer_declarator "*local_2110" * identifier) ;) (declaration "byte *local_210c;" type_identifier (pointer_declarator "*local_210c" * identifier) ;) (declaration "byte *local_2108;" type_identifier (pointer_declarator "*local_2108" * identifier) ;) (declaration "byte *local_2104;" type_identifier (pointer_declarator "*local_2104" * identifier) ;) (declaration "byte *local_2100;" type_identifier (pointer_declarator "*local_2100" * identifier) ;) (declaration "byte *local_20fc;" type_identifier (pointer_declarator "*local_20fc" * identifier) ;) (declaration "byte *local_20ec;" type_identifier (pointer_declarator "*local_20ec" * identifier) ;) (declaration "byte *local_20e8;" type_identifier (pointer_declarator "*local_20e8" * identifier) ;) (declaration "byte *local_20e4 [6];" type_identifier (pointer_declarator "*local_20e4 [6]" * (array_declarator "local_20e4 [6]" identifier [ number_literal ])) ;) (declaration "byte abStack_20cc [16];" type_identifier (array_declarator "abStack_20cc [16]" identifier [ number_literal ]) ;) (declaration "byte abStack_20bc [16];" type_identifier (array_declarator "abStack_20bc [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_20ac [39];" type_identifier (array_declarator "local_20ac [39]" identifier [ number_literal ]) ;) (declaration "byte local_2010 [4];" type_identifier (array_declarator "local_2010 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 local_200c [35];" type_identifier (array_declarator "local_200c [35]" identifier [ number_literal ]) ;) (declaration "byte abStack_1f80 [12];" type_identifier (array_declarator "abStack_1f80 [12]" identifier [ number_literal ]) ;) (declaration "byte local_1f74 [4000];" type_identifier (array_declarator "local_1f74 [4000]" identifier [ number_literal ]) ;) (declaration "byte abStack_fd4 [4000];" type_identifier (array_declarator "abStack_fd4 [4000]" identifier [ number_literal ]) ;) (declaration "int local_34;" primitive_type identifier ;) (expression_statement "puVar6 = PTR___stack_chk_guard_0003e550;" (assignment_expression "puVar6 = PTR___stack_chk_guard_0003e550" identifier = identifier) ;) (expression_statement "puVar5 = PTR_DAT_0003e1a8;" (assignment_expression "puVar5 = PTR_DAT_0003e1a8" identifier = identifier) ;) (expression_statement "pbVar22 = (byte *)param_1[3];" (assignment_expression "pbVar22 = (byte *)param_1[3]" identifier = (cast_expression "(byte *)param_1[3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "pcVar11 = (code *)(PTR_0003e1b4 + 0x6938);" (assignment_expression "pcVar11 = (code *)(PTR_0003e1b4 + 0x6938)" identifier = (cast_expression "(code *)(PTR_0003e1b4 + 0x6938)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_0003e1b4 + 0x6938)" ( (binary_expression "PTR_0003e1b4 + 0x6938" identifier + number_literal) )))) ;) (expression_statement "pbVar24 = (byte *)param_2[3];" (assignment_expression "pbVar24 = (byte *)param_2[3]" identifier = (cast_expression "(byte *)param_2[3]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "piVar32 = *(int **)(PTR_DAT_0003e1a8 + -0x1908);" (assignment_expression "piVar32 = *(int **)(PTR_DAT_0003e1a8 + -0x1908)" identifier = (pointer_expression "*(int **)(PTR_DAT_0003e1a8 + -0x1908)" * (cast_expression "(int **)(PTR_DAT_0003e1a8 + -0x1908)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0003e1a8 + -0x1908)" ( (binary_expression "PTR_DAT_0003e1a8 + -0x1908" identifier + number_literal) ))))) ;) (expression_statement "local_34 = *(int *)PTR___stack_chk_guard_0003e550;" (assignment_expression "local_34 = *(int *)PTR___stack_chk_guard_0003e550" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0003e550" * (cast_expression "(int *)PTR___stack_chk_guard_0003e550" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar29 = (byte *)param_1[2];" (assignment_expression "pbVar29 = (byte *)param_1[2]" identifier = (cast_expression "(byte *)param_1[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "pcVar12 = (code *)(PTR_0003e1b4 + 0x613c);" (assignment_expression "pcVar12 = (code *)(PTR_0003e1b4 + 0x613c)" identifier = (cast_expression "(code *)(PTR_0003e1b4 + 0x613c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_0003e1b4 + 0x613c)" ( (binary_expression "PTR_0003e1b4 + 0x613c" identifier + number_literal) )))) ;) (expression_statement "pbVar26 = (byte *)param_2[2];" (assignment_expression "pbVar26 = (byte *)param_2[2]" identifier = (cast_expression "(byte *)param_2[2]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) ;) (expression_statement "bVar1 = 0;" (assignment_expression "bVar1 = 0" identifier = number_literal) ;) (expression_statement "bVar2 = 0;" (assignment_expression "bVar2 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0001743c:\n  bVar4 = pbVar29 < pbVar22;" statement_identifier : (expression_statement "bVar4 = pbVar29 < pbVar22;" (assignment_expression "bVar4 = pbVar29 < pbVar22" identifier = (binary_expression "pbVar29 < pbVar22" identifier < identifier)) ;)) (labeled_statement "LAB_00017440:\n  if (!bVar4) {\n    pbVar22 = pbVar29;\n  }" statement_identifier : (if_statement "if (!bVar4) {\n    pbVar22 = pbVar29;\n  }" if (parenthesized_expression "(!bVar4)" ( (unary_expression "!bVar4" ! identifier) )) (compound_statement "{\n    pbVar22 = pbVar29;\n  }" { (expression_statement "pbVar22 = pbVar29;" (assignment_expression "pbVar22 = pbVar29" identifier = identifier) ;) }))) (if_statement "if (pbVar24 <= pbVar26) {\n    pbVar24 = pbVar26;\n  }" if (parenthesized_expression "(pbVar24 <= pbVar26)" ( (binary_expression "pbVar24 <= pbVar26" identifier <= identifier) )) (compound_statement "{\n    pbVar24 = pbVar26;\n  }" { (expression_statement "pbVar24 = pbVar26;" (assignment_expression "pbVar24 = pbVar26" identifier = identifier) ;) })) (expression_statement "pbVar18 = pbVar22 + -(int)pbVar29;" (assignment_expression "pbVar18 = pbVar22 + -(int)pbVar29" identifier = (binary_expression "pbVar22 + -(int)pbVar29" identifier + (unary_expression "-(int)pbVar29" - (cast_expression "(int)pbVar29" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar21 = (byte *)piVar32[5];" (assignment_expression "pbVar21 = (byte *)piVar32[5]" identifier = (cast_expression "(byte *)piVar32[5]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar32[5]" identifier [ number_literal ]))) ;) (expression_statement "pbVar28 = pbVar24 + -(int)pbVar26;" (assignment_expression "pbVar28 = pbVar24 + -(int)pbVar26" identifier = (binary_expression "pbVar24 + -(int)pbVar26" identifier + (unary_expression "-(int)pbVar26" - (cast_expression "(int)pbVar26" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar20 = (byte *)piVar32[4];" (assignment_expression "pbVar20 = (byte *)piVar32[4]" identifier = (cast_expression "(byte *)piVar32[4]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar32[4]" identifier [ number_literal ]))) ;) (if_statement "if (((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||\n     (*(char *)(piVar32 + 8) != '\0')) {\n    pbVar30 = pbVar28;\n    if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }\n    else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }\n    pbVar22 = pbVar24;\n    pbVar31 = pbVar27;\n    if (cVar3 == '\0') {\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }\n    pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);\n    local_2150 = pbVar21;\n    local_214c = pbVar20;\n    if (pbVar20 != (byte *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;\n    pbVar24[(int)pbVar18] = bVar1;\n    pbVar27[(int)pbVar30] = bVar2;\n    pbVar27 = pbVar18;\n    pbVar31 = pbVar30;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );\n  }" if (parenthesized_expression "(((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||\n     (*(char *)(piVar32 + 8) != '\0'))" ( (binary_expression "((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||\n     (*(char *)(piVar32 + 8) != '\0')" (parenthesized_expression "((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0'))))" ( (binary_expression "(((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))" (parenthesized_expression "(((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0))" ( (binary_expression "((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)" (parenthesized_expression "((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0'))" ( (binary_expression "(puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')" (parenthesized_expression "(puVar5[-0x14df] != '\0')" ( (binary_expression "puVar5[-0x14df] != '\0'" (subscript_expression "puVar5[-0x14df]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(char *)((int)piVar32 + 0x1a) != '\0')" ( (binary_expression "*(char *)((int)piVar32 + 0x1a) != '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1a)" * (cast_expression "(char *)((int)piVar32 + 0x1a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar32 + 0x1a)" ( (binary_expression "(int)piVar32 + 0x1a" (cast_expression "(int)piVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "((piVar32[7] & 0xffff0000U) != 0)" ( (binary_expression "(piVar32[7] & 0xffff0000U) != 0" (parenthesized_expression "(piVar32[7] & 0xffff0000U)" ( (binary_expression "piVar32[7] & 0xffff0000U" (subscript_expression "piVar32[7]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) || (parenthesized_expression "((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))" ( (parenthesized_expression "(*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0'))" ( (binary_expression "*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')" (binary_expression "*(char *)((int)piVar32 + 0x1e) != '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1e)" * (cast_expression "(char *)((int)piVar32 + 0x1e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar32 + 0x1e)" ( (binary_expression "(int)piVar32 + 0x1e" (cast_expression "(int)piVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(*(char *)((int)piVar32 + 0x1b) != '\0')" ( (binary_expression "*(char *)((int)piVar32 + 0x1b) != '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1b)" * (cast_expression "(char *)((int)piVar32 + 0x1b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar32 + 0x1b)" ( (binary_expression "(int)piVar32 + 0x1b" (cast_expression "(int)piVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) || (parenthesized_expression "(*(char *)(piVar32 + 8) != '\0')" ( (binary_expression "*(char *)(piVar32 + 8) != '\0'" (pointer_expression "*(char *)(piVar32 + 8)" * (cast_expression "(char *)(piVar32 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar32 + 8)" ( (binary_expression "piVar32 + 8" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    pbVar30 = pbVar28;\n    if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }\n    else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }\n    pbVar22 = pbVar24;\n    pbVar31 = pbVar27;\n    if (cVar3 == '\0') {\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }\n    pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);\n    local_2150 = pbVar21;\n    local_214c = pbVar20;\n    if (pbVar20 != (byte *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;\n    pbVar24[(int)pbVar18] = bVar1;\n    pbVar27[(int)pbVar30] = bVar2;\n    pbVar27 = pbVar18;\n    pbVar31 = pbVar30;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );\n  }" { (expression_statement "pbVar30 = pbVar28;" (assignment_expression "pbVar30 = pbVar28" identifier = identifier) ;) (if_statement "if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }\n    else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }" if (parenthesized_expression "((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0))" ( (binary_expression "(pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)" (parenthesized_expression "(pbVar20 == (byte *)0x0)" ( (binary_expression "pbVar20 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pbVar21 == (byte *)0x0)" ( (binary_expression "pbVar21 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }" { (expression_statement "bVar1 = *pbVar22;" (assignment_expression "bVar1 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) (expression_statement "*pbVar22 = 0;" (assignment_expression "*pbVar22 = 0" (pointer_expression "*pbVar22" * identifier) = number_literal) ;) (expression_statement "bVar2 = *pbVar24;" (assignment_expression "bVar2 = *pbVar24" identifier = (pointer_expression "*pbVar24" * identifier)) ;) (expression_statement "*pbVar24 = 0;" (assignment_expression "*pbVar24 = 0" (pointer_expression "*pbVar24" * identifier) = number_literal) ;) (expression_statement "cVar3 = *(char *)((int)piVar32 + 0x1a);" (assignment_expression "cVar3 = *(char *)((int)piVar32 + 0x1a)" identifier = (pointer_expression "*(char *)((int)piVar32 + 0x1a)" * (cast_expression "(char *)((int)piVar32 + 0x1a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar32 + 0x1a)" ( (binary_expression "(int)piVar32 + 0x1a" (cast_expression "(int)piVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pbVar27 = pbVar26;" (assignment_expression "pbVar27 = pbVar26" identifier = identifier) ;) (expression_statement "pbVar24 = pbVar29;" (assignment_expression "pbVar24 = pbVar29" identifier = identifier) ;) }) (else_clause "else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }" else (compound_statement "{\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }" { (expression_statement "pbVar24 = local_1f74;" (assignment_expression "pbVar24 = local_1f74" identifier = identifier) ;) (if_statement "if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }" if (parenthesized_expression "(pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1)" ( (binary_expression "pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1" (binary_expression "pbVar18 + (int)pbVar28 + 2" (binary_expression "pbVar18 + (int)pbVar28" identifier + (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) < (cast_expression "(byte *)0xfa1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }" { (expression_statement "local_2154 = (byte *)0x0;" (assignment_expression "local_2154 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar27 = pbVar24 + (int)(pbVar18 + 1);" (assignment_expression "pbVar27 = pbVar24 + (int)(pbVar18 + 1)" identifier = (binary_expression "pbVar24 + (int)(pbVar18 + 1)" identifier + (cast_expression "(int)(pbVar18 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + 1)" ( (binary_expression "pbVar18 + 1" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }" else (compound_statement "{\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }" { (expression_statement "pbVar24 = (byte *)xmalloc();" (assignment_expression "pbVar24 = (byte *)xmalloc()" identifier = (cast_expression "(byte *)xmalloc()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pbVar27 = pbVar24 + (int)(pbVar18 + 1);" (assignment_expression "pbVar27 = pbVar24 + (int)(pbVar18 + 1)" identifier = (binary_expression "pbVar24 + (int)(pbVar18 + 1)" identifier + (cast_expression "(int)(pbVar18 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + 1)" ( (binary_expression "pbVar18 + 1" identifier + number_literal) ))))) ;) (expression_statement "local_214c = pbVar18;" (assignment_expression "local_214c = pbVar18" identifier = identifier) ;) (expression_statement "local_2150 = pbVar20;" (assignment_expression "local_2150 = pbVar20" identifier = identifier) ;) (expression_statement "local_2154 = pbVar24;" (assignment_expression "local_2154 = pbVar24" identifier = identifier) ;) }))) (if_statement "if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }" if (parenthesized_expression "(pbVar18 == (byte *)0x0)" ( (binary_expression "pbVar18 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *pbVar24 = 0;\n      }" { (expression_statement "*pbVar24 = 0;" (assignment_expression "*pbVar24 = 0" (pointer_expression "*pbVar24" * identifier) = number_literal) ;) }) (else_clause "else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }" else (compound_statement "{\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }" { (expression_statement "pbVar31 = pbVar29 + (int)pbVar18;" (assignment_expression "pbVar31 = pbVar29 + (int)pbVar18" identifier = (binary_expression "pbVar29 + (int)pbVar18" identifier + (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar18 = (byte *)0x0;" (assignment_expression "pbVar18 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar22 = pbVar29;" (assignment_expression "pbVar22 = pbVar29" identifier = identifier) ;) (do_statement "do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);" do (compound_statement "{\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        }" { (expression_statement "bVar10 = *pbVar22;" (assignment_expression "bVar10 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) (if_statement "if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }" if (parenthesized_expression "((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0))" ( (binary_expression "(pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)" (parenthesized_expression "(pbVar20 == (byte *)0x0)" ( (binary_expression "pbVar20 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pbVar20[bVar10] == 0)" ( (binary_expression "pbVar20[bVar10] == 0" (subscript_expression "pbVar20[bVar10]" identifier [ identifier ]) == number_literal) ))) )) (compound_statement "{\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }" { (expression_statement "pbVar16 = pbVar24 + (int)pbVar18;" (assignment_expression "pbVar16 = pbVar24 + (int)pbVar18" identifier = (binary_expression "pbVar24 + (int)pbVar18" identifier + (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }" if (parenthesized_expression "(pbVar21 != (byte *)0x0)" ( (binary_expression "pbVar21 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              bVar10 = pbVar21[bVar10];\n            }" { (expression_statement "bVar10 = pbVar21[bVar10];" (assignment_expression "bVar10 = pbVar21[bVar10]" identifier = (subscript_expression "pbVar21[bVar10]" identifier [ identifier ])) ;) })) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar16 = bVar10;" (assignment_expression "*pbVar16 = bVar10" (pointer_expression "*pbVar16" * identifier) = identifier) ;) })) (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar31 != pbVar22)" ( (binary_expression "pbVar31 != pbVar22" identifier != identifier) )) ;) (expression_statement "pbVar24[(int)pbVar18] = 0;" (assignment_expression "pbVar24[(int)pbVar18] = 0" (subscript_expression "pbVar24[(int)pbVar18]" identifier [ (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) ]) = number_literal) ;) }))) (if_statement "if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }" if (parenthesized_expression "(pbVar28 == (byte *)0x0)" ( (binary_expression "pbVar28 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *pbVar27 = 0;\n      }" { (expression_statement "*pbVar27 = 0;" (assignment_expression "*pbVar27 = 0" (pointer_expression "*pbVar27" * identifier) = number_literal) ;) }) (else_clause "else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }" else (compound_statement "{\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }" { (expression_statement "pbVar28 = pbVar26 + (int)pbVar28;" (assignment_expression "pbVar28 = pbVar26 + (int)pbVar28" identifier = (binary_expression "pbVar26 + (int)pbVar28" identifier + (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar30 = (byte *)0x0;" (assignment_expression "pbVar30 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar22 = pbVar26;" (assignment_expression "pbVar22 = pbVar26" identifier = identifier) ;) (do_statement "do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);" do (compound_statement "{\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        }" { (expression_statement "bVar10 = *pbVar22;" (assignment_expression "bVar10 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) (if_statement "if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }" if (parenthesized_expression "((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0))" ( (binary_expression "(pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)" (parenthesized_expression "(pbVar20 == (byte *)0x0)" ( (binary_expression "pbVar20 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pbVar20[bVar10] == 0)" ( (binary_expression "pbVar20[bVar10] == 0" (subscript_expression "pbVar20[bVar10]" identifier [ identifier ]) == number_literal) ))) )) (compound_statement "{\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }" { (expression_statement "pbVar31 = pbVar27 + (int)pbVar30;" (assignment_expression "pbVar31 = pbVar27 + (int)pbVar30" identifier = (binary_expression "pbVar27 + (int)pbVar30" identifier + (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }" if (parenthesized_expression "(pbVar21 != (byte *)0x0)" ( (binary_expression "pbVar21 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              bVar10 = pbVar21[bVar10];\n            }" { (expression_statement "bVar10 = pbVar21[bVar10];" (assignment_expression "bVar10 = pbVar21[bVar10]" identifier = (subscript_expression "pbVar21[bVar10]" identifier [ identifier ])) ;) })) (expression_statement "pbVar30 = pbVar30 + 1;" (assignment_expression "pbVar30 = pbVar30 + 1" identifier = (binary_expression "pbVar30 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar31 = bVar10;" (assignment_expression "*pbVar31 = bVar10" (pointer_expression "*pbVar31" * identifier) = identifier) ;) })) (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar28 != pbVar22)" ( (binary_expression "pbVar28 != pbVar22" identifier != identifier) )) ;) (expression_statement "pbVar27[(int)pbVar30] = 0;" (assignment_expression "pbVar27[(int)pbVar30] = 0" (subscript_expression "pbVar27[(int)pbVar30]" identifier [ (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier) ]) = number_literal) ;) }))) (expression_statement "cVar3 = *(char *)((int)piVar32 + 0x1a);" (assignment_expression "cVar3 = *(char *)((int)piVar32 + 0x1a)" identifier = (pointer_expression "*(char *)((int)piVar32 + 0x1a)" * (cast_expression "(char *)((int)piVar32 + 0x1a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar32 + 0x1a)" ( (binary_expression "(int)piVar32 + 0x1a" (cast_expression "(int)piVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (expression_statement "pbVar22 = pbVar24;" (assignment_expression "pbVar22 = pbVar24" identifier = identifier) ;) (expression_statement "pbVar31 = pbVar27;" (assignment_expression "pbVar31 = pbVar27" identifier = identifier) ;) (if_statement "if (cVar3 == '\0') {\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }" { (if_statement "if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }" if (parenthesized_expression "(*(char *)(piVar32 + 7) != '\0')" ( (binary_expression "*(char *)(piVar32 + 7) != '\0'" (pointer_expression "*(char *)(piVar32 + 7)" * (cast_expression "(char *)(piVar32 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar32 + 7)" ( (binary_expression "piVar32 + 7" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }" { (expression_statement "dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);" (assignment_expression "dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8)" identifier = (cast_expression "(double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8)" (parenthesized_expression "(*(code *)PTR_strtold_0003e524)" ( (pointer_expression "*(code *)PTR_strtold_0003e524" * (cast_expression "(code *)PTR_strtold_0003e524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar24,&local_20e8)" ( identifier , (pointer_expression "&local_20e8" & identifier) ))))) ;) (expression_statement "dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);" (assignment_expression "dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4)" identifier = (cast_expression "(double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4)" ( (type_descriptor "double" primitive_type) ) (call_expression "(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4)" (parenthesized_expression "(*(code *)PTR_strtold_0003e524)" ( (pointer_expression "*(code *)PTR_strtold_0003e524" * (cast_expression "(code *)PTR_strtold_0003e524" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar27,local_20e4)" ( identifier , identifier ))))) ;) (if_statement "if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }" if (parenthesized_expression "(pbVar24 == local_20e8)" ( (binary_expression "pbVar24 == local_20e8" identifier == identifier) )) (compound_statement "{\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }" { (expression_statement "local_2158 = -(uint)(pbVar27 != local_20e4[0]);" (assignment_expression "local_2158 = -(uint)(pbVar27 != local_20e4[0])" identifier = (unary_expression "-(uint)(pbVar27 != local_20e4[0])" - (call_expression "(uint)(pbVar27 != local_20e4[0])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar27 != local_20e4[0])" ( (binary_expression "pbVar27 != local_20e4[0]" identifier != (subscript_expression "local_20e4[0]" identifier [ number_literal ])) ))))) ;) (expression_statement "local_2150 = pbVar20;" (assignment_expression "local_2150 = pbVar20" identifier = identifier) ;) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) (expression_statement "local_2150 = pbVar20;" (assignment_expression "local_2150 = pbVar20" identifier = identifier) ;) (if_statement "if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }" if (parenthesized_expression "(pbVar27 != local_20e4[0])" ( (binary_expression "pbVar27 != local_20e4[0]" identifier != (subscript_expression "local_20e4[0]" identifier [ number_literal ])) )) (compound_statement "{\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }" { (if_statement "if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }" if (parenthesized_expression "(dVar35 <= dVar34)" ( (binary_expression "dVar35 <= dVar34" identifier <= identifier) )) (compound_statement "{\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }" { (if_statement "if (dVar35 < dVar34) goto LAB_000179f8;" if (parenthesized_expression "(dVar35 < dVar34)" ( (binary_expression "dVar35 < dVar34" identifier < identifier) )) (goto_statement "goto LAB_000179f8;" goto statement_identifier ;)) (if_statement "if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }" if (parenthesized_expression "(dVar34 == dVar35)" ( (binary_expression "dVar34 == dVar35" identifier == identifier) )) (compound_statement "{\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }" { (expression_statement "local_2158 = 0;" (assignment_expression "local_2158 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) })) (expression_statement "local_2158 = 0xffffffff;" (assignment_expression "local_2158 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) (labeled_statement "LAB_000179f8:\n        local_2158 = 1;" statement_identifier : (expression_statement "local_2158 = 1;" (assignment_expression "local_2158 = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }" if (parenthesized_expression "(*(char *)((int)piVar32 + 0x1d) == '\0')" ( (binary_expression "*(char *)((int)piVar32 + 0x1d) == '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1d)" * (cast_expression "(char *)((int)piVar32 + 0x1d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar32 + 0x1d)" ( (binary_expression "(int)piVar32 + 0x1d" (cast_expression "(int)piVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }" { (if_statement "if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }" if (parenthesized_expression "(*(char *)((int)piVar32 + 0x1e) != '\0')" ( (binary_expression "*(char *)((int)piVar32 + 0x1e) != '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1e)" * (cast_expression "(char *)((int)piVar32 + 0x1e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar32 + 0x1e)" ( (binary_expression "(int)piVar32 + 0x1e" (cast_expression "(int)piVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }" { (expression_statement "pcVar33 = pcVar12;" (assignment_expression "pcVar33 = pcVar12" identifier = identifier) ;) (expression_statement "iVar23 = (*pcVar12)(pbVar24,0);" (assignment_expression "iVar23 = (*pcVar12)(pbVar24,0)" identifier = (call_expression "(*pcVar12)(pbVar24,0)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(pbVar24,0)" ( identifier , number_literal )))) ;) (expression_statement "iVar25 = (*pcVar33)(pbVar27,0);" (assignment_expression "iVar25 = (*pcVar33)(pbVar27,0)" identifier = (call_expression "(*pcVar33)(pbVar27,0)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(pbVar27,0)" ( identifier , number_literal )))) ;) (expression_statement "local_2158 = iVar23 - iVar25;" (assignment_expression "local_2158 = iVar23 - iVar25" identifier = (binary_expression "iVar23 - iVar25" identifier - identifier)) ;) (expression_statement "local_2150 = pbVar21;" (assignment_expression "local_2150 = pbVar21" identifier = identifier) ;) (expression_statement "local_214c = pbVar20;" (assignment_expression "local_214c = pbVar20" identifier = identifier) ;) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) (if_statement "if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }" if (parenthesized_expression "(*(char *)((int)piVar32 + 0x1b) != '\0')" ( (binary_expression "*(char *)((int)piVar32 + 0x1b) != '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1b)" * (cast_expression "(char *)((int)piVar32 + 0x1b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar32 + 0x1b)" ( (binary_expression "(int)piVar32 + 0x1b" (cast_expression "(int)piVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }" { (expression_statement "local_2138 = local_2010;" (assignment_expression "local_2138 = local_2010" identifier = identifier) ;) (expression_statement "puVar8 = (undefined4 *)(puVar5 + -0x1a38);" (assignment_expression "puVar8 = (undefined4 *)(puVar5 + -0x1a38)" identifier = (cast_expression "(undefined4 *)(puVar5 + -0x1a38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x1a38)" ( (binary_expression "puVar5 + -0x1a38" identifier + number_literal) )))) ;) (expression_statement "pbVar22 = local_2138;" (assignment_expression "pbVar22 = local_2138" identifier = identifier) ;) (do_statement "do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));" do (compound_statement "{\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          }" { (expression_statement "pbVar26 = pbVar22;" (assignment_expression "pbVar26 = pbVar22" identifier = identifier) ;) (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" identifier = identifier) ;) (expression_statement "puVar8 = puVar7 + 4;" (assignment_expression "puVar8 = puVar7 + 4" identifier = (binary_expression "puVar7 + 4" identifier + number_literal)) ;) (expression_statement "uVar17 = puVar7[1];" (assignment_expression "uVar17 = puVar7[1]" identifier = (subscript_expression "puVar7[1]" identifier [ number_literal ])) ;) (expression_statement "uVar15 = puVar7[2];" (assignment_expression "uVar15 = puVar7[2]" identifier = (subscript_expression "puVar7[2]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = puVar7[3];" (assignment_expression "uVar14 = puVar7[3]" identifier = (subscript_expression "puVar7[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)pbVar26 = *puVar7;" (assignment_expression "*(undefined4 *)pbVar26 = *puVar7" (pointer_expression "*(undefined4 *)pbVar26" * (cast_expression "(undefined4 *)pbVar26" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "*(undefined4 *)(pbVar26 + 4) = uVar17;" (assignment_expression "*(undefined4 *)(pbVar26 + 4) = uVar17" (pointer_expression "*(undefined4 *)(pbVar26 + 4)" * (cast_expression "(undefined4 *)(pbVar26 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 4)" ( (binary_expression "pbVar26 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pbVar26 + 8) = uVar15;" (assignment_expression "*(undefined4 *)(pbVar26 + 8) = uVar15" (pointer_expression "*(undefined4 *)(pbVar26 + 8)" * (cast_expression "(undefined4 *)(pbVar26 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 8)" ( (binary_expression "pbVar26 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pbVar26 + 0xc) = uVar14;" (assignment_expression "*(undefined4 *)(pbVar26 + 0xc) = uVar14" (pointer_expression "*(undefined4 *)(pbVar26 + 0xc)" * (cast_expression "(undefined4 *)(pbVar26 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 0xc)" ( (binary_expression "pbVar26 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar22 = pbVar26 + 0x10;" (assignment_expression "pbVar22 = pbVar26 + 0x10" identifier = (binary_expression "pbVar26 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar8 != (undefined4 *)(puVar5 + -0x19a8))" ( (binary_expression "puVar8 != (undefined4 *)(puVar5 + -0x19a8)" identifier != (cast_expression "(undefined4 *)(puVar5 + -0x19a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5 + -0x19a8)" ( (binary_expression "puVar5 + -0x19a8" identifier + number_literal) )))) )) ;) (expression_statement "local_2130 = local_20ac;" (assignment_expression "local_2130 = local_20ac" identifier = identifier) ;) (expression_statement "uVar15 = puVar7[5];" (assignment_expression "uVar15 = puVar7[5]" identifier = (subscript_expression "puVar7[5]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = puVar7[6];" (assignment_expression "uVar14 = puVar7[6]" identifier = (subscript_expression "puVar7[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(pbVar26 + 0x10) = *puVar8;" (assignment_expression "*(undefined4 *)(pbVar26 + 0x10) = *puVar8" (pointer_expression "*(undefined4 *)(pbVar26 + 0x10)" * (cast_expression "(undefined4 *)(pbVar26 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 0x10)" ( (binary_expression "pbVar26 + 0x10" identifier + number_literal) )))) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "*(undefined4 *)(pbVar26 + 0x14) = uVar15;" (assignment_expression "*(undefined4 *)(pbVar26 + 0x14) = uVar15" (pointer_expression "*(undefined4 *)(pbVar26 + 0x14)" * (cast_expression "(undefined4 *)(pbVar26 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 0x14)" ( (binary_expression "pbVar26 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pbVar26 + 0x18) = uVar14;" (assignment_expression "*(undefined4 *)(pbVar26 + 0x18) = uVar14" (pointer_expression "*(undefined4 *)(pbVar26 + 0x18)" * (cast_expression "(undefined4 *)(pbVar26 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 0x18)" ( (binary_expression "pbVar26 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar22 = local_2138;" (assignment_expression "pbVar22 = local_2138" identifier = identifier) ;) (expression_statement "puVar8 = local_2130;" (assignment_expression "puVar8 = local_2130" identifier = identifier) ;) (do_statement "do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);" do (compound_statement "{\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          }" { (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" identifier = identifier) ;) (expression_statement "pbVar26 = pbVar22;" (assignment_expression "pbVar26 = pbVar22" identifier = identifier) ;) (expression_statement "pbVar22 = pbVar26 + 0x10;" (assignment_expression "pbVar22 = pbVar26 + 0x10" identifier = (binary_expression "pbVar26 + 0x10" identifier + number_literal)) ;) (expression_statement "uVar17 = *(undefined4 *)(pbVar26 + 4);" (assignment_expression "uVar17 = *(undefined4 *)(pbVar26 + 4)" identifier = (pointer_expression "*(undefined4 *)(pbVar26 + 4)" * (cast_expression "(undefined4 *)(pbVar26 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 4)" ( (binary_expression "pbVar26 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = *(undefined4 *)(pbVar26 + 8);" (assignment_expression "uVar15 = *(undefined4 *)(pbVar26 + 8)" identifier = (pointer_expression "*(undefined4 *)(pbVar26 + 8)" * (cast_expression "(undefined4 *)(pbVar26 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 8)" ( (binary_expression "pbVar26 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(undefined4 *)(pbVar26 + 0xc);" (assignment_expression "uVar14 = *(undefined4 *)(pbVar26 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(pbVar26 + 0xc)" * (cast_expression "(undefined4 *)(pbVar26 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 0xc)" ( (binary_expression "pbVar26 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*puVar7 = *(undefined4 *)pbVar26;" (assignment_expression "*puVar7 = *(undefined4 *)pbVar26" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*(undefined4 *)pbVar26" * (cast_expression "(undefined4 *)pbVar26" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar7[1] = uVar17;" (assignment_expression "puVar7[1] = uVar17" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[2] = uVar15;" (assignment_expression "puVar7[2] = uVar15" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[3] = uVar14;" (assignment_expression "puVar7[3] = uVar14" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8 = puVar7 + 4;" (assignment_expression "puVar8 = puVar7 + 4" identifier = (binary_expression "puVar7 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar22 != abStack_1f80)" ( (binary_expression "pbVar22 != abStack_1f80" identifier != identifier) )) ;) (expression_statement "uVar15 = *(undefined4 *)(pbVar26 + 0x14);" (assignment_expression "uVar15 = *(undefined4 *)(pbVar26 + 0x14)" identifier = (pointer_expression "*(undefined4 *)(pbVar26 + 0x14)" * (cast_expression "(undefined4 *)(pbVar26 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 0x14)" ( (binary_expression "pbVar26 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(undefined4 *)(pbVar26 + 0x18);" (assignment_expression "uVar14 = *(undefined4 *)(pbVar26 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(pbVar26 + 0x18)" * (cast_expression "(undefined4 *)(pbVar26 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 0x18)" ( (binary_expression "pbVar26 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "cVar3 = puVar5[-0x14df];" (assignment_expression "cVar3 = puVar5[-0x14df]" identifier = (subscript_expression "puVar5[-0x14df]" identifier [ number_literal ])) ;) (expression_statement "puVar7[4] = *(undefined4 *)pbVar22;" (assignment_expression "puVar7[4] = *(undefined4 *)pbVar22" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)pbVar22" * (cast_expression "(undefined4 *)pbVar22" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar7[5] = uVar15;" (assignment_expression "puVar7[5] = uVar15" (subscript_expression "puVar7[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar7[6] = uVar14;" (assignment_expression "puVar7[6] = uVar14" (subscript_expression "puVar7[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }" { (expression_statement "md5_process_bytes(pbVar24,pbVar18,local_2130);" (call_expression "md5_process_bytes(pbVar24,pbVar18,local_2130)" identifier (argument_list "(pbVar24,pbVar18,local_2130)" ( identifier , identifier , identifier ))) ;) (expression_statement "pbVar26 = abStack_20cc;" (assignment_expression "pbVar26 = abStack_20cc" identifier = identifier) ;) (expression_statement "md5_finish_ctx(local_2130,pbVar26);" (call_expression "md5_finish_ctx(local_2130,pbVar26)" identifier (argument_list "(local_2130,pbVar26)" ( identifier , identifier ))) ;) (expression_statement "md5_process_bytes(pbVar27,pbVar30,local_2138);" (call_expression "md5_process_bytes(pbVar27,pbVar30,local_2138)" identifier (argument_list "(pbVar27,pbVar30,local_2138)" ( identifier , identifier , identifier ))) ;) (expression_statement "md5_finish_ctx(local_2138,abStack_20bc);" (call_expression "md5_finish_ctx(local_2138,abStack_20bc)" identifier (argument_list "(local_2138,abStack_20bc)" ( identifier , identifier ))) ;) (expression_statement "uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);" (assignment_expression "uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10)" identifier = (call_expression "(*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" ( (pointer_expression "*(code *)PTR_memcmp_0003e52c" * (cast_expression "(code *)PTR_memcmp_0003e52c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar26,abStack_20bc,0x10)" ( identifier , identifier , number_literal )))) ;) (expression_statement "local_214c = (byte *)0x0;" (assignment_expression "local_214c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar28 = pbVar18;" (assignment_expression "pbVar28 = pbVar18" identifier = identifier) ;) (expression_statement "pbVar22 = abStack_20bc;" (assignment_expression "pbVar22 = abStack_20bc" identifier = identifier) ;) (expression_statement "pbVar29 = local_2138;" (assignment_expression "pbVar29 = local_2138" identifier = identifier) ;) (expression_statement "pbVar31 = pbVar24;" (assignment_expression "pbVar31 = pbVar24" identifier = identifier) ;) (expression_statement "local_2150 = pbVar30;" (assignment_expression "local_2150 = pbVar30" identifier = identifier) ;) (expression_statement "local_213c = pbVar27;" (assignment_expression "local_213c = pbVar27" identifier = identifier) ;) (if_statement "if (uVar9 != 0) goto LAB_00018040;" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00018040;" goto statement_identifier ;)) (goto_statement "goto LAB_00017ff4;" goto statement_identifier ;) })) (expression_statement "local_2120 = pbVar24 + (int)pbVar18;" (assignment_expression "local_2120 = pbVar24 + (int)pbVar18" identifier = (binary_expression "pbVar24 + (int)pbVar18" identifier + (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_214c = (byte *)0x0;" (assignment_expression "local_214c = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar29 = abStack_fd4;" (assignment_expression "pbVar29 = abStack_fd4" identifier = identifier) ;) (expression_statement "local_2158 = 0;" (assignment_expression "local_2158 = 0" identifier = number_literal) ;) (expression_statement "local_211c = pbVar27 + (int)pbVar30;" (assignment_expression "local_211c = pbVar27 + (int)pbVar30" identifier = (binary_expression "pbVar27 + (int)pbVar30" identifier + (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);" (assignment_expression "local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2)" identifier = (cast_expression "(byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(pbVar18 + (int)pbVar30) * 3 + 2)" ( (binary_expression "(int)(pbVar18 + (int)pbVar30) * 3 + 2" (binary_expression "(int)(pbVar18 + (int)pbVar30) * 3" (cast_expression "(int)(pbVar18 + (int)pbVar30)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar18 + (int)pbVar30)" ( (binary_expression "pbVar18 + (int)pbVar30" identifier + (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier)) ))) * number_literal) + number_literal) )))) ;) (expression_statement "pbVar26 = (byte *)0xfa0;" (assignment_expression "pbVar26 = (byte *)0xfa0" identifier = (cast_expression "(byte *)0xfa0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2150 = (byte *)(uint)(pbVar27 < local_211c);" (assignment_expression "local_2150 = (byte *)(uint)(pbVar27 < local_211c)" identifier = (cast_expression "(byte *)(uint)(pbVar27 < local_211c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar27 < local_211c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar27 < local_211c)" ( (binary_expression "pbVar27 < local_211c" identifier < identifier) ))))) ;) (expression_statement "local_2118 = (byte *)0x55555555;" (assignment_expression "local_2118 = (byte *)0x55555555" identifier = (cast_expression "(byte *)0x55555555" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar31 = (byte *)(uint)(pbVar24 < local_2120);" (assignment_expression "pbVar31 = (byte *)(uint)(pbVar24 < local_2120)" identifier = (cast_expression "(byte *)(uint)(pbVar24 < local_2120)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar24 < local_2120)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar24 < local_2120)" ( (binary_expression "pbVar24 < local_2120" identifier < identifier) ))))) ;) (expression_statement "local_213c = pbVar24;" (assignment_expression "local_213c = pbVar24" identifier = identifier) ;) (expression_statement "local_2114 = piVar32;" (assignment_expression "local_2114 = piVar32" identifier = identifier) ;) (expression_statement "local_2110 = pbVar24;" (assignment_expression "local_2110 = pbVar24" identifier = identifier) ;) (expression_statement "local_210c = pbVar27;" (assignment_expression "local_210c = pbVar27" identifier = identifier) ;) (expression_statement "local_2108 = pbVar18;" (assignment_expression "local_2108 = pbVar18" identifier = identifier) ;) (expression_statement "local_2104 = pbVar30;" (assignment_expression "local_2104 = pbVar30" identifier = identifier) ;) (expression_statement "local_2100 = pbVar21;" (assignment_expression "local_2100 = pbVar21" identifier = identifier) ;) (expression_statement "local_20fc = pbVar20;" (assignment_expression "local_20fc = pbVar20" identifier = identifier) ;) (expression_statement "local_20ec = pbVar29;" (assignment_expression "local_20ec = pbVar29" identifier = identifier) ;) (goto_statement "goto LAB_00017c30;" goto statement_identifier ;) })) (if_statement "if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }" if (parenthesized_expression "(*(char *)(piVar32 + 8) != '\0')" ( (binary_expression "*(char *)(piVar32 + 8) != '\0'" (pointer_expression "*(char *)(piVar32 + 8)" * (cast_expression "(char *)(piVar32 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar32 + 8)" ( (binary_expression "piVar32 + 8" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }" { (expression_statement "local_2158 = filevercmp(pbVar24,pbVar27);" (assignment_expression "local_2158 = filevercmp(pbVar24,pbVar27)" identifier = (call_expression "filevercmp(pbVar24,pbVar27)" identifier (argument_list "(pbVar24,pbVar27)" ( identifier , identifier )))) ;) (expression_statement "local_2150 = pbVar21;" (assignment_expression "local_2150 = pbVar21" identifier = identifier) ;) (expression_statement "local_214c = pbVar20;" (assignment_expression "local_214c = pbVar20" identifier = identifier) ;) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) (if_statement "if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }" if (parenthesized_expression "(pbVar18 == (byte *)0x0)" ( (binary_expression "pbVar18 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }" { (expression_statement "local_2158 = -(uint)(pbVar30 != (byte *)0x0);" (assignment_expression "local_2158 = -(uint)(pbVar30 != (byte *)0x0)" identifier = (unary_expression "-(uint)(pbVar30 != (byte *)0x0)" - (call_expression "(uint)(pbVar30 != (byte *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar30 != (byte *)0x0)" ( (binary_expression "pbVar30 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;) })) (if_statement "if (pbVar30 == (byte *)0x0) goto LAB_000179f8;" if (parenthesized_expression "(pbVar30 == (byte *)0x0)" ( (binary_expression "pbVar30 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000179f8;" goto statement_identifier ;)) (expression_statement "pbVar19 = pbVar30 + 1;" (assignment_expression "pbVar19 = pbVar30 + 1" identifier = (binary_expression "pbVar30 + 1" identifier + number_literal)) ;) (expression_statement "pbVar31 = pbVar18 + 1;" (assignment_expression "pbVar31 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (expression_statement "pbVar16 = pbVar27;" (assignment_expression "pbVar16 = pbVar27" identifier = identifier) ;) (expression_statement "pcVar33 = (code *)PTR_xmemcoll0_0003e200;" (assignment_expression "pcVar33 = (code *)PTR_xmemcoll0_0003e200" identifier = (cast_expression "(code *)PTR_xmemcoll0_0003e200" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_000177ec;" goto statement_identifier ;) })) (expression_statement "cVar3 = puVar5[*pbVar24 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar24 - 0x15f0]" identifier = (subscript_expression "puVar5[*pbVar24 - 0x15f0]" identifier [ (binary_expression "*pbVar24 - 0x15f0" (pointer_expression "*pbVar24" * identifier) - number_literal) ])) ;) (while_statement "while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }" while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }" { (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = puVar5[*pbVar22 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar22 - 0x15f0]" identifier = (subscript_expression "puVar5[*pbVar22 - 0x15f0]" identifier [ (binary_expression "*pbVar22 - 0x15f0" (pointer_expression "*pbVar22" * identifier) - number_literal) ])) ;) })) (expression_statement "cVar3 = puVar5[*pbVar27 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar27 - 0x15f0]" identifier = (subscript_expression "puVar5[*pbVar27 - 0x15f0]" identifier [ (binary_expression "*pbVar27 - 0x15f0" (pointer_expression "*pbVar27" * identifier) - number_literal) ])) ;) (while_statement "while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }" while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }" { (expression_statement "pbVar31 = pbVar31 + 1;" (assignment_expression "pbVar31 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = puVar5[*pbVar31 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar31 - 0x15f0]" identifier = (subscript_expression "puVar5[*pbVar31 - 0x15f0]" identifier [ (binary_expression "*pbVar31 - 0x15f0" (pointer_expression "*pbVar31" * identifier) - number_literal) ])) ;) })) (expression_statement "pbVar29 = PTR_0003e1b4 + 0x6090;" (assignment_expression "pbVar29 = PTR_0003e1b4 + 0x6090" identifier = (binary_expression "PTR_0003e1b4 + 0x6090" identifier + number_literal)) ;) (expression_statement "iVar23 = FUN_00016090(pbVar22);" (assignment_expression "iVar23 = FUN_00016090(pbVar22)" identifier = (call_expression "FUN_00016090(pbVar22)" identifier (argument_list "(pbVar22)" ( identifier )))) ;) (expression_statement "iVar25 = FUN_00016090(pbVar31);" (assignment_expression "iVar25 = FUN_00016090(pbVar31)" identifier = (call_expression "FUN_00016090(pbVar31)" identifier (argument_list "(pbVar31)" ( identifier )))) ;) (expression_statement "local_2158 = iVar23 - iVar25;" (assignment_expression "local_2158 = iVar23 - iVar25" identifier = (binary_expression "iVar23 - iVar25" identifier - identifier)) ;) (expression_statement "pbVar26 = pbVar22;" (assignment_expression "pbVar26 = pbVar22" identifier = identifier) ;) (expression_statement "pbVar28 = pbVar31;" (assignment_expression "pbVar28 = pbVar31" identifier = identifier) ;) (expression_statement "local_2150 = pbVar21;" (assignment_expression "local_2150 = pbVar21" identifier = identifier) ;) (expression_statement "local_214c = pbVar20;" (assignment_expression "local_214c = pbVar20" identifier = identifier) ;) (if_statement "if (local_2158 != 0) goto LAB_000175d8;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000175d8;" goto statement_identifier ;)) }) (else_clause "else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }" else (compound_statement "{\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }" { (expression_statement "cVar3 = puVar5[*pbVar24 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar24 - 0x15f0]" identifier = (subscript_expression "puVar5[*pbVar24 - 0x15f0]" identifier [ (binary_expression "*pbVar24 - 0x15f0" (pointer_expression "*pbVar24" * identifier) - number_literal) ])) ;) (while_statement "while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }" while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }" { (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = puVar5[*pbVar22 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar22 - 0x15f0]" identifier = (subscript_expression "puVar5[*pbVar22 - 0x15f0]" identifier [ (binary_expression "*pbVar22 - 0x15f0" (pointer_expression "*pbVar22" * identifier) - number_literal) ])) ;) })) (expression_statement "cVar3 = puVar5[*pbVar27 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar27 - 0x15f0]" identifier = (subscript_expression "puVar5[*pbVar27 - 0x15f0]" identifier [ (binary_expression "*pbVar27 - 0x15f0" (pointer_expression "*pbVar27" * identifier) - number_literal) ])) ;) (while_statement "while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }" while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }" { (expression_statement "pbVar31 = pbVar31 + 1;" (assignment_expression "pbVar31 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = puVar5[*pbVar31 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar31 - 0x15f0]" identifier = (subscript_expression "puVar5[*pbVar31 - 0x15f0]" identifier [ (binary_expression "*pbVar31 - 0x15f0" (pointer_expression "*pbVar31" * identifier) - number_literal) ])) ;) })) }))) (expression_statement "pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);" (assignment_expression "pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc)" identifier = (pointer_expression "*(byte **)(PTR_DAT_0003e1a8 + -0x14dc)" * (cast_expression "(byte **)(PTR_DAT_0003e1a8 + -0x14dc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0003e1a8 + -0x14dc)" ( (binary_expression "PTR_DAT_0003e1a8 + -0x14dc" identifier + number_literal) ))))) ;) (expression_statement "pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);" (assignment_expression "pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8)" identifier = (pointer_expression "*(byte **)(PTR_DAT_0003e1a8 + -0x14d8)" * (cast_expression "(byte **)(PTR_DAT_0003e1a8 + -0x14d8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_0003e1a8 + -0x14d8)" ( (binary_expression "PTR_DAT_0003e1a8 + -0x14d8" identifier + number_literal) ))))) ;) (expression_statement "pcVar33 = (code *)PTR_strnumcmp_0003e1f0;" (assignment_expression "pcVar33 = (code *)PTR_strnumcmp_0003e1f0" identifier = (cast_expression "(code *)PTR_strnumcmp_0003e1f0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_000177ec:\n    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);" statement_identifier : (expression_statement "local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);" (assignment_expression "local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19)" identifier = (call_expression "(*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(pbVar22,pbVar31,pbVar16,pbVar19)" ( identifier , identifier , identifier , identifier )))) ;)) (expression_statement "local_2150 = pbVar21;" (assignment_expression "local_2150 = pbVar21" identifier = identifier) ;) (expression_statement "local_214c = pbVar20;" (assignment_expression "local_214c = pbVar20" identifier = identifier) ;) (if_statement "if (pbVar20 != (byte *)0x0) goto LAB_000175e4;" if (parenthesized_expression "(pbVar20 != (byte *)0x0)" ( (binary_expression "pbVar20 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000175e4;" goto statement_identifier ;)) (labeled_statement "LAB_00017808:\n    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;" statement_identifier : (if_statement "if (pbVar21 != (byte *)0x0) goto LAB_000175e4;" if (parenthesized_expression "(pbVar21 != (byte *)0x0)" ( (binary_expression "pbVar21 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000175e4;" goto statement_identifier ;))) (expression_statement "pbVar24[(int)pbVar18] = bVar1;" (assignment_expression "pbVar24[(int)pbVar18] = bVar1" (subscript_expression "pbVar24[(int)pbVar18]" identifier [ (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier) ]) = identifier) ;) (expression_statement "pbVar27[(int)pbVar30] = bVar2;" (assignment_expression "pbVar27[(int)pbVar30] = bVar2" (subscript_expression "pbVar27[(int)pbVar30]" identifier [ (cast_expression "(int)pbVar30" ( (type_descriptor "int" primitive_type) ) identifier) ]) = identifier) ;) (expression_statement "pbVar27 = pbVar18;" (assignment_expression "pbVar27 = pbVar18" identifier = identifier) ;) (expression_statement "pbVar31 = pbVar30;" (assignment_expression "pbVar31 = pbVar30" identifier = identifier) ;) (labeled_statement "joined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );" statement_identifier : (do_statement "do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );" do (compound_statement "{\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    }" { (if_statement "if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }" if (parenthesized_expression "(local_2158 == 0)" ( (binary_expression "local_2158 == 0" identifier == number_literal) )) (compound_statement "{\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }" { (expression_statement "piVar32 = (int *)piVar32[9];" (assignment_expression "piVar32 = (int *)piVar32[9]" identifier = (cast_expression "(int *)piVar32[9]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar32[9]" identifier [ number_literal ]))) ;) (if_statement "if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }" if (parenthesized_expression "(piVar32 != (int *)0x0)" ( (binary_expression "piVar32 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }" { (expression_statement "pbVar29 = (byte *)*param_1;" (assignment_expression "pbVar29 = (byte *)*param_1" identifier = (cast_expression "(byte *)*param_1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "iVar25 = param_1[1];" (assignment_expression "iVar25 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar28 = (byte *)*param_2;" (assignment_expression "pbVar28 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "iVar23 = param_2[1];" (assignment_expression "iVar23 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (if_statement "if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }" if (parenthesized_expression "(piVar32[2] == -1)" ( (binary_expression "piVar32[2] == -1" (subscript_expression "piVar32[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }" { (expression_statement "iVar13 = *piVar32;" (assignment_expression "iVar13 = *piVar32" identifier = (pointer_expression "*piVar32" * identifier)) ;) (expression_statement "pbVar22 = pbVar29 + iVar25 + -1;" (assignment_expression "pbVar22 = pbVar29 + iVar25 + -1" identifier = (binary_expression "pbVar29 + iVar25 + -1" (binary_expression "pbVar29 + iVar25" identifier + identifier) + number_literal)) ;) (expression_statement "pbVar24 = pbVar28 + iVar23 + -1;" (assignment_expression "pbVar24 = pbVar28 + iVar23 + -1" identifier = (binary_expression "pbVar28 + iVar23 + -1" (binary_expression "pbVar28 + iVar23" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }" else (compound_statement "{\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }" { (expression_statement "pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);" (assignment_expression "pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32)" identifier = (cast_expression "(byte *)FUN_000171d0(pbVar29,iVar25,piVar32)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000171d0(pbVar29,iVar25,piVar32)" identifier (argument_list "(pbVar29,iVar25,piVar32)" ( identifier , identifier , identifier ))))) ;) (expression_statement "pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);" (assignment_expression "pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23)" identifier = (cast_expression "(byte *)FUN_000171d0(pbVar28,iVar23)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000171d0(pbVar28,iVar23)" identifier (argument_list "(pbVar28,iVar23)" ( identifier , identifier ))))) ;) (expression_statement "iVar13 = *piVar32;" (assignment_expression "iVar13 = *piVar32" identifier = (pointer_expression "*piVar32" * identifier)) ;) }))) (if_statement "if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }" if (parenthesized_expression "(iVar13 != -1)" ( (binary_expression "iVar13 != -1" identifier != number_literal) )) (compound_statement "{\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }" { (expression_statement "pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);" (assignment_expression "pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32)" identifier = (cast_expression "(byte *)FUN_00017028(pbVar29,iVar25,piVar32)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00017028(pbVar29,iVar25,piVar32)" identifier (argument_list "(pbVar29,iVar25,piVar32)" ( identifier , identifier , identifier ))))) ;) (expression_statement "pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);" (assignment_expression "pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23)" identifier = (cast_expression "(byte *)FUN_00017028(pbVar28,iVar23)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00017028(pbVar28,iVar23)" identifier (argument_list "(pbVar28,iVar23)" ( identifier , identifier ))))) ;) (goto_statement "goto LAB_0001743c;" goto statement_identifier ;) })) (expression_statement "bVar4 = pbVar29 < pbVar22;" (assignment_expression "bVar4 = pbVar29 < pbVar22" identifier = (binary_expression "pbVar29 < pbVar22" identifier < identifier)) ;) (expression_statement "pbVar26 = pbVar28;" (assignment_expression "pbVar26 = pbVar28" identifier = identifier) ;) (if_statement "if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;" if (parenthesized_expression "(*(char *)(piVar32 + 6) == '\0')" ( (binary_expression "*(char *)(piVar32 + 6) == '\0'" (pointer_expression "*(char *)(piVar32 + 6)" * (cast_expression "(char *)(piVar32 + 6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar32 + 6)" ( (binary_expression "piVar32 + 6" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00017440;" goto statement_identifier ;)) (expression_statement "pbVar18 = pbVar29;" (assignment_expression "pbVar18 = pbVar29" identifier = identifier) ;) (if_statement "if (pbVar22 <= pbVar29) goto LAB_000178f8;" if (parenthesized_expression "(pbVar22 <= pbVar29)" ( (binary_expression "pbVar22 <= pbVar29" identifier <= identifier) )) (goto_statement "goto LAB_000178f8;" goto statement_identifier ;)) (goto_statement "goto LAB_000178dc;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }" else (compound_statement "{\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }" { (labeled_statement "LAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }" statement_identifier : (if_statement "if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }" if (parenthesized_expression "(*(char *)((int)piVar32 + 0x1f) != '\0')" ( (binary_expression "*(char *)((int)piVar32 + 0x1f) != '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1f)" * (cast_expression "(char *)((int)piVar32 + 0x1f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar32 + 0x1f)" ( (binary_expression "(int)piVar32 + 0x1f" (cast_expression "(int)piVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_2158 = -local_2158;\n        }" { (expression_statement "local_2158 = -local_2158;" (assignment_expression "local_2158 = -local_2158" identifier = (unary_expression "-local_2158" - identifier)) ;) }))) }))) (if_statement "if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }" if (parenthesized_expression "(local_34 == *(int *)puVar6)" ( (binary_expression "local_34 == *(int *)puVar6" identifier == (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return local_2158;\n      }" { (return_statement "return local_2158;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_0003e518)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003e518)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003e518)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0003e518" * (cast_expression "(code *)PTR___stack_chk_fail_0003e518" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00017dc0:\n      iVar23 = (*pcVar11)();" statement_identifier : (expression_statement "iVar23 = (*pcVar11)();" (assignment_expression "iVar23 = (*pcVar11)()" identifier = (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( )))) ;)) (expression_statement "pbVar18 = (byte *)(iVar23 + 1);" (assignment_expression "pbVar18 = (byte *)(iVar23 + 1)" identifier = (cast_expression "(byte *)(iVar23 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 1)" ( (binary_expression "iVar23 + 1" identifier + number_literal) )))) ;) (expression_statement "pbVar22 = pbVar18 + (int)pbVar28;" (assignment_expression "pbVar22 = pbVar18 + (int)pbVar28" identifier = (binary_expression "pbVar18 + (int)pbVar28" identifier + (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (piVar32 == (int *)0x0) goto LAB_00018174;" if (parenthesized_expression "(piVar32 == (int *)0x0)" ( (binary_expression "piVar32 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00018174;" goto statement_identifier ;)) (labeled_statement "LAB_00017de0:\n      pbVar26 = pbVar22;" statement_identifier : (expression_statement "pbVar26 = pbVar22;" (assignment_expression "pbVar26 = pbVar22" identifier = identifier) ;)) (if_statement "if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }" if (parenthesized_expression "(pbVar26 < local_2118)" ( (binary_expression "pbVar26 < local_2118" identifier < identifier) )) (compound_statement "{\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }" { (expression_statement "pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);" (assignment_expression "pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1)" identifier = (cast_expression "(byte *)((uint)((int)pbVar26 * 3) >> 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((int)pbVar26 * 3) >> 1)" ( (binary_expression "(uint)((int)pbVar26 * 3) >> 1" (call_expression "(uint)((int)pbVar26 * 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar26 * 3)" ( (binary_expression "(int)pbVar26 * 3" (cast_expression "(int)pbVar26" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) >> number_literal) )))) ;) })) (expression_statement "(*(code *)PTR_free_0003e558)(local_214c);" (call_expression "(*(code *)PTR_free_0003e558)(local_214c)" (parenthesized_expression "(*(code *)PTR_free_0003e558)" ( (pointer_expression "*(code *)PTR_free_0003e558" * (cast_expression "(code *)PTR_free_0003e558" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_214c)" ( identifier ))) ;) (expression_statement "pbVar24 = (byte *)xmalloc(pbVar26);" (assignment_expression "pbVar24 = (byte *)xmalloc(pbVar26)" identifier = (cast_expression "(byte *)xmalloc(pbVar26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(pbVar26)" identifier (argument_list "(pbVar26)" ( identifier ))))) ;) (if_statement "if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }" if (parenthesized_expression "(pbVar31 != (byte *)0x0)" ( (binary_expression "pbVar31 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }" { (expression_statement "(*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);" (call_expression "(*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28)" (parenthesized_expression "(*(code *)PTR_strxfrm_0003e464)" ( (pointer_expression "*(code *)PTR_strxfrm_0003e464" * (cast_expression "(code *)PTR_strxfrm_0003e464" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar24,local_213c,pbVar28)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pbVar22 = pbVar24 + (int)pbVar28;" (assignment_expression "pbVar22 = pbVar24 + (int)pbVar28" identifier = (binary_expression "pbVar24 + (int)pbVar28" identifier + (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "local_214c = pbVar24;" (assignment_expression "local_214c = pbVar24" identifier = identifier) ;) (if_statement "if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }" if (parenthesized_expression "(local_2150 != (byte *)0x0)" ( (binary_expression "local_2150 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }" { (expression_statement "(*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);" (call_expression "(*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18)" (parenthesized_expression "(*(code *)PTR_strxfrm_0003e464)" ( (pointer_expression "*(code *)PTR_strxfrm_0003e464" * (cast_expression "(code *)PTR_strxfrm_0003e464" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar22,pbVar27,pbVar18)" ( identifier , identifier , identifier ))) ;) (if_statement "if (pbVar31 == (byte *)0x0) goto LAB_0001809c;" if (parenthesized_expression "(pbVar31 == (byte *)0x0)" ( (binary_expression "pbVar31 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001809c;" goto statement_identifier ;)) (expression_statement "iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);" (assignment_expression "iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c)" identifier = (call_expression "(*(code *)PTR_strlen_0003e488)(local_213c)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" ( (pointer_expression "*(code *)PTR_strlen_0003e488" * (cast_expression "(code *)PTR_strlen_0003e488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_213c)" ( identifier )))) ;) (expression_statement "local_213c = local_213c + iVar23 + 1;" (assignment_expression "local_213c = local_213c + iVar23 + 1" identifier = (binary_expression "local_213c + iVar23 + 1" (binary_expression "local_213c + iVar23" identifier + identifier) + number_literal)) ;) (goto_statement "goto LAB_00017c8c;" goto statement_identifier ;) })) (if_statement "if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }" if (parenthesized_expression "(pbVar31 != (byte *)0x0)" ( (binary_expression "pbVar31 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }" { (expression_statement "iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);" (assignment_expression "iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c)" identifier = (call_expression "(*(code *)PTR_strlen_0003e488)(local_213c)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" ( (pointer_expression "*(code *)PTR_strlen_0003e488" * (cast_expression "(code *)PTR_strlen_0003e488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_213c)" ( identifier )))) ;) (expression_statement "local_213c = local_213c + iVar23 + 1;" (assignment_expression "local_213c = local_213c + iVar23 + 1" identifier = (binary_expression "local_213c + iVar23 + 1" (binary_expression "local_213c + iVar23" identifier + identifier) + number_literal)) ;) (labeled_statement "LAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }" statement_identifier : (if_statement "if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }" if (parenthesized_expression "(local_213c < local_2120)" ( (binary_expression "local_213c < local_2120" identifier < identifier) )) (compound_statement "{\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }" { (expression_statement "pbVar31 = (byte *)(uint)(local_213c < local_2120);" (assignment_expression "pbVar31 = (byte *)(uint)(local_213c < local_2120)" identifier = (cast_expression "(byte *)(uint)(local_213c < local_2120)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(local_213c < local_2120)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_213c < local_2120)" ( (binary_expression "local_213c < local_2120" identifier < identifier) ))))) ;) (expression_statement "pbVar29 = pbVar24;" (assignment_expression "pbVar29 = pbVar24" identifier = identifier) ;) (labeled_statement "LAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );" statement_identifier : (do_statement "do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );" do (compound_statement "{\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          }" { (expression_statement "md5_process_bytes(pbVar29,pbVar28,local_2130);" (call_expression "md5_process_bytes(pbVar29,pbVar28,local_2130)" identifier (argument_list "(pbVar29,pbVar28,local_2130)" ( identifier , identifier , identifier ))) ;) (expression_statement "md5_process_bytes(pbVar22,pbVar18,local_2138);" (call_expression "md5_process_bytes(pbVar22,pbVar18,local_2138)" identifier (argument_list "(pbVar22,pbVar18,local_2138)" ( identifier , identifier , identifier ))) ;) (if_statement "if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }" if (parenthesized_expression "(local_2158 == 0)" ( (binary_expression "local_2158 == 0" identifier == number_literal) )) (compound_statement "{\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }" { (expression_statement "pbVar24 = pbVar18;" (assignment_expression "pbVar24 = pbVar18" identifier = identifier) ;) (if_statement "if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }" if (parenthesized_expression "(pbVar18 < pbVar28 == 0)" ( (binary_expression "pbVar18 < pbVar28 == 0" (binary_expression "pbVar18 < pbVar28" identifier < identifier) == number_literal) )) (compound_statement "{\n                pbVar24 = pbVar28;\n              }" { (expression_statement "pbVar24 = pbVar28;" (assignment_expression "pbVar24 = pbVar28" identifier = identifier) ;) })) (expression_statement "local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);" (assignment_expression "local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24)" identifier = (call_expression "(*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" ( (pointer_expression "*(code *)PTR_memcmp_0003e52c" * (cast_expression "(code *)PTR_memcmp_0003e52c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar29,pbVar22,pbVar24)" ( identifier , identifier , identifier )))) ;) (if_statement "if (local_2158 != 0) goto LAB_00017c30;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017c30;" goto statement_identifier ;)) (expression_statement "local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);" (assignment_expression "local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18)" identifier = (binary_expression "(uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18)" (call_expression "(uint)(pbVar18 < pbVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 < pbVar28)" ( (binary_expression "pbVar18 < pbVar28" identifier < identifier) ))) - (call_expression "(uint)(pbVar28 < pbVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar28 < pbVar18)" ( (binary_expression "pbVar28 < pbVar18" identifier < identifier) ))))) ;) (if_statement "if (pbVar26 < local_2134) goto LAB_00017d44;" if (parenthesized_expression "(pbVar26 < local_2134)" ( (binary_expression "pbVar26 < local_2134" identifier < identifier) )) (goto_statement "goto LAB_00017d44;" goto statement_identifier ;)) (labeled_statement "LAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;" statement_identifier : (if_statement "if (pbVar31 == (byte *)0x0) goto LAB_00017c48;" if (parenthesized_expression "(pbVar31 == (byte *)0x0)" ( (binary_expression "pbVar31 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00017c48;" goto statement_identifier ;))) (labeled_statement "LAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);" statement_identifier : (expression_statement "iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);" (assignment_expression "iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26)" identifier = (call_expression "(*pcVar11)(pbVar29,local_213c,pbVar26)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(pbVar29,local_213c,pbVar26)" ( identifier , identifier , identifier )))) ;)) (expression_statement "pbVar28 = (byte *)(iVar23 + 1);" (assignment_expression "pbVar28 = (byte *)(iVar23 + 1)" identifier = (cast_expression "(byte *)(iVar23 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 1)" ( (binary_expression "iVar23 + 1" identifier + number_literal) )))) ;) (if_statement "if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }" if (parenthesized_expression "(local_2150 != (byte *)0x0)" ( (binary_expression "local_2150 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }" { (expression_statement "piVar32 = (int *)(uint)(pbVar26 < pbVar28);" (assignment_expression "piVar32 = (int *)(uint)(pbVar26 < pbVar28)" identifier = (cast_expression "(int *)(uint)(pbVar26 < pbVar28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar26 < pbVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar26 < pbVar28)" ( (binary_expression "pbVar26 < pbVar28" identifier < identifier) ))))) ;) (goto_statement "goto LAB_00017dc0;" goto statement_identifier ;) })) (expression_statement "pbVar18 = (byte *)0x0;" (assignment_expression "pbVar18 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar22 = pbVar28;" (assignment_expression "pbVar22 = pbVar28" identifier = identifier) ;) (if_statement "if (pbVar26 < pbVar28) goto LAB_00017de0;" if (parenthesized_expression "(pbVar26 < pbVar28)" ( (binary_expression "pbVar26 < pbVar28" identifier < identifier) )) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (labeled_statement "LAB_00018174:\n              pbVar24 = pbVar29;" statement_identifier : (expression_statement "pbVar24 = pbVar29;" (assignment_expression "pbVar24 = pbVar29" identifier = identifier) ;)) (if_statement "if (pbVar26 < pbVar22) goto LAB_00017de0;" if (parenthesized_expression "(pbVar26 < pbVar22)" ( (binary_expression "pbVar26 < pbVar22" identifier < identifier) )) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }" else (compound_statement "{\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }" { (labeled_statement "LAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;" statement_identifier : (if_statement "if (local_2134 <= pbVar26) goto LAB_00017c40;" if (parenthesized_expression "(local_2134 <= pbVar26)" ( (binary_expression "local_2134 <= pbVar26" identifier <= identifier) )) (goto_statement "goto LAB_00017c40;" goto statement_identifier ;))) (labeled_statement "LAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);" statement_identifier : (expression_statement "pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);" (assignment_expression "pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1)" identifier = (cast_expression "(byte *)((uint)((int)pbVar26 * 3) >> 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)((int)pbVar26 * 3) >> 1)" ( (binary_expression "(uint)((int)pbVar26 * 3) >> 1" (call_expression "(uint)((int)pbVar26 * 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)pbVar26 * 3)" ( (binary_expression "(int)pbVar26 * 3" (cast_expression "(int)pbVar26" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))) >> number_literal) )))) ;)) (if_statement "if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }" if (parenthesized_expression "(pbVar26 <= local_2134)" ( (binary_expression "pbVar26 <= local_2134" identifier <= identifier) )) (compound_statement "{\n                pbVar26 = local_2134;\n              }" { (expression_statement "pbVar26 = local_2134;" (assignment_expression "pbVar26 = local_2134" identifier = identifier) ;) })) (expression_statement "(*(code *)PTR_free_0003e558)(local_214c);" (call_expression "(*(code *)PTR_free_0003e558)(local_214c)" (parenthesized_expression "(*(code *)PTR_free_0003e558)" ( (pointer_expression "*(code *)PTR_free_0003e558" * (cast_expression "(code *)PTR_free_0003e558" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_214c)" ( identifier ))) ;) (expression_statement "pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);" (assignment_expression "pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26)" identifier = (cast_expression "(byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_malloc_0003e4a4)(pbVar26)" (parenthesized_expression "(*(code *)PTR_malloc_0003e4a4)" ( (pointer_expression "*(code *)PTR_malloc_0003e4a4" * (cast_expression "(code *)PTR_malloc_0003e4a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar26)" ( identifier ))))) ;) (expression_statement "local_214c = pbVar29;" (assignment_expression "local_214c = pbVar29" identifier = identifier) ;) (if_statement "if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }" if (parenthesized_expression "(pbVar29 == (byte *)0x0)" ( (binary_expression "pbVar29 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }" { (expression_statement "pbVar26 = (byte *)0xfa0;" (assignment_expression "pbVar26 = (byte *)0xfa0" identifier = (cast_expression "(byte *)0xfa0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar29 = local_20ec;" (assignment_expression "pbVar29 = local_20ec" identifier = identifier) ;) (goto_statement "goto LAB_00017c40;" goto statement_identifier ;) })) (if_statement "if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;" if (parenthesized_expression "(pbVar31 != (byte *)0x0)" ( (binary_expression "pbVar31 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00017d8c;" goto statement_identifier ;)) (labeled_statement "LAB_00017c48:\n              pbVar18 = (byte *)0x0;" statement_identifier : (expression_statement "pbVar18 = (byte *)0x0;" (assignment_expression "pbVar18 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }" if (parenthesized_expression "(local_2150 != (byte *)0x0)" ( (binary_expression "local_2150 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }" { (expression_statement "pbVar28 = (byte *)0x0;" (assignment_expression "pbVar28 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar32 = (int *)0x0;" (assignment_expression "piVar32 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00017dc0;" goto statement_identifier ;) })) (expression_statement "pbVar28 = (byte *)0x0;" (assignment_expression "pbVar28 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar24 = pbVar29;" (assignment_expression "pbVar24 = pbVar29" identifier = identifier) ;) }))) (expression_statement "pbVar22 = pbVar24 + (int)pbVar28;" (assignment_expression "pbVar22 = pbVar24 + (int)pbVar28" identifier = (binary_expression "pbVar24 + (int)pbVar28" identifier + (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }" if (parenthesized_expression "(pbVar31 == (byte *)0x0)" ( (binary_expression "pbVar31 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }" { (if_statement "if (local_2150 == (byte *)0x0) break;" if (parenthesized_expression "(local_2150 == (byte *)0x0)" ( (binary_expression "local_2150 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);" statement_identifier : (expression_statement "iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);" (assignment_expression "iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27)" identifier = (call_expression "(*(code *)PTR_strlen_0003e488)(pbVar27)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" ( (pointer_expression "*(code *)PTR_strlen_0003e488" * (cast_expression "(code *)PTR_strlen_0003e488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar27)" ( identifier )))) ;)) (expression_statement "pbVar27 = pbVar27 + iVar23 + 1;" (assignment_expression "pbVar27 = pbVar27 + iVar23 + 1" identifier = (binary_expression "pbVar27 + iVar23 + 1" (binary_expression "pbVar27 + iVar23" identifier + identifier) + number_literal)) ;) }) (else_clause "else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }" else (compound_statement "{\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }" { (expression_statement "iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);" (assignment_expression "iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c)" identifier = (call_expression "(*(code *)PTR_strlen_0003e488)(local_213c)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" ( (pointer_expression "*(code *)PTR_strlen_0003e488" * (cast_expression "(code *)PTR_strlen_0003e488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_213c)" ( identifier )))) ;) (expression_statement "local_213c = local_213c + iVar23 + 1;" (assignment_expression "local_213c = local_213c + iVar23 + 1" identifier = (binary_expression "local_213c + iVar23 + 1" (binary_expression "local_213c + iVar23" identifier + identifier) + number_literal)) ;) (if_statement "if (local_2150 == (byte *)0x0) goto LAB_00017f2c;" if (parenthesized_expression "(local_2150 == (byte *)0x0)" ( (binary_expression "local_2150 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00017f2c;" goto statement_identifier ;)) (labeled_statement "LAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);" statement_identifier : (expression_statement "pbVar31 = (byte *)(uint)(local_213c < local_2120);" (assignment_expression "pbVar31 = (byte *)(uint)(local_213c < local_2120)" identifier = (cast_expression "(byte *)(uint)(local_213c < local_2120)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(local_213c < local_2120)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_213c < local_2120)" ( (binary_expression "local_213c < local_2120" identifier < identifier) ))))) ;)) (expression_statement "iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);" (assignment_expression "iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27)" identifier = (call_expression "(*(code *)PTR_strlen_0003e488)(pbVar27)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" ( (pointer_expression "*(code *)PTR_strlen_0003e488" * (cast_expression "(code *)PTR_strlen_0003e488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar27)" ( identifier )))) ;) (expression_statement "pbVar27 = pbVar27 + iVar23 + 1;" (assignment_expression "pbVar27 = pbVar27 + iVar23 + 1" identifier = (binary_expression "pbVar27 + iVar23 + 1" (binary_expression "pbVar27 + iVar23" identifier + identifier) + number_literal)) ;) (if_statement "if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }" if (parenthesized_expression "(pbVar31 != (byte *)0x0)" ( (binary_expression "pbVar31 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }" { (expression_statement "local_2150 = (byte *)(uint)(pbVar27 < local_211c);" (assignment_expression "local_2150 = (byte *)(uint)(pbVar27 < local_211c)" identifier = (cast_expression "(byte *)(uint)(pbVar27 < local_211c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar27 < local_211c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar27 < local_211c)" ( (binary_expression "pbVar27 < local_211c" identifier < identifier) ))))) ;) (expression_statement "pbVar29 = pbVar24;" (assignment_expression "pbVar29 = pbVar24" identifier = identifier) ;) (goto_statement "goto LAB_00017cc8;" goto statement_identifier ;) })) }))) (expression_statement "local_2150 = (byte *)(uint)(pbVar27 < local_211c);" (assignment_expression "local_2150 = (byte *)(uint)(pbVar27 < local_211c)" identifier = (cast_expression "(byte *)(uint)(pbVar27 < local_211c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar27 < local_211c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar27 < local_211c)" ( (binary_expression "pbVar27 < local_211c" identifier < identifier) ))))) ;) (expression_statement "pbVar29 = pbVar24;" (assignment_expression "pbVar29 = pbVar24" identifier = identifier) ;) (if_statement "if (local_211c <= pbVar27) break;" if (parenthesized_expression "(local_211c <= pbVar27)" ( (binary_expression "local_211c <= pbVar27" identifier <= identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) }))) })) (expression_statement "local_213c = pbVar22;" (assignment_expression "local_213c = pbVar22" identifier = identifier) ;) (expression_statement "local_2150 = pbVar18;" (assignment_expression "local_2150 = pbVar18" identifier = identifier) ;) (expression_statement "local_211c = local_20fc;" (assignment_expression "local_211c = local_20fc" identifier = identifier) ;) (expression_statement "local_2120 = local_2100;" (assignment_expression "local_2120 = local_2100" identifier = identifier) ;) (expression_statement "md5_process_bytes(pbVar24,pbVar28,local_2130);" (call_expression "md5_process_bytes(pbVar24,pbVar28,local_2130)" identifier (argument_list "(pbVar24,pbVar28,local_2130)" ( identifier , identifier , identifier ))) ;) (expression_statement "pbVar26 = abStack_20cc;" (assignment_expression "pbVar26 = abStack_20cc" identifier = identifier) ;) (expression_statement "md5_finish_ctx(local_2130,pbVar26);" (call_expression "md5_finish_ctx(local_2130,pbVar26)" identifier (argument_list "(local_2130,pbVar26)" ( identifier , identifier ))) ;) (expression_statement "md5_process_bytes(local_213c,local_2150,local_2138);" (call_expression "md5_process_bytes(local_213c,local_2150,local_2138)" identifier (argument_list "(local_213c,local_2150,local_2138)" ( identifier , identifier , identifier ))) ;) (expression_statement "md5_finish_ctx(local_2138,abStack_20bc);" (call_expression "md5_finish_ctx(local_2138,abStack_20bc)" identifier (argument_list "(local_2138,abStack_20bc)" ( identifier , identifier ))) ;) (expression_statement "uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);" (assignment_expression "uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10)" identifier = (call_expression "(*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" ( (pointer_expression "*(code *)PTR_memcmp_0003e52c" * (cast_expression "(code *)PTR_memcmp_0003e52c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar26,abStack_20bc,0x10)" ( identifier , identifier , number_literal )))) ;) (expression_statement "pbVar20 = local_20fc;" (assignment_expression "pbVar20 = local_20fc" identifier = identifier) ;) (expression_statement "pbVar21 = local_2100;" (assignment_expression "pbVar21 = local_2100" identifier = identifier) ;) (expression_statement "pbVar18 = local_2108;" (assignment_expression "pbVar18 = local_2108" identifier = identifier) ;) (expression_statement "pbVar22 = pbVar28;" (assignment_expression "pbVar22 = pbVar28" identifier = identifier) ;) (expression_statement "pbVar29 = pbVar24;" (assignment_expression "pbVar29 = pbVar24" identifier = identifier) ;) (expression_statement "pbVar30 = local_2104;" (assignment_expression "pbVar30 = local_2104" identifier = identifier) ;) (expression_statement "pbVar31 = local_2110;" (assignment_expression "pbVar31 = local_2110" identifier = identifier) ;) (expression_statement "pbVar27 = local_210c;" (assignment_expression "pbVar27 = local_210c" identifier = identifier) ;) (expression_statement "piVar32 = local_2114;" (assignment_expression "piVar32 = local_2114" identifier = identifier) ;) (expression_statement "local_2134 = abStack_20bc;" (assignment_expression "local_2134 = abStack_20bc" identifier = identifier) ;) (if_statement "if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }" if (parenthesized_expression "((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0))" ( (binary_expression "(uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)" (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar9 = local_2158, local_2158 == 0)" ( (comma_expression "uVar9 = local_2158, local_2158 == 0" (assignment_expression "uVar9 = local_2158" identifier = identifier) , (binary_expression "local_2158 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }" { (labeled_statement "LAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);" statement_identifier : (expression_statement "pbVar26 = (byte *)(uint)(local_2150 < pbVar28);" (assignment_expression "pbVar26 = (byte *)(uint)(local_2150 < pbVar28)" identifier = (cast_expression "(byte *)(uint)(local_2150 < pbVar28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(local_2150 < pbVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_2150 < pbVar28)" ( (binary_expression "local_2150 < pbVar28" identifier < identifier) ))))) ;)) (expression_statement "pbVar22 = local_2150;" (assignment_expression "pbVar22 = local_2150" identifier = identifier) ;) (if_statement "if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }" if (parenthesized_expression "(pbVar26 == (byte *)0x0)" ( (binary_expression "pbVar26 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pbVar22 = pbVar28;\n        }" { (expression_statement "pbVar22 = pbVar28;" (assignment_expression "pbVar22 = pbVar28" identifier = identifier) ;) })) (expression_statement "uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);" (assignment_expression "uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22)" identifier = (call_expression "(*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" ( (pointer_expression "*(code *)PTR_memcmp_0003e52c" * (cast_expression "(code *)PTR_memcmp_0003e52c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar24,local_213c,pbVar22)" ( identifier , identifier , identifier )))) ;) (expression_statement "pbVar22 = pbVar28;" (assignment_expression "pbVar22 = pbVar28" identifier = identifier) ;) (expression_statement "pbVar29 = pbVar24;" (assignment_expression "pbVar29 = pbVar24" identifier = identifier) ;) (expression_statement "local_2138 = pbVar21;" (assignment_expression "local_2138 = pbVar21" identifier = identifier) ;) (expression_statement "local_2134 = pbVar20;" (assignment_expression "local_2134 = pbVar20" identifier = identifier) ;) (if_statement "if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }" { (expression_statement "uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);" (assignment_expression "uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150)" identifier = (binary_expression "(int)pbVar26 - (uint)(pbVar28 < local_2150)" (cast_expression "(int)pbVar26" ( (type_descriptor "int" primitive_type) ) identifier) - (call_expression "(uint)(pbVar28 < local_2150)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar28 < local_2150)" ( (binary_expression "pbVar28 < local_2150" identifier < identifier) ))))) ;) })) })) (labeled_statement "LAB_00018040:\n      local_2158 = uVar9;" statement_identifier : (expression_statement "local_2158 = uVar9;" (assignment_expression "local_2158 = uVar9" identifier = identifier) ;)) (expression_statement "pbVar24 = pbVar31;" (assignment_expression "pbVar24 = pbVar31" identifier = identifier) ;) (expression_statement "(*(code *)PTR_free_0003e558)(local_214c);" (call_expression "(*(code *)PTR_free_0003e558)(local_214c)" (parenthesized_expression "(*(code *)PTR_free_0003e558)" ( (pointer_expression "*(code *)PTR_free_0003e558" * (cast_expression "(code *)PTR_free_0003e558" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_214c)" ( identifier ))) ;) (expression_statement "pbVar28 = pbVar22;" (assignment_expression "pbVar28 = pbVar22" identifier = identifier) ;) (expression_statement "local_2150 = pbVar21;" (assignment_expression "local_2150 = pbVar21" identifier = identifier) ;) (expression_statement "local_213c = pbVar20;" (assignment_expression "local_213c = pbVar20" identifier = identifier) ;) (labeled_statement "LAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;" statement_identifier : (if_statement "if (pbVar20 == (byte *)0x0) goto LAB_00017808;" if (parenthesized_expression "(pbVar20 == (byte *)0x0)" ( (binary_expression "pbVar20 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00017808;" goto statement_identifier ;))) (labeled_statement "LAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);" statement_identifier : (expression_statement "(*(code *)PTR_free_0003e558)(local_2154);" (call_expression "(*(code *)PTR_free_0003e558)(local_2154)" (parenthesized_expression "(*(code *)PTR_free_0003e558)" ( (pointer_expression "*(code *)PTR_free_0003e558" * (cast_expression "(code *)PTR_free_0003e558" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_2154)" ( identifier ))) ;)) (expression_statement "pbVar27 = pbVar18;" (assignment_expression "pbVar27 = pbVar18" identifier = identifier) ;) (expression_statement "pbVar31 = pbVar30;" (assignment_expression "pbVar31 = pbVar30" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "pbVar31 = pbVar28;" (assignment_expression "pbVar31 = pbVar28" identifier = identifier) ;) (if_statement "if (pbVar20 == (byte *)0x0) {\n    pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);\n    if (pbVar18 == (byte *)0x0) {\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }\n    if (pbVar28 != (byte *)0x0) {\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }" if (parenthesized_expression "(pbVar20 == (byte *)0x0)" ( (binary_expression "pbVar20 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);\n    if (pbVar18 == (byte *)0x0) {\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }\n    if (pbVar28 != (byte *)0x0) {\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }" { (expression_statement "pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);" (assignment_expression "pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0)" identifier = (cast_expression "(byte *)(uint)(pbVar28 != (byte *)0x0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar28 != (byte *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar28 != (byte *)0x0)" ( (binary_expression "pbVar28 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (if_statement "if (pbVar18 == (byte *)0x0) {\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }" if (parenthesized_expression "(pbVar18 == (byte *)0x0)" ( (binary_expression "pbVar18 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }" { (expression_statement "local_2158 = -(int)pbVar27;" (assignment_expression "local_2158 = -(int)pbVar27" identifier = (unary_expression "-(int)pbVar27" - (cast_expression "(int)pbVar27" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto joined_r0x0001782c;" goto statement_identifier ;) })) (if_statement "if (pbVar28 != (byte *)0x0) {\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }" if (parenthesized_expression "(pbVar28 != (byte *)0x0)" ( (binary_expression "pbVar28 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }" { (if_statement "if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }" if (parenthesized_expression "(pbVar21 == (byte *)0x0)" ( (binary_expression "pbVar21 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }" { (expression_statement "pbVar24 = pbVar28;" (assignment_expression "pbVar24 = pbVar28" identifier = identifier) ;) (if_statement "if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }" if (parenthesized_expression "(pbVar18 <= pbVar28)" ( (binary_expression "pbVar18 <= pbVar28" identifier <= identifier) )) (compound_statement "{\n          pbVar24 = pbVar18;\n        }" { (expression_statement "pbVar24 = pbVar18;" (assignment_expression "pbVar24 = pbVar18" identifier = identifier) ;) })) (expression_statement "local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);" (assignment_expression "local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24)" identifier = (call_expression "(*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" ( (pointer_expression "*(code *)PTR_memcmp_0003e52c" * (cast_expression "(code *)PTR_memcmp_0003e52c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pbVar29,pbVar26,pbVar24)" ( identifier , identifier , identifier )))) ;) (expression_statement "local_2150 = pbVar18;" (assignment_expression "local_2150 = pbVar18" identifier = identifier) ;) (if_statement "if (local_2158 != 0) goto LAB_00017838;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017838;" goto statement_identifier ;)) }) (else_clause "else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }" else (if_statement "if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }" if (parenthesized_expression "((pbVar29 < pbVar22) && (pbVar26 < pbVar24))" ( (binary_expression "(pbVar29 < pbVar22) && (pbVar26 < pbVar24)" (parenthesized_expression "(pbVar29 < pbVar22)" ( (binary_expression "pbVar29 < pbVar22" identifier < identifier) )) && (parenthesized_expression "(pbVar26 < pbVar24)" ( (binary_expression "pbVar26 < pbVar24" identifier < identifier) ))) )) (compound_statement "{\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }" { (expression_statement "pbVar27 = (byte *)(uint)pbVar21[*pbVar29];" (assignment_expression "pbVar27 = (byte *)(uint)pbVar21[*pbVar29]" identifier = (cast_expression "(byte *)(uint)pbVar21[*pbVar29]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)pbVar21[*pbVar29]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar21[*pbVar29]" identifier [ (pointer_expression "*pbVar29" * identifier) ])))) ;) (expression_statement "local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];" (assignment_expression "local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26]" identifier = (binary_expression "(int)pbVar27 - (uint)pbVar21[*pbVar26]" (cast_expression "(int)pbVar27" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(uint)pbVar21[*pbVar26]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar21[*pbVar26]" identifier [ (pointer_expression "*pbVar26" * identifier) ])))) ;) (if_statement "if (local_2158 != 0) goto LAB_00017838;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017838;" goto statement_identifier ;)) (expression_statement "pbVar20 = pbVar29 + (int)pbVar28;" (assignment_expression "pbVar20 = pbVar29 + (int)pbVar28" identifier = (binary_expression "pbVar29 + (int)pbVar28" identifier + (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar24 = pbVar26;" (assignment_expression "pbVar24 = pbVar26" identifier = identifier) ;) (expression_statement "pbVar22 = pbVar29;" (assignment_expression "pbVar22 = pbVar29" identifier = identifier) ;) (while_statement "while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }" { (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) (expression_statement "pbVar29 = pbVar20;" (assignment_expression "pbVar29 = pbVar20" identifier = identifier) ;) (if_statement "if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;" if (parenthesized_expression "((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20))" ( (binary_expression "(pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)" (parenthesized_expression "(pbVar24 == pbVar26 + (int)pbVar18)" ( (binary_expression "pbVar24 == pbVar26 + (int)pbVar18" identifier == (binary_expression "pbVar26 + (int)pbVar18" identifier + (cast_expression "(int)pbVar18" ( (type_descriptor "int" primitive_type) ) identifier))) )) || (parenthesized_expression "(pbVar22 == pbVar20)" ( (binary_expression "pbVar22 == pbVar20" identifier == identifier) ))) )) (break_statement "break;" break ;)) (expression_statement "local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];" (assignment_expression "local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24]" identifier = (binary_expression "(uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24]" (cast_expression "(uint)pbVar21[*pbVar22]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar21[*pbVar22]" identifier [ (pointer_expression "*pbVar22" * identifier) ])) - (cast_expression "(uint)pbVar21[*pbVar24]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar21[*pbVar24]" identifier [ (pointer_expression "*pbVar24" * identifier) ])))) ;) (if_statement "if (local_2158 != 0) goto LAB_00017838;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017838;" goto statement_identifier ;)) })) })))) (if_statement "if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }" if (parenthesized_expression "(pbVar18 < pbVar28)" ( (binary_expression "pbVar18 < pbVar28" identifier < identifier) )) (compound_statement "{\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }" { (expression_statement "local_2158 = 0xffffffff;" (assignment_expression "local_2158 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_00017838;" goto statement_identifier ;) })) (expression_statement "local_2158 = (uint)(pbVar18 != pbVar28);" (assignment_expression "local_2158 = (uint)(pbVar18 != pbVar28)" identifier = (call_expression "(uint)(pbVar18 != pbVar28)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 != pbVar28)" ( (binary_expression "pbVar18 != pbVar28" identifier != identifier) )))) ;) (goto_statement "goto joined_r0x0001782c;" goto statement_identifier ;) })) (expression_statement "local_2158 = 1;" (assignment_expression "local_2158 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00017838;" goto statement_identifier ;) })) (expression_statement "pbVar18 = pbVar29;" (assignment_expression "pbVar18 = pbVar29" identifier = identifier) ;) (if_statement "if (pbVar21 != (byte *)0x0) goto LAB_000174c0;" if (parenthesized_expression "(pbVar21 != (byte *)0x0)" ( (binary_expression "pbVar21 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000174c0;" goto statement_identifier ;)) (labeled_statement "LAB_000181d0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" statement_identifier : (if_statement "if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" if (parenthesized_expression "((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0))" ( (binary_expression "(pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)" (parenthesized_expression "(pbVar22 <= pbVar18)" ( (binary_expression "pbVar22 <= pbVar18" identifier <= identifier) )) || (parenthesized_expression "(pbVar20[*pbVar18] == 0)" ( (binary_expression "pbVar20[*pbVar18] == 0" (subscript_expression "pbVar20[*pbVar18]" identifier [ (pointer_expression "*pbVar18" * identifier) ]) == number_literal) ))) )) (compound_statement "{\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" { (expression_statement "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);" (assignment_expression "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22)" identifier = (cast_expression "(byte *)(uint)(pbVar18 < pbVar22)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar18 < pbVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 < pbVar22)" ( (binary_expression "pbVar18 < pbVar22" identifier < identifier) ))))) ;) (expression_statement "pbVar30 = pbVar26;" (assignment_expression "pbVar30 = pbVar26" identifier = identifier) ;) (if_statement "if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }" if (parenthesized_expression "(pbVar24 <= pbVar26)" ( (binary_expression "pbVar24 <= pbVar26" identifier <= identifier) )) (compound_statement "{\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }" { (expression_statement "local_2158 = (uint)(pbVar26 < pbVar24);" (assignment_expression "local_2158 = (uint)(pbVar26 < pbVar24)" identifier = (call_expression "(uint)(pbVar26 < pbVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar26 < pbVar24)" ( (binary_expression "pbVar26 < pbVar24" identifier < identifier) )))) ;) (goto_statement "goto LAB_00018290;" goto statement_identifier ;) })) (while_statement "while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }" while (parenthesized_expression "(pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0)" ( (comma_expression "pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0" (assignment_expression "pbVar26 = pbVar30 + 1" identifier = (binary_expression "pbVar30 + 1" identifier + number_literal)) , (binary_expression "pbVar20[*pbVar30] != 0" (subscript_expression "pbVar20[*pbVar30]" identifier [ (pointer_expression "*pbVar30" * identifier) ]) != number_literal)) )) (compound_statement "{\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }" { (expression_statement "pbVar30 = pbVar26;" (assignment_expression "pbVar30 = pbVar26" identifier = identifier) ;) (if_statement "if (pbVar24 == pbVar26) goto LAB_00018284;" if (parenthesized_expression "(pbVar24 == pbVar26)" ( (binary_expression "pbVar24 == pbVar26" identifier == identifier) )) (goto_statement "goto LAB_00018284;" goto statement_identifier ;)) })) (expression_statement "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);" (assignment_expression "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22)" identifier = (cast_expression "(byte *)(uint)(pbVar18 < pbVar22)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar18 < pbVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 < pbVar22)" ( (binary_expression "pbVar18 < pbVar22" identifier < identifier) ))))) ;) (if_statement "if (pbVar27 == (byte *)0x0) goto LAB_0001828c;" if (parenthesized_expression "(pbVar27 == (byte *)0x0)" ( (binary_expression "pbVar27 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001828c;" goto statement_identifier ;)) (expression_statement "local_2158 = (uint)*pbVar18 - (uint)*pbVar30;" (assignment_expression "local_2158 = (uint)*pbVar18 - (uint)*pbVar30" identifier = (binary_expression "(uint)*pbVar18 - (uint)*pbVar30" (binary_expression "(uint)*pbVar18" (parenthesized_expression "(uint)" ( identifier )) * identifier) - (binary_expression "(uint)*pbVar30" (parenthesized_expression "(uint)" ( identifier )) * identifier))) ;) (if_statement "if (local_2158 != 0) goto LAB_00017838;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017838;" goto statement_identifier ;)) }))) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_000181d0;" goto statement_identifier ;) (labeled_statement "LAB_000174c0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];\n    pbVar26 = pbVar26 + 1;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" statement_identifier : (if_statement "if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];\n    pbVar26 = pbVar26 + 1;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" if (parenthesized_expression "((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0))" ( (binary_expression "(pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)" (parenthesized_expression "(pbVar22 <= pbVar18)" ( (binary_expression "pbVar22 <= pbVar18" identifier <= identifier) )) || (parenthesized_expression "(pbVar20[*pbVar18] == 0)" ( (binary_expression "pbVar20[*pbVar18] == 0" (subscript_expression "pbVar20[*pbVar18]" identifier [ (pointer_expression "*pbVar18" * identifier) ]) == number_literal) ))) )) (compound_statement "{\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];\n    pbVar26 = pbVar26 + 1;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" { (expression_statement "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);" (assignment_expression "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22)" identifier = (cast_expression "(byte *)(uint)(pbVar18 < pbVar22)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar18 < pbVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 < pbVar22)" ( (binary_expression "pbVar18 < pbVar22" identifier < identifier) ))))) ;) (if_statement "if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }" if (parenthesized_expression "(pbVar24 <= pbVar26)" ( (binary_expression "pbVar24 <= pbVar26" identifier <= identifier) )) (compound_statement "{\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }" { (expression_statement "local_2158 = (uint)(pbVar26 < pbVar24);" (assignment_expression "local_2158 = (uint)(pbVar26 < pbVar24)" identifier = (call_expression "(uint)(pbVar26 < pbVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar26 < pbVar24)" ( (binary_expression "pbVar26 < pbVar24" identifier < identifier) )))) ;) (goto_statement "goto LAB_00018290;" goto statement_identifier ;) })) (while_statement "while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }" while (parenthesized_expression "(pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0)" ( (comma_expression "pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0" (assignment_expression "pbVar27 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) , (binary_expression "pbVar20[*pbVar26] != 0" (subscript_expression "pbVar20[*pbVar26]" identifier [ (pointer_expression "*pbVar26" * identifier) ]) != number_literal)) )) (compound_statement "{\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }" { (expression_statement "pbVar26 = pbVar27;" (assignment_expression "pbVar26 = pbVar27" identifier = identifier) ;) (if_statement "if (pbVar24 == pbVar27) goto LAB_00018284;" if (parenthesized_expression "(pbVar24 == pbVar27)" ( (binary_expression "pbVar24 == pbVar27" identifier == identifier) )) (goto_statement "goto LAB_00018284;" goto statement_identifier ;)) })) (expression_statement "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);" (assignment_expression "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22)" identifier = (cast_expression "(byte *)(uint)(pbVar18 < pbVar22)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar18 < pbVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 < pbVar22)" ( (binary_expression "pbVar18 < pbVar22" identifier < identifier) ))))) ;) (expression_statement "pbVar30 = pbVar26;" (assignment_expression "pbVar30 = pbVar26" identifier = identifier) ;) (if_statement "if (pbVar27 == (byte *)0x0) goto LAB_0001828c;" if (parenthesized_expression "(pbVar27 == (byte *)0x0)" ( (binary_expression "pbVar27 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001828c;" goto statement_identifier ;)) (expression_statement "local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];" (assignment_expression "local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26]" identifier = (binary_expression "(uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26]" (cast_expression "(uint)pbVar21[*pbVar18]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar21[*pbVar18]" identifier [ (pointer_expression "*pbVar18" * identifier) ])) - (cast_expression "(uint)pbVar21[*pbVar26]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar21[*pbVar26]" identifier [ (pointer_expression "*pbVar26" * identifier) ])))) ;) (expression_statement "pbVar26 = pbVar26 + 1;" (assignment_expression "pbVar26 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (if_statement "if (local_2158 != 0) goto LAB_00017838;" if (parenthesized_expression "(local_2158 != 0)" ( (binary_expression "local_2158 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00017838;" goto statement_identifier ;)) }))) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_000174c0;" goto statement_identifier ;) (labeled_statement "LAB_00018284:\n  pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);" statement_identifier : (expression_statement "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);" (assignment_expression "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22)" identifier = (cast_expression "(byte *)(uint)(pbVar18 < pbVar22)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(pbVar18 < pbVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar18 < pbVar22)" ( (binary_expression "pbVar18 < pbVar22" identifier < identifier) ))))) ;)) (expression_statement "pbVar30 = pbVar24;" (assignment_expression "pbVar30 = pbVar24" identifier = identifier) ;) (labeled_statement "LAB_0001828c:\n  local_2158 = (uint)(pbVar30 < pbVar24);" statement_identifier : (expression_statement "local_2158 = (uint)(pbVar30 < pbVar24);" (assignment_expression "local_2158 = (uint)(pbVar30 < pbVar24)" identifier = (call_expression "(uint)(pbVar30 < pbVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar30 < pbVar24)" ( (binary_expression "pbVar30 < pbVar24" identifier < identifier) )))) ;)) (expression_statement "pbVar26 = pbVar30;" (assignment_expression "pbVar26 = pbVar30" identifier = identifier) ;) (labeled_statement "LAB_00018290:\n  local_2158 = (int)pbVar27 - local_2158;" statement_identifier : (expression_statement "local_2158 = (int)pbVar27 - local_2158;" (assignment_expression "local_2158 = (int)pbVar27 - local_2158" identifier = (binary_expression "(int)pbVar27 - local_2158" (cast_expression "(int)pbVar27" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;)) (goto_statement "goto joined_r0x0001782c;" goto statement_identifier ;) (while_statement "while (pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20) {\nLAB_000178dc:\n    pbVar20 = pbVar18 + 1;\n    pbVar29 = pbVar18;\n    if (puVar5[*pbVar18 - 0x15f0] == '\0') break;\n  }" while (parenthesized_expression "(pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20)" ( (comma_expression "pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20" (assignment_expression "pbVar29 = pbVar22" identifier = identifier) , (comma_expression "pbVar18 = pbVar20, pbVar22 != pbVar20" (assignment_expression "pbVar18 = pbVar20" identifier = identifier) , (binary_expression "pbVar22 != pbVar20" identifier != identifier))) )) (compound_statement "{\nLAB_000178dc:\n    pbVar20 = pbVar18 + 1;\n    pbVar29 = pbVar18;\n    if (puVar5[*pbVar18 - 0x15f0] == '\0') break;\n  }" { (labeled_statement "LAB_000178dc:\n    pbVar20 = pbVar18 + 1;" statement_identifier : (expression_statement "pbVar20 = pbVar18 + 1;" (assignment_expression "pbVar20 = pbVar18 + 1" identifier = (binary_expression "pbVar18 + 1" identifier + number_literal)) ;)) (expression_statement "pbVar29 = pbVar18;" (assignment_expression "pbVar29 = pbVar18" identifier = identifier) ;) (if_statement "if (puVar5[*pbVar18 - 0x15f0] == '\0') break;" if (parenthesized_expression "(puVar5[*pbVar18 - 0x15f0] == '\0')" ( (binary_expression "puVar5[*pbVar18 - 0x15f0] == '\0'" (subscript_expression "puVar5[*pbVar18 - 0x15f0]" identifier [ (binary_expression "*pbVar18 - 0x15f0" (pointer_expression "*pbVar18" * identifier) - number_literal) ]) == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) })) (labeled_statement "LAB_000178f8:\n  bVar4 = pbVar29 < pbVar22;" statement_identifier : (expression_statement "bVar4 = pbVar29 < pbVar22;" (assignment_expression "bVar4 = pbVar29 < pbVar22" identifier = (binary_expression "pbVar29 < pbVar22" identifier < identifier)) ;)) (if_statement "if (pbVar28 < pbVar24) {\n    do {\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    } while (pbVar24 != pbVar28);\n  }" if (parenthesized_expression "(pbVar28 < pbVar24)" ( (binary_expression "pbVar28 < pbVar24" identifier < identifier) )) (compound_statement "{\n    do {\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    } while (pbVar24 != pbVar28);\n  }" { (do_statement "do {\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    } while (pbVar24 != pbVar28);" do (compound_statement "{\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    }" { (expression_statement "bVar4 = pbVar29 < pbVar22;" (assignment_expression "bVar4 = pbVar29 < pbVar22" identifier = (binary_expression "pbVar29 < pbVar22" identifier < identifier)) ;) (expression_statement "pbVar26 = pbVar28;" (assignment_expression "pbVar26 = pbVar28" identifier = identifier) ;) (if_statement "if (puVar5[*pbVar28 - 0x15f0] == '\0') break;" if (parenthesized_expression "(puVar5[*pbVar28 - 0x15f0] == '\0')" ( (binary_expression "puVar5[*pbVar28 - 0x15f0] == '\0'" (subscript_expression "puVar5[*pbVar28 - 0x15f0]" identifier [ (binary_expression "*pbVar28 - 0x15f0" (pointer_expression "*pbVar28" * identifier) - number_literal) ]) == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "pbVar28 = pbVar28 + 1;" (assignment_expression "pbVar28 = pbVar28 + 1" identifier = (binary_expression "pbVar28 + 1" identifier + number_literal)) ;) (expression_statement "pbVar26 = pbVar24;" (assignment_expression "pbVar26 = pbVar24" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar24 != pbVar28)" ( (binary_expression "pbVar24 != pbVar28" identifier != identifier) )) ;) })) (goto_statement "goto LAB_00017440;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE 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 *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 *)) ) (parenthesized_expression ( (binary_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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (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 (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + LIT) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_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 = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ 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 IDENT != IDENT) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_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 = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ 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 IDENT != IDENT) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != (subscript_expression IDENT [ LIT ])) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = 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) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_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) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_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 (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) * LIT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (pointer_expression * IDENT) - LIT) ])) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (pointer_expression * IDENT) - LIT) ])) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (pointer_expression * IDENT) - LIT) ])) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (pointer_expression * IDENT) - LIT) ])) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = 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 IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (pointer_expression * IDENT) - LIT) ])) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (pointer_expression * IDENT) - LIT) ])) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (pointer_expression * IDENT) - LIT) ])) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (pointer_expression * IDENT) - LIT) ])) ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))) >> LIT) )))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (goto_statement goto statement_identifier ;) })) (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 < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))) >> LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;)) }))) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = 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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (pointer_expression * IDENT) ])))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (pointer_expression * IDENT) ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (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) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) || (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (pointer_expression * IDENT) ])) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (pointer_expression * IDENT) ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) })) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (pointer_expression * IDENT) ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (subscript_expression IDENT [ (pointer_expression * IDENT) ]) != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) - (binary_expression (parenthesized_expression ( IDENT )) * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (pointer_expression * IDENT) ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (subscript_expression IDENT [ (pointer_expression * IDENT) ]) != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (pointer_expression * IDENT) ])) - (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (pointer_expression * IDENT) ])))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT)) ;)) (goto_statement goto statement_identifier ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (pointer_expression * IDENT) - LIT) ]) == (char_literal ' escape_sequence ')) )) (break_statement break ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (pointer_expression * IDENT) - LIT) ]) == (char_literal ' escape_sequence ')) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (goto_statement goto statement_identifier ;) })))
(function_definition "uint FUN_00017390(undefined4 *param_1,undefined4 *param_2)\n\n{\n  byte bVar1;\n  byte bVar2;\n  char cVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  byte bVar10;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  uint uVar9;\n  code *pcVar11;\n  code *pcVar12;\n  int iVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  byte *pbVar16;\n  undefined4 uVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  int iVar23;\n  byte *pbVar24;\n  int iVar25;\n  byte *pbVar26;\n  byte *pbVar27;\n  byte *pbVar28;\n  byte *pbVar29;\n  byte *pbVar30;\n  byte *pbVar31;\n  int *piVar32;\n  code *pcVar33;\n  double dVar34;\n  double dVar35;\n  uint local_2158;\n  byte *local_2154;\n  byte *local_2150;\n  byte *local_214c;\n  byte *local_213c;\n  byte *local_2138;\n  byte *local_2134;\n  undefined4 *local_2130;\n  byte *local_2120;\n  byte *local_211c;\n  byte *local_2118;\n  int *local_2114;\n  byte *local_2110;\n  byte *local_210c;\n  byte *local_2108;\n  byte *local_2104;\n  byte *local_2100;\n  byte *local_20fc;\n  byte *local_20ec;\n  byte *local_20e8;\n  byte *local_20e4 [6];\n  byte abStack_20cc [16];\n  byte abStack_20bc [16];\n  undefined4 local_20ac [39];\n  byte local_2010 [4];\n  undefined4 local_200c [35];\n  byte abStack_1f80 [12];\n  byte local_1f74 [4000];\n  byte abStack_fd4 [4000];\n  int local_34;\n  \n  puVar6 = PTR___stack_chk_guard_0003e550;\n  puVar5 = PTR_DAT_0003e1a8;\n  pbVar22 = (byte *)param_1[3];\n  pcVar11 = (code *)(PTR_0003e1b4 + 0x6938);\n  pbVar24 = (byte *)param_2[3];\n  piVar32 = *(int **)(PTR_DAT_0003e1a8 + -0x1908);\n  local_34 = *(int *)PTR___stack_chk_guard_0003e550;\n  pbVar29 = (byte *)param_1[2];\n  pcVar12 = (code *)(PTR_0003e1b4 + 0x613c);\n  pbVar26 = (byte *)param_2[2];\n  bVar1 = 0;\n  bVar2 = 0;\nLAB_0001743c:\n  bVar4 = pbVar29 < pbVar22;\nLAB_00017440:\n  if (!bVar4) {\n    pbVar22 = pbVar29;\n  }\n  if (pbVar24 <= pbVar26) {\n    pbVar24 = pbVar26;\n  }\n  pbVar18 = pbVar22 + -(int)pbVar29;\n  pbVar21 = (byte *)piVar32[5];\n  pbVar28 = pbVar24 + -(int)pbVar26;\n  pbVar20 = (byte *)piVar32[4];\n  if (((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||\n     (*(char *)(piVar32 + 8) != '\0')) {\n    pbVar30 = pbVar28;\n    if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }\n    else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }\n    pbVar22 = pbVar24;\n    pbVar31 = pbVar27;\n    if (cVar3 == '\0') {\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }\n    pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);\n    local_2150 = pbVar21;\n    local_214c = pbVar20;\n    if (pbVar20 != (byte *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;\n    pbVar24[(int)pbVar18] = bVar1;\n    pbVar27[(int)pbVar30] = bVar2;\n    pbVar27 = pbVar18;\n    pbVar31 = pbVar30;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );\n  }\n  pbVar31 = pbVar28;\n  if (pbVar20 == (byte *)0x0) {\n    pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);\n    if (pbVar18 == (byte *)0x0) {\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }\n    if (pbVar28 != (byte *)0x0) {\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }\n  pbVar18 = pbVar29;\n  if (pbVar21 != (byte *)0x0) goto LAB_000174c0;\nLAB_000181d0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pbVar18 = pbVar18 + 1;\n  goto LAB_000181d0;\nLAB_000174c0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];\n    pbVar26 = pbVar26 + 1;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pbVar18 = pbVar18 + 1;\n  goto LAB_000174c0;\nLAB_00018284:\n  pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n  pbVar30 = pbVar24;\nLAB_0001828c:\n  local_2158 = (uint)(pbVar30 < pbVar24);\n  pbVar26 = pbVar30;\nLAB_00018290:\n  local_2158 = (int)pbVar27 - local_2158;\n  goto joined_r0x0001782c;\n  while (pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20) {\nLAB_000178dc:\n    pbVar20 = pbVar18 + 1;\n    pbVar29 = pbVar18;\n    if (puVar5[*pbVar18 - 0x15f0] == '\0') break;\n  }\nLAB_000178f8:\n  bVar4 = pbVar29 < pbVar22;\n  if (pbVar28 < pbVar24) {\n    do {\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    } while (pbVar24 != pbVar28);\n  }\n  goto LAB_00017440;\n}" (type_identifier "uint") (function_declarator "FUN_00017390(undefined4 *param_1,undefined4 *param_2)" (identifier "FUN_00017390") (parameter_list "(undefined4 *param_1,undefined4 *param_2)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 *param_2" (type_identifier "undefined4") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  char cVar3;\n  bool bVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  byte bVar10;\n  undefined4 *puVar7;\n  undefined4 *puVar8;\n  uint uVar9;\n  code *pcVar11;\n  code *pcVar12;\n  int iVar13;\n  undefined4 uVar14;\n  undefined4 uVar15;\n  byte *pbVar16;\n  undefined4 uVar17;\n  byte *pbVar18;\n  byte *pbVar19;\n  byte *pbVar20;\n  byte *pbVar21;\n  byte *pbVar22;\n  int iVar23;\n  byte *pbVar24;\n  int iVar25;\n  byte *pbVar26;\n  byte *pbVar27;\n  byte *pbVar28;\n  byte *pbVar29;\n  byte *pbVar30;\n  byte *pbVar31;\n  int *piVar32;\n  code *pcVar33;\n  double dVar34;\n  double dVar35;\n  uint local_2158;\n  byte *local_2154;\n  byte *local_2150;\n  byte *local_214c;\n  byte *local_213c;\n  byte *local_2138;\n  byte *local_2134;\n  undefined4 *local_2130;\n  byte *local_2120;\n  byte *local_211c;\n  byte *local_2118;\n  int *local_2114;\n  byte *local_2110;\n  byte *local_210c;\n  byte *local_2108;\n  byte *local_2104;\n  byte *local_2100;\n  byte *local_20fc;\n  byte *local_20ec;\n  byte *local_20e8;\n  byte *local_20e4 [6];\n  byte abStack_20cc [16];\n  byte abStack_20bc [16];\n  undefined4 local_20ac [39];\n  byte local_2010 [4];\n  undefined4 local_200c [35];\n  byte abStack_1f80 [12];\n  byte local_1f74 [4000];\n  byte abStack_fd4 [4000];\n  int local_34;\n  \n  puVar6 = PTR___stack_chk_guard_0003e550;\n  puVar5 = PTR_DAT_0003e1a8;\n  pbVar22 = (byte *)param_1[3];\n  pcVar11 = (code *)(PTR_0003e1b4 + 0x6938);\n  pbVar24 = (byte *)param_2[3];\n  piVar32 = *(int **)(PTR_DAT_0003e1a8 + -0x1908);\n  local_34 = *(int *)PTR___stack_chk_guard_0003e550;\n  pbVar29 = (byte *)param_1[2];\n  pcVar12 = (code *)(PTR_0003e1b4 + 0x613c);\n  pbVar26 = (byte *)param_2[2];\n  bVar1 = 0;\n  bVar2 = 0;\nLAB_0001743c:\n  bVar4 = pbVar29 < pbVar22;\nLAB_00017440:\n  if (!bVar4) {\n    pbVar22 = pbVar29;\n  }\n  if (pbVar24 <= pbVar26) {\n    pbVar24 = pbVar26;\n  }\n  pbVar18 = pbVar22 + -(int)pbVar29;\n  pbVar21 = (byte *)piVar32[5];\n  pbVar28 = pbVar24 + -(int)pbVar26;\n  pbVar20 = (byte *)piVar32[4];\n  if (((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||\n     (*(char *)(piVar32 + 8) != '\0')) {\n    pbVar30 = pbVar28;\n    if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }\n    else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }\n    pbVar22 = pbVar24;\n    pbVar31 = pbVar27;\n    if (cVar3 == '\0') {\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }\n    pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);\n    local_2150 = pbVar21;\n    local_214c = pbVar20;\n    if (pbVar20 != (byte *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;\n    pbVar24[(int)pbVar18] = bVar1;\n    pbVar27[(int)pbVar30] = bVar2;\n    pbVar27 = pbVar18;\n    pbVar31 = pbVar30;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );\n  }\n  pbVar31 = pbVar28;\n  if (pbVar20 == (byte *)0x0) {\n    pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);\n    if (pbVar18 == (byte *)0x0) {\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }\n    if (pbVar28 != (byte *)0x0) {\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }\n  pbVar18 = pbVar29;\n  if (pbVar21 != (byte *)0x0) goto LAB_000174c0;\nLAB_000181d0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pbVar18 = pbVar18 + 1;\n  goto LAB_000181d0;\nLAB_000174c0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];\n    pbVar26 = pbVar26 + 1;\n    if (local_2158 != 0) goto LAB_00017838;\n  }\n  pbVar18 = pbVar18 + 1;\n  goto LAB_000174c0;\nLAB_00018284:\n  pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n  pbVar30 = pbVar24;\nLAB_0001828c:\n  local_2158 = (uint)(pbVar30 < pbVar24);\n  pbVar26 = pbVar30;\nLAB_00018290:\n  local_2158 = (int)pbVar27 - local_2158;\n  goto joined_r0x0001782c;\n  while (pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20) {\nLAB_000178dc:\n    pbVar20 = pbVar18 + 1;\n    pbVar29 = pbVar18;\n    if (puVar5[*pbVar18 - 0x15f0] == '\0') break;\n  }\nLAB_000178f8:\n  bVar4 = pbVar29 < pbVar22;\n  if (pbVar28 < pbVar24) {\n    do {\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    } while (pbVar24 != pbVar28);\n  }\n  goto LAB_00017440;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "bool bVar4;" (primitive_type "bool") (identifier "bVar4") (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "byte bVar10;" (type_identifier "byte") (identifier "bVar10") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "code *pcVar11;" (type_identifier "code") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "code *pcVar12;" (type_identifier "code") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "undefined4 uVar14;" (type_identifier "undefined4") (identifier "uVar14") (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "undefined4 uVar17;" (type_identifier "undefined4") (identifier "uVar17") (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "byte *pbVar20;" (type_identifier "byte") (pointer_declarator "*pbVar20" (* "*") (identifier "pbVar20")) (; ";")) (declaration "byte *pbVar21;" (type_identifier "byte") (pointer_declarator "*pbVar21" (* "*") (identifier "pbVar21")) (; ";")) (declaration "byte *pbVar22;" (type_identifier "byte") (pointer_declarator "*pbVar22" (* "*") (identifier "pbVar22")) (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "byte *pbVar24;" (type_identifier "byte") (pointer_declarator "*pbVar24" (* "*") (identifier "pbVar24")) (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "byte *pbVar26;" (type_identifier "byte") (pointer_declarator "*pbVar26" (* "*") (identifier "pbVar26")) (; ";")) (declaration "byte *pbVar27;" (type_identifier "byte") (pointer_declarator "*pbVar27" (* "*") (identifier "pbVar27")) (; ";")) (declaration "byte *pbVar28;" (type_identifier "byte") (pointer_declarator "*pbVar28" (* "*") (identifier "pbVar28")) (; ";")) (declaration "byte *pbVar29;" (type_identifier "byte") (pointer_declarator "*pbVar29" (* "*") (identifier "pbVar29")) (; ";")) (declaration "byte *pbVar30;" (type_identifier "byte") (pointer_declarator "*pbVar30" (* "*") (identifier "pbVar30")) (; ";")) (declaration "byte *pbVar31;" (type_identifier "byte") (pointer_declarator "*pbVar31" (* "*") (identifier "pbVar31")) (; ";")) (declaration "int *piVar32;" (primitive_type "int") (pointer_declarator "*piVar32" (* "*") (identifier "piVar32")) (; ";")) (declaration "code *pcVar33;" (type_identifier "code") (pointer_declarator "*pcVar33" (* "*") (identifier "pcVar33")) (; ";")) (declaration "double dVar34;" (primitive_type "double") (identifier "dVar34") (; ";")) (declaration "double dVar35;" (primitive_type "double") (identifier "dVar35") (; ";")) (declaration "uint local_2158;" (type_identifier "uint") (identifier "local_2158") (; ";")) (declaration "byte *local_2154;" (type_identifier "byte") (pointer_declarator "*local_2154" (* "*") (identifier "local_2154")) (; ";")) (declaration "byte *local_2150;" (type_identifier "byte") (pointer_declarator "*local_2150" (* "*") (identifier "local_2150")) (; ";")) (declaration "byte *local_214c;" (type_identifier "byte") (pointer_declarator "*local_214c" (* "*") (identifier "local_214c")) (; ";")) (declaration "byte *local_213c;" (type_identifier "byte") (pointer_declarator "*local_213c" (* "*") (identifier "local_213c")) (; ";")) (declaration "byte *local_2138;" (type_identifier "byte") (pointer_declarator "*local_2138" (* "*") (identifier "local_2138")) (; ";")) (declaration "byte *local_2134;" (type_identifier "byte") (pointer_declarator "*local_2134" (* "*") (identifier "local_2134")) (; ";")) (declaration "undefined4 *local_2130;" (type_identifier "undefined4") (pointer_declarator "*local_2130" (* "*") (identifier "local_2130")) (; ";")) (declaration "byte *local_2120;" (type_identifier "byte") (pointer_declarator "*local_2120" (* "*") (identifier "local_2120")) (; ";")) (declaration "byte *local_211c;" (type_identifier "byte") (pointer_declarator "*local_211c" (* "*") (identifier "local_211c")) (; ";")) (declaration "byte *local_2118;" (type_identifier "byte") (pointer_declarator "*local_2118" (* "*") (identifier "local_2118")) (; ";")) (declaration "int *local_2114;" (primitive_type "int") (pointer_declarator "*local_2114" (* "*") (identifier "local_2114")) (; ";")) (declaration "byte *local_2110;" (type_identifier "byte") (pointer_declarator "*local_2110" (* "*") (identifier "local_2110")) (; ";")) (declaration "byte *local_210c;" (type_identifier "byte") (pointer_declarator "*local_210c" (* "*") (identifier "local_210c")) (; ";")) (declaration "byte *local_2108;" (type_identifier "byte") (pointer_declarator "*local_2108" (* "*") (identifier "local_2108")) (; ";")) (declaration "byte *local_2104;" (type_identifier "byte") (pointer_declarator "*local_2104" (* "*") (identifier "local_2104")) (; ";")) (declaration "byte *local_2100;" (type_identifier "byte") (pointer_declarator "*local_2100" (* "*") (identifier "local_2100")) (; ";")) (declaration "byte *local_20fc;" (type_identifier "byte") (pointer_declarator "*local_20fc" (* "*") (identifier "local_20fc")) (; ";")) (declaration "byte *local_20ec;" (type_identifier "byte") (pointer_declarator "*local_20ec" (* "*") (identifier "local_20ec")) (; ";")) (declaration "byte *local_20e8;" (type_identifier "byte") (pointer_declarator "*local_20e8" (* "*") (identifier "local_20e8")) (; ";")) (declaration "byte *local_20e4 [6];" (type_identifier "byte") (pointer_declarator "*local_20e4 [6]" (* "*") (array_declarator "local_20e4 [6]" (identifier "local_20e4") ([ "[") (number_literal "6") (] "]"))) (; ";")) (declaration "byte abStack_20cc [16];" (type_identifier "byte") (array_declarator "abStack_20cc [16]" (identifier "abStack_20cc") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "byte abStack_20bc [16];" (type_identifier "byte") (array_declarator "abStack_20bc [16]" (identifier "abStack_20bc") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined4 local_20ac [39];" (type_identifier "undefined4") (array_declarator "local_20ac [39]" (identifier "local_20ac") ([ "[") (number_literal "39") (] "]")) (; ";")) (declaration "byte local_2010 [4];" (type_identifier "byte") (array_declarator "local_2010 [4]" (identifier "local_2010") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined4 local_200c [35];" (type_identifier "undefined4") (array_declarator "local_200c [35]" (identifier "local_200c") ([ "[") (number_literal "35") (] "]")) (; ";")) (declaration "byte abStack_1f80 [12];" (type_identifier "byte") (array_declarator "abStack_1f80 [12]" (identifier "abStack_1f80") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "byte local_1f74 [4000];" (type_identifier "byte") (array_declarator "local_1f74 [4000]" (identifier "local_1f74") ([ "[") (number_literal "4000") (] "]")) (; ";")) (declaration "byte abStack_fd4 [4000];" (type_identifier "byte") (array_declarator "abStack_fd4 [4000]" (identifier "abStack_fd4") ([ "[") (number_literal "4000") (] "]")) (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (expression_statement "puVar6 = PTR___stack_chk_guard_0003e550;" (assignment_expression "puVar6 = PTR___stack_chk_guard_0003e550" (identifier "puVar6") (= "=") (identifier "PTR___stack_chk_guard_0003e550")) (; ";")) (expression_statement "puVar5 = PTR_DAT_0003e1a8;" (assignment_expression "puVar5 = PTR_DAT_0003e1a8" (identifier "puVar5") (= "=") (identifier "PTR_DAT_0003e1a8")) (; ";")) (expression_statement "pbVar22 = (byte *)param_1[3];" (assignment_expression "pbVar22 = (byte *)param_1[3]" (identifier "pbVar22") (= "=") (cast_expression "(byte *)param_1[3]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "pcVar11 = (code *)(PTR_0003e1b4 + 0x6938);" (assignment_expression "pcVar11 = (code *)(PTR_0003e1b4 + 0x6938)" (identifier "pcVar11") (= "=") (cast_expression "(code *)(PTR_0003e1b4 + 0x6938)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_0003e1b4 + 0x6938)" (( "(") (binary_expression "PTR_0003e1b4 + 0x6938" (identifier "PTR_0003e1b4") (+ "+") (number_literal "0x6938")) () ")")))) (; ";")) (expression_statement "pbVar24 = (byte *)param_2[3];" (assignment_expression "pbVar24 = (byte *)param_2[3]" (identifier "pbVar24") (= "=") (cast_expression "(byte *)param_2[3]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "piVar32 = *(int **)(PTR_DAT_0003e1a8 + -0x1908);" (assignment_expression "piVar32 = *(int **)(PTR_DAT_0003e1a8 + -0x1908)" (identifier "piVar32") (= "=") (pointer_expression "*(int **)(PTR_DAT_0003e1a8 + -0x1908)" (* "*") (cast_expression "(int **)(PTR_DAT_0003e1a8 + -0x1908)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0003e1a8 + -0x1908)" (( "(") (binary_expression "PTR_DAT_0003e1a8 + -0x1908" (identifier "PTR_DAT_0003e1a8") (+ "+") (number_literal "-0x1908")) () ")"))))) (; ";")) (expression_statement "local_34 = *(int *)PTR___stack_chk_guard_0003e550;" (assignment_expression "local_34 = *(int *)PTR___stack_chk_guard_0003e550" (identifier "local_34") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0003e550" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0003e550" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0003e550")))) (; ";")) (expression_statement "pbVar29 = (byte *)param_1[2];" (assignment_expression "pbVar29 = (byte *)param_1[2]" (identifier "pbVar29") (= "=") (cast_expression "(byte *)param_1[2]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "pcVar12 = (code *)(PTR_0003e1b4 + 0x613c);" (assignment_expression "pcVar12 = (code *)(PTR_0003e1b4 + 0x613c)" (identifier "pcVar12") (= "=") (cast_expression "(code *)(PTR_0003e1b4 + 0x613c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_0003e1b4 + 0x613c)" (( "(") (binary_expression "PTR_0003e1b4 + 0x613c" (identifier "PTR_0003e1b4") (+ "+") (number_literal "0x613c")) () ")")))) (; ";")) (expression_statement "pbVar26 = (byte *)param_2[2];" (assignment_expression "pbVar26 = (byte *)param_2[2]" (identifier "pbVar26") (= "=") (cast_expression "(byte *)param_2[2]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "bVar1 = 0;" (assignment_expression "bVar1 = 0" (identifier "bVar1") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar2 = 0;" (assignment_expression "bVar2 = 0" (identifier "bVar2") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0001743c:\n  bVar4 = pbVar29 < pbVar22;" (statement_identifier "LAB_0001743c") (: ":") (expression_statement "bVar4 = pbVar29 < pbVar22;" (assignment_expression "bVar4 = pbVar29 < pbVar22" (identifier "bVar4") (= "=") (binary_expression "pbVar29 < pbVar22" (identifier "pbVar29") (< "<") (identifier "pbVar22"))) (; ";"))) (labeled_statement "LAB_00017440:\n  if (!bVar4) {\n    pbVar22 = pbVar29;\n  }" (statement_identifier "LAB_00017440") (: ":") (if_statement "if (!bVar4) {\n    pbVar22 = pbVar29;\n  }" (if "if") (parenthesized_expression "(!bVar4)" (( "(") (unary_expression "!bVar4" (! "!") (identifier "bVar4")) () ")")) (compound_statement "{\n    pbVar22 = pbVar29;\n  }" ({ "{") (expression_statement "pbVar22 = pbVar29;" (assignment_expression "pbVar22 = pbVar29" (identifier "pbVar22") (= "=") (identifier "pbVar29")) (; ";")) (} "}")))) (if_statement "if (pbVar24 <= pbVar26) {\n    pbVar24 = pbVar26;\n  }" (if "if") (parenthesized_expression "(pbVar24 <= pbVar26)" (( "(") (binary_expression "pbVar24 <= pbVar26" (identifier "pbVar24") (<= "<=") (identifier "pbVar26")) () ")")) (compound_statement "{\n    pbVar24 = pbVar26;\n  }" ({ "{") (expression_statement "pbVar24 = pbVar26;" (assignment_expression "pbVar24 = pbVar26" (identifier "pbVar24") (= "=") (identifier "pbVar26")) (; ";")) (} "}"))) (expression_statement "pbVar18 = pbVar22 + -(int)pbVar29;" (assignment_expression "pbVar18 = pbVar22 + -(int)pbVar29" (identifier "pbVar18") (= "=") (binary_expression "pbVar22 + -(int)pbVar29" (identifier "pbVar22") (+ "+") (unary_expression "-(int)pbVar29" (- "-") (cast_expression "(int)pbVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar29"))))) (; ";")) (expression_statement "pbVar21 = (byte *)piVar32[5];" (assignment_expression "pbVar21 = (byte *)piVar32[5]" (identifier "pbVar21") (= "=") (cast_expression "(byte *)piVar32[5]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar32[5]" (identifier "piVar32") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "pbVar28 = pbVar24 + -(int)pbVar26;" (assignment_expression "pbVar28 = pbVar24 + -(int)pbVar26" (identifier "pbVar28") (= "=") (binary_expression "pbVar24 + -(int)pbVar26" (identifier "pbVar24") (+ "+") (unary_expression "-(int)pbVar26" (- "-") (cast_expression "(int)pbVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar26"))))) (; ";")) (expression_statement "pbVar20 = (byte *)piVar32[4];" (assignment_expression "pbVar20 = (byte *)piVar32[4]" (identifier "pbVar20") (= "=") (cast_expression "(byte *)piVar32[4]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar32[4]" (identifier "piVar32") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if (((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||\n     (*(char *)(piVar32 + 8) != '\0')) {\n    pbVar30 = pbVar28;\n    if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }\n    else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }\n    pbVar22 = pbVar24;\n    pbVar31 = pbVar27;\n    if (cVar3 == '\0') {\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }\n    pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);\n    local_2150 = pbVar21;\n    local_214c = pbVar20;\n    if (pbVar20 != (byte *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;\n    pbVar24[(int)pbVar18] = bVar1;\n    pbVar27[(int)pbVar30] = bVar2;\n    pbVar27 = pbVar18;\n    pbVar31 = pbVar30;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||\n     (*(char *)(piVar32 + 8) != '\0'))" (( "(") (binary_expression "((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||\n     (*(char *)(piVar32 + 8) != '\0')" (parenthesized_expression "((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0'))))" (( "(") (binary_expression "(((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)) ||\n      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))" (parenthesized_expression "(((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0))" (( "(") (binary_expression "((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||\n       ((piVar32[7] & 0xffff0000U) != 0)" (parenthesized_expression "((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0'))" (( "(") (binary_expression "(puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')" (parenthesized_expression "(puVar5[-0x14df] != '\0')" (( "(") (binary_expression "puVar5[-0x14df] != '\0'" (subscript_expression "puVar5[-0x14df]" (identifier "puVar5") ([ "[") (number_literal "-0x14df") (] "]")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*(char *)((int)piVar32 + 0x1a) != '\0')" (( "(") (binary_expression "*(char *)((int)piVar32 + 0x1a) != '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1a)" (* "*") (cast_expression "(char *)((int)piVar32 + 0x1a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar32 + 0x1a)" (( "(") (binary_expression "(int)piVar32 + 0x1a" (cast_expression "(int)piVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar32")) (+ "+") (number_literal "0x1a")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((piVar32[7] & 0xffff0000U) != 0)" (( "(") (binary_expression "(piVar32[7] & 0xffff0000U) != 0" (parenthesized_expression "(piVar32[7] & 0xffff0000U)" (( "(") (binary_expression "piVar32[7] & 0xffff0000U" (subscript_expression "piVar32[7]" (identifier "piVar32") ([ "[") (number_literal "7") (] "]")) (& "&") (number_literal "0xffff0000U")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))" (( "(") (parenthesized_expression "(*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0'))" (( "(") (binary_expression "*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')" (binary_expression "*(char *)((int)piVar32 + 0x1e) != '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1e)" (* "*") (cast_expression "(char *)((int)piVar32 + 0x1e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar32 + 0x1e)" (( "(") (binary_expression "(int)piVar32 + 0x1e" (cast_expression "(int)piVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar32")) (+ "+") (number_literal "0x1e")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(*(char *)((int)piVar32 + 0x1b) != '\0')" (( "(") (binary_expression "*(char *)((int)piVar32 + 0x1b) != '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1b)" (* "*") (cast_expression "(char *)((int)piVar32 + 0x1b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar32 + 0x1b)" (( "(") (binary_expression "(int)piVar32 + 0x1b" (cast_expression "(int)piVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar32")) (+ "+") (number_literal "0x1b")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(char *)(piVar32 + 8) != '\0')" (( "(") (binary_expression "*(char *)(piVar32 + 8) != '\0'" (pointer_expression "*(char *)(piVar32 + 8)" (* "*") (cast_expression "(char *)(piVar32 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar32 + 8)" (( "(") (binary_expression "piVar32 + 8" (identifier "piVar32") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    pbVar30 = pbVar28;\n    if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }\n    else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }\n    pbVar22 = pbVar24;\n    pbVar31 = pbVar27;\n    if (cVar3 == '\0') {\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }\n    pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);\n    pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);\n    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;\nLAB_000177ec:\n    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);\n    local_2150 = pbVar21;\n    local_214c = pbVar20;\n    if (pbVar20 != (byte *)0x0) goto LAB_000175e4;\nLAB_00017808:\n    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;\n    pbVar24[(int)pbVar18] = bVar1;\n    pbVar27[(int)pbVar30] = bVar2;\n    pbVar27 = pbVar18;\n    pbVar31 = pbVar30;\njoined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );\n  }" ({ "{") (expression_statement "pbVar30 = pbVar28;" (assignment_expression "pbVar30 = pbVar28" (identifier "pbVar30") (= "=") (identifier "pbVar28")) (; ";")) (if_statement "if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }\n    else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }" (if "if") (parenthesized_expression "((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0))" (( "(") (binary_expression "(pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)" (parenthesized_expression "(pbVar20 == (byte *)0x0)" (( "(") (binary_expression "pbVar20 == (byte *)0x0" (identifier "pbVar20") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar21 == (byte *)0x0)" (( "(") (binary_expression "pbVar21 == (byte *)0x0" (identifier "pbVar21") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n      bVar1 = *pbVar22;\n      *pbVar22 = 0;\n      bVar2 = *pbVar24;\n      *pbVar24 = 0;\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n      pbVar27 = pbVar26;\n      pbVar24 = pbVar29;\n    }" ({ "{") (expression_statement "bVar1 = *pbVar22;" (assignment_expression "bVar1 = *pbVar22" (identifier "bVar1") (= "=") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22"))) (; ";")) (expression_statement "*pbVar22 = 0;" (assignment_expression "*pbVar22 = 0" (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")) (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar2 = *pbVar24;" (assignment_expression "bVar2 = *pbVar24" (identifier "bVar2") (= "=") (pointer_expression "*pbVar24" (* "*") (identifier "pbVar24"))) (; ";")) (expression_statement "*pbVar24 = 0;" (assignment_expression "*pbVar24 = 0" (pointer_expression "*pbVar24" (* "*") (identifier "pbVar24")) (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar3 = *(char *)((int)piVar32 + 0x1a);" (assignment_expression "cVar3 = *(char *)((int)piVar32 + 0x1a)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)((int)piVar32 + 0x1a)" (* "*") (cast_expression "(char *)((int)piVar32 + 0x1a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar32 + 0x1a)" (( "(") (binary_expression "(int)piVar32 + 0x1a" (cast_expression "(int)piVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar32")) (+ "+") (number_literal "0x1a")) () ")"))))) (; ";")) (expression_statement "pbVar27 = pbVar26;" (assignment_expression "pbVar27 = pbVar26" (identifier "pbVar27") (= "=") (identifier "pbVar26")) (; ";")) (expression_statement "pbVar24 = pbVar29;" (assignment_expression "pbVar24 = pbVar29" (identifier "pbVar24") (= "=") (identifier "pbVar29")) (; ";")) (} "}")) (else_clause "else {\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }" (else "else") (compound_statement "{\n      pbVar24 = local_1f74;\n      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }\n      if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }\n      if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }\n      cVar3 = *(char *)((int)piVar32 + 0x1a);\n    }" ({ "{") (expression_statement "pbVar24 = local_1f74;" (assignment_expression "pbVar24 = local_1f74" (identifier "pbVar24") (= "=") (identifier "local_1f74")) (; ";")) (if_statement "if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }\n      else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }" (if "if") (parenthesized_expression "(pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1)" (( "(") (binary_expression "pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1" (binary_expression "pbVar18 + (int)pbVar28 + 2" (binary_expression "pbVar18 + (int)pbVar28" (identifier "pbVar18") (+ "+") (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28"))) (+ "+") (number_literal "2")) (< "<") (cast_expression "(byte *)0xfa1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfa1"))) () ")")) (compound_statement "{\n        local_2154 = (byte *)0x0;\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n      }" ({ "{") (expression_statement "local_2154 = (byte *)0x0;" (assignment_expression "local_2154 = (byte *)0x0" (identifier "local_2154") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pbVar27 = pbVar24 + (int)(pbVar18 + 1);" (assignment_expression "pbVar27 = pbVar24 + (int)(pbVar18 + 1)" (identifier "pbVar27") (= "=") (binary_expression "pbVar24 + (int)(pbVar18 + 1)" (identifier "pbVar24") (+ "+") (cast_expression "(int)(pbVar18 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar18 + 1)" (( "(") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }" (else "else") (compound_statement "{\n        pbVar24 = (byte *)xmalloc();\n        pbVar27 = pbVar24 + (int)(pbVar18 + 1);\n        local_214c = pbVar18;\n        local_2150 = pbVar20;\n        local_2154 = pbVar24;\n      }" ({ "{") (expression_statement "pbVar24 = (byte *)xmalloc();" (assignment_expression "pbVar24 = (byte *)xmalloc()" (identifier "pbVar24") (= "=") (cast_expression "(byte *)xmalloc()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc()" (identifier "xmalloc") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pbVar27 = pbVar24 + (int)(pbVar18 + 1);" (assignment_expression "pbVar27 = pbVar24 + (int)(pbVar18 + 1)" (identifier "pbVar27") (= "=") (binary_expression "pbVar24 + (int)(pbVar18 + 1)" (identifier "pbVar24") (+ "+") (cast_expression "(int)(pbVar18 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar18 + 1)" (( "(") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "local_214c = pbVar18;" (assignment_expression "local_214c = pbVar18" (identifier "local_214c") (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "local_2150 = pbVar20;" (assignment_expression "local_2150 = pbVar20" (identifier "local_2150") (= "=") (identifier "pbVar20")) (; ";")) (expression_statement "local_2154 = pbVar24;" (assignment_expression "local_2154 = pbVar24" (identifier "local_2154") (= "=") (identifier "pbVar24")) (; ";")) (} "}")))) (if_statement "if (pbVar18 == (byte *)0x0) {\n        *pbVar24 = 0;\n      }\n      else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }" (if "if") (parenthesized_expression "(pbVar18 == (byte *)0x0)" (( "(") (binary_expression "pbVar18 == (byte *)0x0" (identifier "pbVar18") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *pbVar24 = 0;\n      }" ({ "{") (expression_statement "*pbVar24 = 0;" (assignment_expression "*pbVar24 = 0" (pointer_expression "*pbVar24" (* "*") (identifier "pbVar24")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }" (else "else") (compound_statement "{\n        pbVar31 = pbVar29 + (int)pbVar18;\n        pbVar18 = (byte *)0x0;\n        pbVar22 = pbVar29;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);\n        pbVar24[(int)pbVar18] = 0;\n      }" ({ "{") (expression_statement "pbVar31 = pbVar29 + (int)pbVar18;" (assignment_expression "pbVar31 = pbVar29 + (int)pbVar18" (identifier "pbVar31") (= "=") (binary_expression "pbVar29 + (int)pbVar18" (identifier "pbVar29") (+ "+") (cast_expression "(int)pbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar18")))) (; ";")) (expression_statement "pbVar18 = (byte *)0x0;" (assignment_expression "pbVar18 = (byte *)0x0" (identifier "pbVar18") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pbVar22 = pbVar29;" (assignment_expression "pbVar22 = pbVar29" (identifier "pbVar22") (= "=") (identifier "pbVar29")) (; ";")) (do_statement "do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar31 != pbVar22);" (do "do") (compound_statement "{\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        }" ({ "{") (expression_statement "bVar10 = *pbVar22;" (assignment_expression "bVar10 = *pbVar22" (identifier "bVar10") (= "=") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22"))) (; ";")) (if_statement "if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }" (if "if") (parenthesized_expression "((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0))" (( "(") (binary_expression "(pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)" (parenthesized_expression "(pbVar20 == (byte *)0x0)" (( "(") (binary_expression "pbVar20 == (byte *)0x0" (identifier "pbVar20") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pbVar20[bVar10] == 0)" (( "(") (binary_expression "pbVar20[bVar10] == 0" (subscript_expression "pbVar20[bVar10]" (identifier "pbVar20") ([ "[") (identifier "bVar10") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            pbVar16 = pbVar24 + (int)pbVar18;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar18 = pbVar18 + 1;\n            *pbVar16 = bVar10;\n          }" ({ "{") (expression_statement "pbVar16 = pbVar24 + (int)pbVar18;" (assignment_expression "pbVar16 = pbVar24 + (int)pbVar18" (identifier "pbVar16") (= "=") (binary_expression "pbVar24 + (int)pbVar18" (identifier "pbVar24") (+ "+") (cast_expression "(int)pbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar18")))) (; ";")) (if_statement "if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }" (if "if") (parenthesized_expression "(pbVar21 != (byte *)0x0)" (( "(") (binary_expression "pbVar21 != (byte *)0x0" (identifier "pbVar21") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              bVar10 = pbVar21[bVar10];\n            }" ({ "{") (expression_statement "bVar10 = pbVar21[bVar10];" (assignment_expression "bVar10 = pbVar21[bVar10]" (identifier "bVar10") (= "=") (subscript_expression "pbVar21[bVar10]" (identifier "pbVar21") ([ "[") (identifier "bVar10") (] "]"))) (; ";")) (} "}"))) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar16 = bVar10;" (assignment_expression "*pbVar16 = bVar10" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (= "=") (identifier "bVar10")) (; ";")) (} "}"))) (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + 1" (identifier "pbVar22") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar31 != pbVar22)" (( "(") (binary_expression "pbVar31 != pbVar22" (identifier "pbVar31") (!= "!=") (identifier "pbVar22")) () ")")) (; ";")) (expression_statement "pbVar24[(int)pbVar18] = 0;" (assignment_expression "pbVar24[(int)pbVar18] = 0" (subscript_expression "pbVar24[(int)pbVar18]" (identifier "pbVar24") ([ "[") (cast_expression "(int)pbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar18")) (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (pbVar28 == (byte *)0x0) {\n        *pbVar27 = 0;\n      }\n      else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }" (if "if") (parenthesized_expression "(pbVar28 == (byte *)0x0)" (( "(") (binary_expression "pbVar28 == (byte *)0x0" (identifier "pbVar28") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *pbVar27 = 0;\n      }" ({ "{") (expression_statement "*pbVar27 = 0;" (assignment_expression "*pbVar27 = 0" (pointer_expression "*pbVar27" (* "*") (identifier "pbVar27")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }" (else "else") (compound_statement "{\n        pbVar28 = pbVar26 + (int)pbVar28;\n        pbVar30 = (byte *)0x0;\n        pbVar22 = pbVar26;\n        do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);\n        pbVar27[(int)pbVar30] = 0;\n      }" ({ "{") (expression_statement "pbVar28 = pbVar26 + (int)pbVar28;" (assignment_expression "pbVar28 = pbVar26 + (int)pbVar28" (identifier "pbVar28") (= "=") (binary_expression "pbVar26 + (int)pbVar28" (identifier "pbVar26") (+ "+") (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")))) (; ";")) (expression_statement "pbVar30 = (byte *)0x0;" (assignment_expression "pbVar30 = (byte *)0x0" (identifier "pbVar30") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pbVar22 = pbVar26;" (assignment_expression "pbVar22 = pbVar26" (identifier "pbVar22") (= "=") (identifier "pbVar26")) (; ";")) (do_statement "do {\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        } while (pbVar28 != pbVar22);" (do "do") (compound_statement "{\n          bVar10 = *pbVar22;\n          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }\n          pbVar22 = pbVar22 + 1;\n        }" ({ "{") (expression_statement "bVar10 = *pbVar22;" (assignment_expression "bVar10 = *pbVar22" (identifier "bVar10") (= "=") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22"))) (; ";")) (if_statement "if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }" (if "if") (parenthesized_expression "((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0))" (( "(") (binary_expression "(pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)" (parenthesized_expression "(pbVar20 == (byte *)0x0)" (( "(") (binary_expression "pbVar20 == (byte *)0x0" (identifier "pbVar20") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pbVar20[bVar10] == 0)" (( "(") (binary_expression "pbVar20[bVar10] == 0" (subscript_expression "pbVar20[bVar10]" (identifier "pbVar20") ([ "[") (identifier "bVar10") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            pbVar31 = pbVar27 + (int)pbVar30;\n            if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }\n            pbVar30 = pbVar30 + 1;\n            *pbVar31 = bVar10;\n          }" ({ "{") (expression_statement "pbVar31 = pbVar27 + (int)pbVar30;" (assignment_expression "pbVar31 = pbVar27 + (int)pbVar30" (identifier "pbVar31") (= "=") (binary_expression "pbVar27 + (int)pbVar30" (identifier "pbVar27") (+ "+") (cast_expression "(int)pbVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar30")))) (; ";")) (if_statement "if (pbVar21 != (byte *)0x0) {\n              bVar10 = pbVar21[bVar10];\n            }" (if "if") (parenthesized_expression "(pbVar21 != (byte *)0x0)" (( "(") (binary_expression "pbVar21 != (byte *)0x0" (identifier "pbVar21") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              bVar10 = pbVar21[bVar10];\n            }" ({ "{") (expression_statement "bVar10 = pbVar21[bVar10];" (assignment_expression "bVar10 = pbVar21[bVar10]" (identifier "bVar10") (= "=") (subscript_expression "pbVar21[bVar10]" (identifier "pbVar21") ([ "[") (identifier "bVar10") (] "]"))) (; ";")) (} "}"))) (expression_statement "pbVar30 = pbVar30 + 1;" (assignment_expression "pbVar30 = pbVar30 + 1" (identifier "pbVar30") (= "=") (binary_expression "pbVar30 + 1" (identifier "pbVar30") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar31 = bVar10;" (assignment_expression "*pbVar31 = bVar10" (pointer_expression "*pbVar31" (* "*") (identifier "pbVar31")) (= "=") (identifier "bVar10")) (; ";")) (} "}"))) (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + 1" (identifier "pbVar22") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar28 != pbVar22)" (( "(") (binary_expression "pbVar28 != pbVar22" (identifier "pbVar28") (!= "!=") (identifier "pbVar22")) () ")")) (; ";")) (expression_statement "pbVar27[(int)pbVar30] = 0;" (assignment_expression "pbVar27[(int)pbVar30] = 0" (subscript_expression "pbVar27[(int)pbVar30]" (identifier "pbVar27") ([ "[") (cast_expression "(int)pbVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar30")) (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "cVar3 = *(char *)((int)piVar32 + 0x1a);" (assignment_expression "cVar3 = *(char *)((int)piVar32 + 0x1a)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)((int)piVar32 + 0x1a)" (* "*") (cast_expression "(char *)((int)piVar32 + 0x1a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar32 + 0x1a)" (( "(") (binary_expression "(int)piVar32 + 0x1a" (cast_expression "(int)piVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar32")) (+ "+") (number_literal "0x1a")) () ")"))))) (; ";")) (} "}")))) (expression_statement "pbVar22 = pbVar24;" (assignment_expression "pbVar22 = pbVar24" (identifier "pbVar22") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "pbVar31 = pbVar27;" (assignment_expression "pbVar31 = pbVar27" (identifier "pbVar31") (= "=") (identifier "pbVar27")) (; ";")) (if_statement "if (cVar3 == '\0') {\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }\n    else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }\n      if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n      pbVar29 = PTR_0003e1b4 + 0x6090;\n      iVar23 = FUN_00016090(pbVar22);\n      iVar25 = FUN_00016090(pbVar31);\n      local_2158 = iVar23 - iVar25;\n      pbVar26 = pbVar22;\n      pbVar28 = pbVar31;\n      local_2150 = pbVar21;\n      local_214c = pbVar20;\n      if (local_2158 != 0) goto LAB_000175d8;\n    }" ({ "{") (if_statement "if (*(char *)(piVar32 + 7) != '\0') {\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }" (if "if") (parenthesized_expression "(*(char *)(piVar32 + 7) != '\0')" (( "(") (binary_expression "*(char *)(piVar32 + 7) != '\0'" (pointer_expression "*(char *)(piVar32 + 7)" (* "*") (cast_expression "(char *)(piVar32 + 7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar32 + 7)" (( "(") (binary_expression "piVar32 + 7" (identifier "piVar32") (+ "+") (number_literal "7")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);\n        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);\n        if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }\n        local_2150 = pbVar20;\n        if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }\nLAB_000179f8:\n        local_2158 = 1;\n        goto LAB_000175d8;\n      }" ({ "{") (expression_statement "dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);" (assignment_expression "dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8)" (identifier "dVar34") (= "=") (cast_expression "(double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8)" (parenthesized_expression "(*(code *)PTR_strtold_0003e524)" (( "(") (pointer_expression "*(code *)PTR_strtold_0003e524" (* "*") (cast_expression "(code *)PTR_strtold_0003e524" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strtold_0003e524"))) () ")")) (argument_list "(pbVar24,&local_20e8)" (( "(") (identifier "pbVar24") (, ",") (pointer_expression "&local_20e8" (& "&") (identifier "local_20e8")) () ")"))))) (; ";")) (expression_statement "dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);" (assignment_expression "dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4)" (identifier "dVar35") (= "=") (cast_expression "(double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4)" (parenthesized_expression "(*(code *)PTR_strtold_0003e524)" (( "(") (pointer_expression "*(code *)PTR_strtold_0003e524" (* "*") (cast_expression "(code *)PTR_strtold_0003e524" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strtold_0003e524"))) () ")")) (argument_list "(pbVar27,local_20e4)" (( "(") (identifier "pbVar27") (, ",") (identifier "local_20e4") () ")"))))) (; ";")) (if_statement "if (pbVar24 == local_20e8) {\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }" (if "if") (parenthesized_expression "(pbVar24 == local_20e8)" (( "(") (binary_expression "pbVar24 == local_20e8" (identifier "pbVar24") (== "==") (identifier "local_20e8")) () ")")) (compound_statement "{\n          local_2158 = -(uint)(pbVar27 != local_20e4[0]);\n          local_2150 = pbVar20;\n          goto LAB_000175d8;\n        }" ({ "{") (expression_statement "local_2158 = -(uint)(pbVar27 != local_20e4[0]);" (assignment_expression "local_2158 = -(uint)(pbVar27 != local_20e4[0])" (identifier "local_2158") (= "=") (unary_expression "-(uint)(pbVar27 != local_20e4[0])" (- "-") (call_expression "(uint)(pbVar27 != local_20e4[0])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar27 != local_20e4[0])" (( "(") (binary_expression "pbVar27 != local_20e4[0]" (identifier "pbVar27") (!= "!=") (subscript_expression "local_20e4[0]" (identifier "local_20e4") ([ "[") (number_literal "0") (] "]"))) () ")"))))) (; ";")) (expression_statement "local_2150 = pbVar20;" (assignment_expression "local_2150 = pbVar20" (identifier "local_2150") (= "=") (identifier "pbVar20")) (; ";")) (goto_statement "goto LAB_000175d8;" (goto "goto") (statement_identifier "LAB_000175d8") (; ";")) (} "}"))) (expression_statement "local_2150 = pbVar20;" (assignment_expression "local_2150 = pbVar20" (identifier "local_2150") (= "=") (identifier "pbVar20")) (; ";")) (if_statement "if (pbVar27 != local_20e4[0]) {\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }" (if "if") (parenthesized_expression "(pbVar27 != local_20e4[0])" (( "(") (binary_expression "pbVar27 != local_20e4[0]" (identifier "pbVar27") (!= "!=") (subscript_expression "local_20e4[0]" (identifier "local_20e4") ([ "[") (number_literal "0") (] "]"))) () ")")) (compound_statement "{\n          if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }\n          local_2158 = 0xffffffff;\n          goto LAB_000175d8;\n        }" ({ "{") (if_statement "if (dVar35 <= dVar34) {\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }" (if "if") (parenthesized_expression "(dVar35 <= dVar34)" (( "(") (binary_expression "dVar35 <= dVar34" (identifier "dVar35") (<= "<=") (identifier "dVar34")) () ")")) (compound_statement "{\n            if (dVar35 < dVar34) goto LAB_000179f8;\n            if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }\n          }" ({ "{") (if_statement "if (dVar35 < dVar34) goto LAB_000179f8;" (if "if") (parenthesized_expression "(dVar35 < dVar34)" (( "(") (binary_expression "dVar35 < dVar34" (identifier "dVar35") (< "<") (identifier "dVar34")) () ")")) (goto_statement "goto LAB_000179f8;" (goto "goto") (statement_identifier "LAB_000179f8") (; ";"))) (if_statement "if (dVar34 == dVar35) {\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }" (if "if") (parenthesized_expression "(dVar34 == dVar35)" (( "(") (binary_expression "dVar34 == dVar35" (identifier "dVar34") (== "==") (identifier "dVar35")) () ")")) (compound_statement "{\n              local_2158 = 0;\n              goto LAB_000175d8;\n            }" ({ "{") (expression_statement "local_2158 = 0;" (assignment_expression "local_2158 = 0" (identifier "local_2158") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000175d8;" (goto "goto") (statement_identifier "LAB_000175d8") (; ";")) (} "}"))) (} "}"))) (expression_statement "local_2158 = 0xffffffff;" (assignment_expression "local_2158 = 0xffffffff" (identifier "local_2158") (= "=") (number_literal "0xffffffff")) (; ";")) (goto_statement "goto LAB_000175d8;" (goto "goto") (statement_identifier "LAB_000175d8") (; ";")) (} "}"))) (labeled_statement "LAB_000179f8:\n        local_2158 = 1;" (statement_identifier "LAB_000179f8") (: ":") (expression_statement "local_2158 = 1;" (assignment_expression "local_2158 = 1" (identifier "local_2158") (= "=") (number_literal "1")) (; ";"))) (goto_statement "goto LAB_000175d8;" (goto "goto") (statement_identifier "LAB_000175d8") (; ";")) (} "}"))) (if_statement "if (*(char *)((int)piVar32 + 0x1d) == '\0') {\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }" (if "if") (parenthesized_expression "(*(char *)((int)piVar32 + 0x1d) == '\0')" (( "(") (binary_expression "*(char *)((int)piVar32 + 0x1d) == '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1d)" (* "*") (cast_expression "(char *)((int)piVar32 + 0x1d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar32 + 0x1d)" (( "(") (binary_expression "(int)piVar32 + 0x1d" (cast_expression "(int)piVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar32")) (+ "+") (number_literal "0x1d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }\n        if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }\n        if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }\n        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;\n        pbVar19 = pbVar30 + 1;\n        pbVar31 = pbVar18 + 1;\n        pbVar16 = pbVar27;\n        pcVar33 = (code *)PTR_xmemcoll0_0003e200;\n        goto LAB_000177ec;\n      }" ({ "{") (if_statement "if (*(char *)((int)piVar32 + 0x1e) != '\0') {\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }" (if "if") (parenthesized_expression "(*(char *)((int)piVar32 + 0x1e) != '\0')" (( "(") (binary_expression "*(char *)((int)piVar32 + 0x1e) != '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1e)" (* "*") (cast_expression "(char *)((int)piVar32 + 0x1e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar32 + 0x1e)" (( "(") (binary_expression "(int)piVar32 + 0x1e" (cast_expression "(int)piVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar32")) (+ "+") (number_literal "0x1e")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          pcVar33 = pcVar12;\n          iVar23 = (*pcVar12)(pbVar24,0);\n          iVar25 = (*pcVar33)(pbVar27,0);\n          local_2158 = iVar23 - iVar25;\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }" ({ "{") (expression_statement "pcVar33 = pcVar12;" (assignment_expression "pcVar33 = pcVar12" (identifier "pcVar33") (= "=") (identifier "pcVar12")) (; ";")) (expression_statement "iVar23 = (*pcVar12)(pbVar24,0);" (assignment_expression "iVar23 = (*pcVar12)(pbVar24,0)" (identifier "iVar23") (= "=") (call_expression "(*pcVar12)(pbVar24,0)" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "(pbVar24,0)" (( "(") (identifier "pbVar24") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar25 = (*pcVar33)(pbVar27,0);" (assignment_expression "iVar25 = (*pcVar33)(pbVar27,0)" (identifier "iVar25") (= "=") (call_expression "(*pcVar33)(pbVar27,0)" (parenthesized_expression "(*pcVar33)" (( "(") (pointer_expression "*pcVar33" (* "*") (identifier "pcVar33")) () ")")) (argument_list "(pbVar27,0)" (( "(") (identifier "pbVar27") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "local_2158 = iVar23 - iVar25;" (assignment_expression "local_2158 = iVar23 - iVar25" (identifier "local_2158") (= "=") (binary_expression "iVar23 - iVar25" (identifier "iVar23") (- "-") (identifier "iVar25"))) (; ";")) (expression_statement "local_2150 = pbVar21;" (assignment_expression "local_2150 = pbVar21" (identifier "local_2150") (= "=") (identifier "pbVar21")) (; ";")) (expression_statement "local_214c = pbVar20;" (assignment_expression "local_214c = pbVar20" (identifier "local_214c") (= "=") (identifier "pbVar20")) (; ";")) (goto_statement "goto LAB_000175d8;" (goto "goto") (statement_identifier "LAB_000175d8") (; ";")) (} "}"))) (if_statement "if (*(char *)((int)piVar32 + 0x1b) != '\0') {\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }" (if "if") (parenthesized_expression "(*(char *)((int)piVar32 + 0x1b) != '\0')" (( "(") (binary_expression "*(char *)((int)piVar32 + 0x1b) != '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1b)" (* "*") (cast_expression "(char *)((int)piVar32 + 0x1b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar32 + 0x1b)" (( "(") (binary_expression "(int)piVar32 + 0x1b" (cast_expression "(int)piVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar32")) (+ "+") (number_literal "0x1b")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_2138 = local_2010;\n          puVar8 = (undefined4 *)(puVar5 + -0x1a38);\n          pbVar22 = local_2138;\n          do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));\n          local_2130 = local_20ac;\n          uVar15 = puVar7[5];\n          uVar14 = puVar7[6];\n          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;\n          *(undefined4 *)(pbVar26 + 0x14) = uVar15;\n          *(undefined4 *)(pbVar26 + 0x18) = uVar14;\n          pbVar22 = local_2138;\n          puVar8 = local_2130;\n          do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);\n          uVar15 = *(undefined4 *)(pbVar26 + 0x14);\n          uVar14 = *(undefined4 *)(pbVar26 + 0x18);\n          cVar3 = puVar5[-0x14df];\n          puVar7[4] = *(undefined4 *)pbVar22;\n          puVar7[5] = uVar15;\n          puVar7[6] = uVar14;\n          if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }\n          local_2120 = pbVar24 + (int)pbVar18;\n          local_214c = (byte *)0x0;\n          pbVar29 = abStack_fd4;\n          local_2158 = 0;\n          local_211c = pbVar27 + (int)pbVar30;\n          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);\n          pbVar26 = (byte *)0xfa0;\n          local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n          local_2118 = (byte *)0x55555555;\n          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);\n          local_213c = pbVar24;\n          local_2114 = piVar32;\n          local_2110 = pbVar24;\n          local_210c = pbVar27;\n          local_2108 = pbVar18;\n          local_2104 = pbVar30;\n          local_2100 = pbVar21;\n          local_20fc = pbVar20;\n          local_20ec = pbVar29;\n          goto LAB_00017c30;\n        }" ({ "{") (expression_statement "local_2138 = local_2010;" (assignment_expression "local_2138 = local_2010" (identifier "local_2138") (= "=") (identifier "local_2010")) (; ";")) (expression_statement "puVar8 = (undefined4 *)(puVar5 + -0x1a38);" (assignment_expression "puVar8 = (undefined4 *)(puVar5 + -0x1a38)" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(puVar5 + -0x1a38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + -0x1a38)" (( "(") (binary_expression "puVar5 + -0x1a38" (identifier "puVar5") (+ "+") (number_literal "-0x1a38")) () ")")))) (; ";")) (expression_statement "pbVar22 = local_2138;" (assignment_expression "pbVar22 = local_2138" (identifier "pbVar22") (= "=") (identifier "local_2138")) (; ";")) (do_statement "do {\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));" (do "do") (compound_statement "{\n            pbVar26 = pbVar22;\n            puVar7 = puVar8;\n            puVar8 = puVar7 + 4;\n            uVar17 = puVar7[1];\n            uVar15 = puVar7[2];\n            uVar14 = puVar7[3];\n            *(undefined4 *)pbVar26 = *puVar7;\n            *(undefined4 *)(pbVar26 + 4) = uVar17;\n            *(undefined4 *)(pbVar26 + 8) = uVar15;\n            *(undefined4 *)(pbVar26 + 0xc) = uVar14;\n            pbVar22 = pbVar26 + 0x10;\n          }" ({ "{") (expression_statement "pbVar26 = pbVar22;" (assignment_expression "pbVar26 = pbVar22" (identifier "pbVar26") (= "=") (identifier "pbVar22")) (; ";")) (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" (identifier "puVar7") (= "=") (identifier "puVar8")) (; ";")) (expression_statement "puVar8 = puVar7 + 4;" (assignment_expression "puVar8 = puVar7 + 4" (identifier "puVar8") (= "=") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar17 = puVar7[1];" (assignment_expression "uVar17 = puVar7[1]" (identifier "uVar17") (= "=") (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar15 = puVar7[2];" (assignment_expression "uVar15 = puVar7[2]" (identifier "uVar15") (= "=") (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar14 = puVar7[3];" (assignment_expression "uVar14 = puVar7[3]" (identifier "uVar14") (= "=") (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)pbVar26 = *puVar7;" (assignment_expression "*(undefined4 *)pbVar26 = *puVar7" (pointer_expression "*(undefined4 *)pbVar26" (* "*") (cast_expression "(undefined4 *)pbVar26" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar26"))) (= "=") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))) (; ";")) (expression_statement "*(undefined4 *)(pbVar26 + 4) = uVar17;" (assignment_expression "*(undefined4 *)(pbVar26 + 4) = uVar17" (pointer_expression "*(undefined4 *)(pbVar26 + 4)" (* "*") (cast_expression "(undefined4 *)(pbVar26 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar26 + 4)" (( "(") (binary_expression "pbVar26 + 4" (identifier "pbVar26") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "*(undefined4 *)(pbVar26 + 8) = uVar15;" (assignment_expression "*(undefined4 *)(pbVar26 + 8) = uVar15" (pointer_expression "*(undefined4 *)(pbVar26 + 8)" (* "*") (cast_expression "(undefined4 *)(pbVar26 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar26 + 8)" (( "(") (binary_expression "pbVar26 + 8" (identifier "pbVar26") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "*(undefined4 *)(pbVar26 + 0xc) = uVar14;" (assignment_expression "*(undefined4 *)(pbVar26 + 0xc) = uVar14" (pointer_expression "*(undefined4 *)(pbVar26 + 0xc)" (* "*") (cast_expression "(undefined4 *)(pbVar26 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar26 + 0xc)" (( "(") (binary_expression "pbVar26 + 0xc" (identifier "pbVar26") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "pbVar22 = pbVar26 + 0x10;" (assignment_expression "pbVar22 = pbVar26 + 0x10" (identifier "pbVar22") (= "=") (binary_expression "pbVar26 + 0x10" (identifier "pbVar26") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar8 != (undefined4 *)(puVar5 + -0x19a8))" (( "(") (binary_expression "puVar8 != (undefined4 *)(puVar5 + -0x19a8)" (identifier "puVar8") (!= "!=") (cast_expression "(undefined4 *)(puVar5 + -0x19a8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5 + -0x19a8)" (( "(") (binary_expression "puVar5 + -0x19a8" (identifier "puVar5") (+ "+") (number_literal "-0x19a8")) () ")")))) () ")")) (; ";")) (expression_statement "local_2130 = local_20ac;" (assignment_expression "local_2130 = local_20ac" (identifier "local_2130") (= "=") (identifier "local_20ac")) (; ";")) (expression_statement "uVar15 = puVar7[5];" (assignment_expression "uVar15 = puVar7[5]" (identifier "uVar15") (= "=") (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar14 = puVar7[6];" (assignment_expression "uVar14 = puVar7[6]" (identifier "uVar14") (= "=") (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(pbVar26 + 0x10) = *puVar8;" (assignment_expression "*(undefined4 *)(pbVar26 + 0x10) = *puVar8" (pointer_expression "*(undefined4 *)(pbVar26 + 0x10)" (* "*") (cast_expression "(undefined4 *)(pbVar26 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar26 + 0x10)" (( "(") (binary_expression "pbVar26 + 0x10" (identifier "pbVar26") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "*(undefined4 *)(pbVar26 + 0x14) = uVar15;" (assignment_expression "*(undefined4 *)(pbVar26 + 0x14) = uVar15" (pointer_expression "*(undefined4 *)(pbVar26 + 0x14)" (* "*") (cast_expression "(undefined4 *)(pbVar26 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar26 + 0x14)" (( "(") (binary_expression "pbVar26 + 0x14" (identifier "pbVar26") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "*(undefined4 *)(pbVar26 + 0x18) = uVar14;" (assignment_expression "*(undefined4 *)(pbVar26 + 0x18) = uVar14" (pointer_expression "*(undefined4 *)(pbVar26 + 0x18)" (* "*") (cast_expression "(undefined4 *)(pbVar26 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar26 + 0x18)" (( "(") (binary_expression "pbVar26 + 0x18" (identifier "pbVar26") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "pbVar22 = local_2138;" (assignment_expression "pbVar22 = local_2138" (identifier "pbVar22") (= "=") (identifier "local_2138")) (; ";")) (expression_statement "puVar8 = local_2130;" (assignment_expression "puVar8 = local_2130" (identifier "puVar8") (= "=") (identifier "local_2130")) (; ";")) (do_statement "do {\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          } while (pbVar22 != abStack_1f80);" (do "do") (compound_statement "{\n            puVar7 = puVar8;\n            pbVar26 = pbVar22;\n            pbVar22 = pbVar26 + 0x10;\n            uVar17 = *(undefined4 *)(pbVar26 + 4);\n            uVar15 = *(undefined4 *)(pbVar26 + 8);\n            uVar14 = *(undefined4 *)(pbVar26 + 0xc);\n            *puVar7 = *(undefined4 *)pbVar26;\n            puVar7[1] = uVar17;\n            puVar7[2] = uVar15;\n            puVar7[3] = uVar14;\n            puVar8 = puVar7 + 4;\n          }" ({ "{") (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" (identifier "puVar7") (= "=") (identifier "puVar8")) (; ";")) (expression_statement "pbVar26 = pbVar22;" (assignment_expression "pbVar26 = pbVar22" (identifier "pbVar26") (= "=") (identifier "pbVar22")) (; ";")) (expression_statement "pbVar22 = pbVar26 + 0x10;" (assignment_expression "pbVar22 = pbVar26 + 0x10" (identifier "pbVar22") (= "=") (binary_expression "pbVar26 + 0x10" (identifier "pbVar26") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "uVar17 = *(undefined4 *)(pbVar26 + 4);" (assignment_expression "uVar17 = *(undefined4 *)(pbVar26 + 4)" (identifier "uVar17") (= "=") (pointer_expression "*(undefined4 *)(pbVar26 + 4)" (* "*") (cast_expression "(undefined4 *)(pbVar26 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar26 + 4)" (( "(") (binary_expression "pbVar26 + 4" (identifier "pbVar26") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar15 = *(undefined4 *)(pbVar26 + 8);" (assignment_expression "uVar15 = *(undefined4 *)(pbVar26 + 8)" (identifier "uVar15") (= "=") (pointer_expression "*(undefined4 *)(pbVar26 + 8)" (* "*") (cast_expression "(undefined4 *)(pbVar26 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar26 + 8)" (( "(") (binary_expression "pbVar26 + 8" (identifier "pbVar26") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar14 = *(undefined4 *)(pbVar26 + 0xc);" (assignment_expression "uVar14 = *(undefined4 *)(pbVar26 + 0xc)" (identifier "uVar14") (= "=") (pointer_expression "*(undefined4 *)(pbVar26 + 0xc)" (* "*") (cast_expression "(undefined4 *)(pbVar26 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar26 + 0xc)" (( "(") (binary_expression "pbVar26 + 0xc" (identifier "pbVar26") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*puVar7 = *(undefined4 *)pbVar26;" (assignment_expression "*puVar7 = *(undefined4 *)pbVar26" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "*(undefined4 *)pbVar26" (* "*") (cast_expression "(undefined4 *)pbVar26" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar26")))) (; ";")) (expression_statement "puVar7[1] = uVar17;" (assignment_expression "puVar7[1] = uVar17" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar17")) (; ";")) (expression_statement "puVar7[2] = uVar15;" (assignment_expression "puVar7[2] = uVar15" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "puVar7[3] = uVar14;" (assignment_expression "puVar7[3] = uVar14" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "puVar8 = puVar7 + 4;" (assignment_expression "puVar8 = puVar7 + 4" (identifier "puVar8") (= "=") (binary_expression "puVar7 + 4" (identifier "puVar7") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar22 != abStack_1f80)" (( "(") (binary_expression "pbVar22 != abStack_1f80" (identifier "pbVar22") (!= "!=") (identifier "abStack_1f80")) () ")")) (; ";")) (expression_statement "uVar15 = *(undefined4 *)(pbVar26 + 0x14);" (assignment_expression "uVar15 = *(undefined4 *)(pbVar26 + 0x14)" (identifier "uVar15") (= "=") (pointer_expression "*(undefined4 *)(pbVar26 + 0x14)" (* "*") (cast_expression "(undefined4 *)(pbVar26 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar26 + 0x14)" (( "(") (binary_expression "pbVar26 + 0x14" (identifier "pbVar26") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar14 = *(undefined4 *)(pbVar26 + 0x18);" (assignment_expression "uVar14 = *(undefined4 *)(pbVar26 + 0x18)" (identifier "uVar14") (= "=") (pointer_expression "*(undefined4 *)(pbVar26 + 0x18)" (* "*") (cast_expression "(undefined4 *)(pbVar26 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar26 + 0x18)" (( "(") (binary_expression "pbVar26 + 0x18" (identifier "pbVar26") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "cVar3 = puVar5[-0x14df];" (assignment_expression "cVar3 = puVar5[-0x14df]" (identifier "cVar3") (= "=") (subscript_expression "puVar5[-0x14df]" (identifier "puVar5") ([ "[") (number_literal "-0x14df") (] "]"))) (; ";")) (expression_statement "puVar7[4] = *(undefined4 *)pbVar22;" (assignment_expression "puVar7[4] = *(undefined4 *)pbVar22" (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(undefined4 *)pbVar22" (* "*") (cast_expression "(undefined4 *)pbVar22" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar22")))) (; ";")) (expression_statement "puVar7[5] = uVar15;" (assignment_expression "puVar7[5] = uVar15" (subscript_expression "puVar7[5]" (identifier "puVar7") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar15")) (; ";")) (expression_statement "puVar7[6] = uVar14;" (assignment_expression "puVar7[6] = uVar14" (subscript_expression "puVar7[6]" (identifier "puVar7") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar14")) (; ";")) (if_statement "if (cVar3 == '\0') {\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            md5_process_bytes(pbVar24,pbVar18,local_2130);\n            pbVar26 = abStack_20cc;\n            md5_finish_ctx(local_2130,pbVar26);\n            md5_process_bytes(pbVar27,pbVar30,local_2138);\n            md5_finish_ctx(local_2138,abStack_20bc);\n            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n            local_214c = (byte *)0x0;\n            pbVar28 = pbVar18;\n            pbVar22 = abStack_20bc;\n            pbVar29 = local_2138;\n            pbVar31 = pbVar24;\n            local_2150 = pbVar30;\n            local_213c = pbVar27;\n            if (uVar9 != 0) goto LAB_00018040;\n            goto LAB_00017ff4;\n          }" ({ "{") (expression_statement "md5_process_bytes(pbVar24,pbVar18,local_2130);" (call_expression "md5_process_bytes(pbVar24,pbVar18,local_2130)" (identifier "md5_process_bytes") (argument_list "(pbVar24,pbVar18,local_2130)" (( "(") (identifier "pbVar24") (, ",") (identifier "pbVar18") (, ",") (identifier "local_2130") () ")"))) (; ";")) (expression_statement "pbVar26 = abStack_20cc;" (assignment_expression "pbVar26 = abStack_20cc" (identifier "pbVar26") (= "=") (identifier "abStack_20cc")) (; ";")) (expression_statement "md5_finish_ctx(local_2130,pbVar26);" (call_expression "md5_finish_ctx(local_2130,pbVar26)" (identifier "md5_finish_ctx") (argument_list "(local_2130,pbVar26)" (( "(") (identifier "local_2130") (, ",") (identifier "pbVar26") () ")"))) (; ";")) (expression_statement "md5_process_bytes(pbVar27,pbVar30,local_2138);" (call_expression "md5_process_bytes(pbVar27,pbVar30,local_2138)" (identifier "md5_process_bytes") (argument_list "(pbVar27,pbVar30,local_2138)" (( "(") (identifier "pbVar27") (, ",") (identifier "pbVar30") (, ",") (identifier "local_2138") () ")"))) (; ";")) (expression_statement "md5_finish_ctx(local_2138,abStack_20bc);" (call_expression "md5_finish_ctx(local_2138,abStack_20bc)" (identifier "md5_finish_ctx") (argument_list "(local_2138,abStack_20bc)" (( "(") (identifier "local_2138") (, ",") (identifier "abStack_20bc") () ")"))) (; ";")) (expression_statement "uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);" (assignment_expression "uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10)" (identifier "uVar9") (= "=") (call_expression "(*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" (( "(") (pointer_expression "*(code *)PTR_memcmp_0003e52c" (* "*") (cast_expression "(code *)PTR_memcmp_0003e52c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcmp_0003e52c"))) () ")")) (argument_list "(pbVar26,abStack_20bc,0x10)" (( "(") (identifier "pbVar26") (, ",") (identifier "abStack_20bc") (, ",") (number_literal "0x10") () ")")))) (; ";")) (expression_statement "local_214c = (byte *)0x0;" (assignment_expression "local_214c = (byte *)0x0" (identifier "local_214c") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pbVar28 = pbVar18;" (assignment_expression "pbVar28 = pbVar18" (identifier "pbVar28") (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "pbVar22 = abStack_20bc;" (assignment_expression "pbVar22 = abStack_20bc" (identifier "pbVar22") (= "=") (identifier "abStack_20bc")) (; ";")) (expression_statement "pbVar29 = local_2138;" (assignment_expression "pbVar29 = local_2138" (identifier "pbVar29") (= "=") (identifier "local_2138")) (; ";")) (expression_statement "pbVar31 = pbVar24;" (assignment_expression "pbVar31 = pbVar24" (identifier "pbVar31") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "local_2150 = pbVar30;" (assignment_expression "local_2150 = pbVar30" (identifier "local_2150") (= "=") (identifier "pbVar30")) (; ";")) (expression_statement "local_213c = pbVar27;" (assignment_expression "local_213c = pbVar27" (identifier "local_213c") (= "=") (identifier "pbVar27")) (; ";")) (if_statement "if (uVar9 != 0) goto LAB_00018040;" (if "if") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00018040;" (goto "goto") (statement_identifier "LAB_00018040") (; ";"))) (goto_statement "goto LAB_00017ff4;" (goto "goto") (statement_identifier "LAB_00017ff4") (; ";")) (} "}"))) (expression_statement "local_2120 = pbVar24 + (int)pbVar18;" (assignment_expression "local_2120 = pbVar24 + (int)pbVar18" (identifier "local_2120") (= "=") (binary_expression "pbVar24 + (int)pbVar18" (identifier "pbVar24") (+ "+") (cast_expression "(int)pbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar18")))) (; ";")) (expression_statement "local_214c = (byte *)0x0;" (assignment_expression "local_214c = (byte *)0x0" (identifier "local_214c") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pbVar29 = abStack_fd4;" (assignment_expression "pbVar29 = abStack_fd4" (identifier "pbVar29") (= "=") (identifier "abStack_fd4")) (; ";")) (expression_statement "local_2158 = 0;" (assignment_expression "local_2158 = 0" (identifier "local_2158") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_211c = pbVar27 + (int)pbVar30;" (assignment_expression "local_211c = pbVar27 + (int)pbVar30" (identifier "local_211c") (= "=") (binary_expression "pbVar27 + (int)pbVar30" (identifier "pbVar27") (+ "+") (cast_expression "(int)pbVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar30")))) (; ";")) (expression_statement "local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);" (assignment_expression "local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2)" (identifier "local_2134") (= "=") (cast_expression "(byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)(pbVar18 + (int)pbVar30) * 3 + 2)" (( "(") (binary_expression "(int)(pbVar18 + (int)pbVar30) * 3 + 2" (binary_expression "(int)(pbVar18 + (int)pbVar30) * 3" (cast_expression "(int)(pbVar18 + (int)pbVar30)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar18 + (int)pbVar30)" (( "(") (binary_expression "pbVar18 + (int)pbVar30" (identifier "pbVar18") (+ "+") (cast_expression "(int)pbVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar30"))) () ")"))) (* "*") (number_literal "3")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "pbVar26 = (byte *)0xfa0;" (assignment_expression "pbVar26 = (byte *)0xfa0" (identifier "pbVar26") (= "=") (cast_expression "(byte *)0xfa0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfa0"))) (; ";")) (expression_statement "local_2150 = (byte *)(uint)(pbVar27 < local_211c);" (assignment_expression "local_2150 = (byte *)(uint)(pbVar27 < local_211c)" (identifier "local_2150") (= "=") (cast_expression "(byte *)(uint)(pbVar27 < local_211c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(pbVar27 < local_211c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar27 < local_211c)" (( "(") (binary_expression "pbVar27 < local_211c" (identifier "pbVar27") (< "<") (identifier "local_211c")) () ")"))))) (; ";")) (expression_statement "local_2118 = (byte *)0x55555555;" (assignment_expression "local_2118 = (byte *)0x55555555" (identifier "local_2118") (= "=") (cast_expression "(byte *)0x55555555" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x55555555"))) (; ";")) (expression_statement "pbVar31 = (byte *)(uint)(pbVar24 < local_2120);" (assignment_expression "pbVar31 = (byte *)(uint)(pbVar24 < local_2120)" (identifier "pbVar31") (= "=") (cast_expression "(byte *)(uint)(pbVar24 < local_2120)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(pbVar24 < local_2120)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar24 < local_2120)" (( "(") (binary_expression "pbVar24 < local_2120" (identifier "pbVar24") (< "<") (identifier "local_2120")) () ")"))))) (; ";")) (expression_statement "local_213c = pbVar24;" (assignment_expression "local_213c = pbVar24" (identifier "local_213c") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "local_2114 = piVar32;" (assignment_expression "local_2114 = piVar32" (identifier "local_2114") (= "=") (identifier "piVar32")) (; ";")) (expression_statement "local_2110 = pbVar24;" (assignment_expression "local_2110 = pbVar24" (identifier "local_2110") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "local_210c = pbVar27;" (assignment_expression "local_210c = pbVar27" (identifier "local_210c") (= "=") (identifier "pbVar27")) (; ";")) (expression_statement "local_2108 = pbVar18;" (assignment_expression "local_2108 = pbVar18" (identifier "local_2108") (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "local_2104 = pbVar30;" (assignment_expression "local_2104 = pbVar30" (identifier "local_2104") (= "=") (identifier "pbVar30")) (; ";")) (expression_statement "local_2100 = pbVar21;" (assignment_expression "local_2100 = pbVar21" (identifier "local_2100") (= "=") (identifier "pbVar21")) (; ";")) (expression_statement "local_20fc = pbVar20;" (assignment_expression "local_20fc = pbVar20" (identifier "local_20fc") (= "=") (identifier "pbVar20")) (; ";")) (expression_statement "local_20ec = pbVar29;" (assignment_expression "local_20ec = pbVar29" (identifier "local_20ec") (= "=") (identifier "pbVar29")) (; ";")) (goto_statement "goto LAB_00017c30;" (goto "goto") (statement_identifier "LAB_00017c30") (; ";")) (} "}"))) (if_statement "if (*(char *)(piVar32 + 8) != '\0') {\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }" (if "if") (parenthesized_expression "(*(char *)(piVar32 + 8) != '\0')" (( "(") (binary_expression "*(char *)(piVar32 + 8) != '\0'" (pointer_expression "*(char *)(piVar32 + 8)" (* "*") (cast_expression "(char *)(piVar32 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar32 + 8)" (( "(") (binary_expression "piVar32 + 8" (identifier "piVar32") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_2158 = filevercmp(pbVar24,pbVar27);\n          local_2150 = pbVar21;\n          local_214c = pbVar20;\n          goto LAB_000175d8;\n        }" ({ "{") (expression_statement "local_2158 = filevercmp(pbVar24,pbVar27);" (assignment_expression "local_2158 = filevercmp(pbVar24,pbVar27)" (identifier "local_2158") (= "=") (call_expression "filevercmp(pbVar24,pbVar27)" (identifier "filevercmp") (argument_list "(pbVar24,pbVar27)" (( "(") (identifier "pbVar24") (, ",") (identifier "pbVar27") () ")")))) (; ";")) (expression_statement "local_2150 = pbVar21;" (assignment_expression "local_2150 = pbVar21" (identifier "local_2150") (= "=") (identifier "pbVar21")) (; ";")) (expression_statement "local_214c = pbVar20;" (assignment_expression "local_214c = pbVar20" (identifier "local_214c") (= "=") (identifier "pbVar20")) (; ";")) (goto_statement "goto LAB_000175d8;" (goto "goto") (statement_identifier "LAB_000175d8") (; ";")) (} "}"))) (if_statement "if (pbVar18 == (byte *)0x0) {\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }" (if "if") (parenthesized_expression "(pbVar18 == (byte *)0x0)" (( "(") (binary_expression "pbVar18 == (byte *)0x0" (identifier "pbVar18") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          local_2158 = -(uint)(pbVar30 != (byte *)0x0);\n          goto LAB_000175d8;\n        }" ({ "{") (expression_statement "local_2158 = -(uint)(pbVar30 != (byte *)0x0);" (assignment_expression "local_2158 = -(uint)(pbVar30 != (byte *)0x0)" (identifier "local_2158") (= "=") (unary_expression "-(uint)(pbVar30 != (byte *)0x0)" (- "-") (call_expression "(uint)(pbVar30 != (byte *)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar30 != (byte *)0x0)" (( "(") (binary_expression "pbVar30 != (byte *)0x0" (identifier "pbVar30") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))))) (; ";")) (goto_statement "goto LAB_000175d8;" (goto "goto") (statement_identifier "LAB_000175d8") (; ";")) (} "}"))) (if_statement "if (pbVar30 == (byte *)0x0) goto LAB_000179f8;" (if "if") (parenthesized_expression "(pbVar30 == (byte *)0x0)" (( "(") (binary_expression "pbVar30 == (byte *)0x0" (identifier "pbVar30") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000179f8;" (goto "goto") (statement_identifier "LAB_000179f8") (; ";"))) (expression_statement "pbVar19 = pbVar30 + 1;" (assignment_expression "pbVar19 = pbVar30 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar30 + 1" (identifier "pbVar30") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar31 = pbVar18 + 1;" (assignment_expression "pbVar31 = pbVar18 + 1" (identifier "pbVar31") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar16 = pbVar27;" (assignment_expression "pbVar16 = pbVar27" (identifier "pbVar16") (= "=") (identifier "pbVar27")) (; ";")) (expression_statement "pcVar33 = (code *)PTR_xmemcoll0_0003e200;" (assignment_expression "pcVar33 = (code *)PTR_xmemcoll0_0003e200" (identifier "pcVar33") (= "=") (cast_expression "(code *)PTR_xmemcoll0_0003e200" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_xmemcoll0_0003e200"))) (; ";")) (goto_statement "goto LAB_000177ec;" (goto "goto") (statement_identifier "LAB_000177ec") (; ";")) (} "}"))) (expression_statement "cVar3 = puVar5[*pbVar24 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar24 - 0x15f0]" (identifier "cVar3") (= "=") (subscript_expression "puVar5[*pbVar24 - 0x15f0]" (identifier "puVar5") ([ "[") (binary_expression "*pbVar24 - 0x15f0" (pointer_expression "*pbVar24" (* "*") (identifier "pbVar24")) (- "-") (number_literal "0x15f0")) (] "]"))) (; ";")) (while_statement "while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }" (while "while") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }" ({ "{") (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + 1" (identifier "pbVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar3 = puVar5[*pbVar22 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar22 - 0x15f0]" (identifier "cVar3") (= "=") (subscript_expression "puVar5[*pbVar22 - 0x15f0]" (identifier "puVar5") ([ "[") (binary_expression "*pbVar22 - 0x15f0" (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")) (- "-") (number_literal "0x15f0")) (] "]"))) (; ";")) (} "}"))) (expression_statement "cVar3 = puVar5[*pbVar27 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar27 - 0x15f0]" (identifier "cVar3") (= "=") (subscript_expression "puVar5[*pbVar27 - 0x15f0]" (identifier "puVar5") ([ "[") (binary_expression "*pbVar27 - 0x15f0" (pointer_expression "*pbVar27" (* "*") (identifier "pbVar27")) (- "-") (number_literal "0x15f0")) (] "]"))) (; ";")) (while_statement "while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }" (while "while") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }" ({ "{") (expression_statement "pbVar31 = pbVar31 + 1;" (assignment_expression "pbVar31 = pbVar31 + 1" (identifier "pbVar31") (= "=") (binary_expression "pbVar31 + 1" (identifier "pbVar31") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar3 = puVar5[*pbVar31 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar31 - 0x15f0]" (identifier "cVar3") (= "=") (subscript_expression "puVar5[*pbVar31 - 0x15f0]" (identifier "puVar5") ([ "[") (binary_expression "*pbVar31 - 0x15f0" (pointer_expression "*pbVar31" (* "*") (identifier "pbVar31")) (- "-") (number_literal "0x15f0")) (] "]"))) (; ";")) (} "}"))) (expression_statement "pbVar29 = PTR_0003e1b4 + 0x6090;" (assignment_expression "pbVar29 = PTR_0003e1b4 + 0x6090" (identifier "pbVar29") (= "=") (binary_expression "PTR_0003e1b4 + 0x6090" (identifier "PTR_0003e1b4") (+ "+") (number_literal "0x6090"))) (; ";")) (expression_statement "iVar23 = FUN_00016090(pbVar22);" (assignment_expression "iVar23 = FUN_00016090(pbVar22)" (identifier "iVar23") (= "=") (call_expression "FUN_00016090(pbVar22)" (identifier "FUN_00016090") (argument_list "(pbVar22)" (( "(") (identifier "pbVar22") () ")")))) (; ";")) (expression_statement "iVar25 = FUN_00016090(pbVar31);" (assignment_expression "iVar25 = FUN_00016090(pbVar31)" (identifier "iVar25") (= "=") (call_expression "FUN_00016090(pbVar31)" (identifier "FUN_00016090") (argument_list "(pbVar31)" (( "(") (identifier "pbVar31") () ")")))) (; ";")) (expression_statement "local_2158 = iVar23 - iVar25;" (assignment_expression "local_2158 = iVar23 - iVar25" (identifier "local_2158") (= "=") (binary_expression "iVar23 - iVar25" (identifier "iVar23") (- "-") (identifier "iVar25"))) (; ";")) (expression_statement "pbVar26 = pbVar22;" (assignment_expression "pbVar26 = pbVar22" (identifier "pbVar26") (= "=") (identifier "pbVar22")) (; ";")) (expression_statement "pbVar28 = pbVar31;" (assignment_expression "pbVar28 = pbVar31" (identifier "pbVar28") (= "=") (identifier "pbVar31")) (; ";")) (expression_statement "local_2150 = pbVar21;" (assignment_expression "local_2150 = pbVar21" (identifier "local_2150") (= "=") (identifier "pbVar21")) (; ";")) (expression_statement "local_214c = pbVar20;" (assignment_expression "local_214c = pbVar20" (identifier "local_214c") (= "=") (identifier "pbVar20")) (; ";")) (if_statement "if (local_2158 != 0) goto LAB_000175d8;" (if "if") (parenthesized_expression "(local_2158 != 0)" (( "(") (binary_expression "local_2158 != 0" (identifier "local_2158") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000175d8;" (goto "goto") (statement_identifier "LAB_000175d8") (; ";"))) (} "}")) (else_clause "else {\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }" (else "else") (compound_statement "{\n      cVar3 = puVar5[*pbVar24 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }\n      cVar3 = puVar5[*pbVar27 - 0x15f0];\n      while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }\n    }" ({ "{") (expression_statement "cVar3 = puVar5[*pbVar24 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar24 - 0x15f0]" (identifier "cVar3") (= "=") (subscript_expression "puVar5[*pbVar24 - 0x15f0]" (identifier "puVar5") ([ "[") (binary_expression "*pbVar24 - 0x15f0" (pointer_expression "*pbVar24" (* "*") (identifier "pbVar24")) (- "-") (number_literal "0x15f0")) (] "]"))) (; ";")) (while_statement "while (cVar3 != '\0') {\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }" (while "while") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        pbVar22 = pbVar22 + 1;\n        cVar3 = puVar5[*pbVar22 - 0x15f0];\n      }" ({ "{") (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + 1" (identifier "pbVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar3 = puVar5[*pbVar22 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar22 - 0x15f0]" (identifier "cVar3") (= "=") (subscript_expression "puVar5[*pbVar22 - 0x15f0]" (identifier "puVar5") ([ "[") (binary_expression "*pbVar22 - 0x15f0" (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")) (- "-") (number_literal "0x15f0")) (] "]"))) (; ";")) (} "}"))) (expression_statement "cVar3 = puVar5[*pbVar27 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar27 - 0x15f0]" (identifier "cVar3") (= "=") (subscript_expression "puVar5[*pbVar27 - 0x15f0]" (identifier "puVar5") ([ "[") (binary_expression "*pbVar27 - 0x15f0" (pointer_expression "*pbVar27" (* "*") (identifier "pbVar27")) (- "-") (number_literal "0x15f0")) (] "]"))) (; ";")) (while_statement "while (cVar3 != '\0') {\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }" (while "while") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        pbVar31 = pbVar31 + 1;\n        cVar3 = puVar5[*pbVar31 - 0x15f0];\n      }" ({ "{") (expression_statement "pbVar31 = pbVar31 + 1;" (assignment_expression "pbVar31 = pbVar31 + 1" (identifier "pbVar31") (= "=") (binary_expression "pbVar31 + 1" (identifier "pbVar31") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar3 = puVar5[*pbVar31 - 0x15f0];" (assignment_expression "cVar3 = puVar5[*pbVar31 - 0x15f0]" (identifier "cVar3") (= "=") (subscript_expression "puVar5[*pbVar31 - 0x15f0]" (identifier "puVar5") ([ "[") (binary_expression "*pbVar31 - 0x15f0" (pointer_expression "*pbVar31" (* "*") (identifier "pbVar31")) (- "-") (number_literal "0x15f0")) (] "]"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);" (assignment_expression "pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc)" (identifier "pbVar19") (= "=") (pointer_expression "*(byte **)(PTR_DAT_0003e1a8 + -0x14dc)" (* "*") (cast_expression "(byte **)(PTR_DAT_0003e1a8 + -0x14dc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0003e1a8 + -0x14dc)" (( "(") (binary_expression "PTR_DAT_0003e1a8 + -0x14dc" (identifier "PTR_DAT_0003e1a8") (+ "+") (number_literal "-0x14dc")) () ")"))))) (; ";")) (expression_statement "pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);" (assignment_expression "pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8)" (identifier "pbVar16") (= "=") (pointer_expression "*(byte **)(PTR_DAT_0003e1a8 + -0x14d8)" (* "*") (cast_expression "(byte **)(PTR_DAT_0003e1a8 + -0x14d8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_0003e1a8 + -0x14d8)" (( "(") (binary_expression "PTR_DAT_0003e1a8 + -0x14d8" (identifier "PTR_DAT_0003e1a8") (+ "+") (number_literal "-0x14d8")) () ")"))))) (; ";")) (expression_statement "pcVar33 = (code *)PTR_strnumcmp_0003e1f0;" (assignment_expression "pcVar33 = (code *)PTR_strnumcmp_0003e1f0" (identifier "pcVar33") (= "=") (cast_expression "(code *)PTR_strnumcmp_0003e1f0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strnumcmp_0003e1f0"))) (; ";")) (labeled_statement "LAB_000177ec:\n    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);" (statement_identifier "LAB_000177ec") (: ":") (expression_statement "local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);" (assignment_expression "local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19)" (identifier "local_2158") (= "=") (call_expression "(*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19)" (parenthesized_expression "(*pcVar33)" (( "(") (pointer_expression "*pcVar33" (* "*") (identifier "pcVar33")) () ")")) (argument_list "(pbVar22,pbVar31,pbVar16,pbVar19)" (( "(") (identifier "pbVar22") (, ",") (identifier "pbVar31") (, ",") (identifier "pbVar16") (, ",") (identifier "pbVar19") () ")")))) (; ";"))) (expression_statement "local_2150 = pbVar21;" (assignment_expression "local_2150 = pbVar21" (identifier "local_2150") (= "=") (identifier "pbVar21")) (; ";")) (expression_statement "local_214c = pbVar20;" (assignment_expression "local_214c = pbVar20" (identifier "local_214c") (= "=") (identifier "pbVar20")) (; ";")) (if_statement "if (pbVar20 != (byte *)0x0) goto LAB_000175e4;" (if "if") (parenthesized_expression "(pbVar20 != (byte *)0x0)" (( "(") (binary_expression "pbVar20 != (byte *)0x0" (identifier "pbVar20") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000175e4;" (goto "goto") (statement_identifier "LAB_000175e4") (; ";"))) (labeled_statement "LAB_00017808:\n    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;" (statement_identifier "LAB_00017808") (: ":") (if_statement "if (pbVar21 != (byte *)0x0) goto LAB_000175e4;" (if "if") (parenthesized_expression "(pbVar21 != (byte *)0x0)" (( "(") (binary_expression "pbVar21 != (byte *)0x0" (identifier "pbVar21") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000175e4;" (goto "goto") (statement_identifier "LAB_000175e4") (; ";")))) (expression_statement "pbVar24[(int)pbVar18] = bVar1;" (assignment_expression "pbVar24[(int)pbVar18] = bVar1" (subscript_expression "pbVar24[(int)pbVar18]" (identifier "pbVar24") ([ "[") (cast_expression "(int)pbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar18")) (] "]")) (= "=") (identifier "bVar1")) (; ";")) (expression_statement "pbVar27[(int)pbVar30] = bVar2;" (assignment_expression "pbVar27[(int)pbVar30] = bVar2" (subscript_expression "pbVar27[(int)pbVar30]" (identifier "pbVar27") ([ "[") (cast_expression "(int)pbVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar30")) (] "]")) (= "=") (identifier "bVar2")) (; ";")) (expression_statement "pbVar27 = pbVar18;" (assignment_expression "pbVar27 = pbVar18" (identifier "pbVar27") (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "pbVar31 = pbVar30;" (assignment_expression "pbVar31 = pbVar30" (identifier "pbVar31") (= "=") (identifier "pbVar30")) (; ";")) (labeled_statement "joined_r0x0001782c:\n    do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );" (statement_identifier "joined_r0x0001782c") (: ":") (do_statement "do {\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    } while( true );" (do "do") (compound_statement "{\n      if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }\n      if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }\n      (*(code *)PTR___stack_chk_fail_0003e518)();\nLAB_00017dc0:\n      iVar23 = (*pcVar11)();\n      pbVar18 = (byte *)(iVar23 + 1);\n      pbVar22 = pbVar18 + (int)pbVar28;\n      if (piVar32 == (int *)0x0) goto LAB_00018174;\nLAB_00017de0:\n      pbVar26 = pbVar22;\n      if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar24 = (byte *)xmalloc(pbVar26);\n      if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }\n      pbVar22 = pbVar24 + (int)pbVar28;\n      local_214c = pbVar24;\n      if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }\n      if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }\n      local_213c = pbVar22;\n      local_2150 = pbVar18;\n      local_211c = local_20fc;\n      local_2120 = local_2100;\n      md5_process_bytes(pbVar24,pbVar28,local_2130);\n      pbVar26 = abStack_20cc;\n      md5_finish_ctx(local_2130,pbVar26);\n      md5_process_bytes(local_213c,local_2150,local_2138);\n      md5_finish_ctx(local_2138,abStack_20bc);\n      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);\n      pbVar20 = local_20fc;\n      pbVar21 = local_2100;\n      pbVar18 = local_2108;\n      pbVar22 = pbVar28;\n      pbVar29 = pbVar24;\n      pbVar30 = local_2104;\n      pbVar31 = local_2110;\n      pbVar27 = local_210c;\n      piVar32 = local_2114;\n      local_2134 = abStack_20bc;\n      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }\nLAB_00018040:\n      local_2158 = uVar9;\n      pbVar24 = pbVar31;\n      (*(code *)PTR_free_0003e558)(local_214c);\n      pbVar28 = pbVar22;\n      local_2150 = pbVar21;\n      local_213c = pbVar20;\nLAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;\nLAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);\n      pbVar27 = pbVar18;\n      pbVar31 = pbVar30;\n    }" ({ "{") (if_statement "if (local_2158 == 0) {\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }\n      else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }" (if "if") (parenthesized_expression "(local_2158 == 0)" (( "(") (binary_expression "local_2158 == 0" (identifier "local_2158") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        piVar32 = (int *)piVar32[9];\n        if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }\n      }" ({ "{") (expression_statement "piVar32 = (int *)piVar32[9];" (assignment_expression "piVar32 = (int *)piVar32[9]" (identifier "piVar32") (= "=") (cast_expression "(int *)piVar32[9]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar32[9]" (identifier "piVar32") ([ "[") (number_literal "9") (] "]")))) (; ";")) (if_statement "if (piVar32 != (int *)0x0) {\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }" (if "if") (parenthesized_expression "(piVar32 != (int *)0x0)" (( "(") (binary_expression "piVar32 != (int *)0x0" (identifier "piVar32") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pbVar29 = (byte *)*param_1;\n          iVar25 = param_1[1];\n          pbVar28 = (byte *)*param_2;\n          iVar23 = param_2[1];\n          if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }\n          if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }\n          bVar4 = pbVar29 < pbVar22;\n          pbVar26 = pbVar28;\n          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;\n          pbVar18 = pbVar29;\n          if (pbVar22 <= pbVar29) goto LAB_000178f8;\n          goto LAB_000178dc;\n        }" ({ "{") (expression_statement "pbVar29 = (byte *)*param_1;" (assignment_expression "pbVar29 = (byte *)*param_1" (identifier "pbVar29") (= "=") (cast_expression "(byte *)*param_1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "iVar25 = param_1[1];" (assignment_expression "iVar25 = param_1[1]" (identifier "iVar25") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar28 = (byte *)*param_2;" (assignment_expression "pbVar28 = (byte *)*param_2" (identifier "pbVar28") (= "=") (cast_expression "(byte *)*param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "iVar23 = param_2[1];" (assignment_expression "iVar23 = param_2[1]" (identifier "iVar23") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (piVar32[2] == -1) {\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }\n          else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }" (if "if") (parenthesized_expression "(piVar32[2] == -1)" (( "(") (binary_expression "piVar32[2] == -1" (subscript_expression "piVar32[2]" (identifier "piVar32") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            iVar13 = *piVar32;\n            pbVar22 = pbVar29 + iVar25 + -1;\n            pbVar24 = pbVar28 + iVar23 + -1;\n          }" ({ "{") (expression_statement "iVar13 = *piVar32;" (assignment_expression "iVar13 = *piVar32" (identifier "iVar13") (= "=") (pointer_expression "*piVar32" (* "*") (identifier "piVar32"))) (; ";")) (expression_statement "pbVar22 = pbVar29 + iVar25 + -1;" (assignment_expression "pbVar22 = pbVar29 + iVar25 + -1" (identifier "pbVar22") (= "=") (binary_expression "pbVar29 + iVar25 + -1" (binary_expression "pbVar29 + iVar25" (identifier "pbVar29") (+ "+") (identifier "iVar25")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pbVar24 = pbVar28 + iVar23 + -1;" (assignment_expression "pbVar24 = pbVar28 + iVar23 + -1" (identifier "pbVar24") (= "=") (binary_expression "pbVar28 + iVar23 + -1" (binary_expression "pbVar28 + iVar23" (identifier "pbVar28") (+ "+") (identifier "iVar23")) (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (else_clause "else {\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }" (else "else") (compound_statement "{\n            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);\n            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);\n            iVar13 = *piVar32;\n          }" ({ "{") (expression_statement "pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);" (assignment_expression "pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32)" (identifier "pbVar22") (= "=") (cast_expression "(byte *)FUN_000171d0(pbVar29,iVar25,piVar32)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000171d0(pbVar29,iVar25,piVar32)" (identifier "FUN_000171d0") (argument_list "(pbVar29,iVar25,piVar32)" (( "(") (identifier "pbVar29") (, ",") (identifier "iVar25") (, ",") (identifier "piVar32") () ")"))))) (; ";")) (expression_statement "pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);" (assignment_expression "pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23)" (identifier "pbVar24") (= "=") (cast_expression "(byte *)FUN_000171d0(pbVar28,iVar23)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000171d0(pbVar28,iVar23)" (identifier "FUN_000171d0") (argument_list "(pbVar28,iVar23)" (( "(") (identifier "pbVar28") (, ",") (identifier "iVar23") () ")"))))) (; ";")) (expression_statement "iVar13 = *piVar32;" (assignment_expression "iVar13 = *piVar32" (identifier "iVar13") (= "=") (pointer_expression "*piVar32" (* "*") (identifier "piVar32"))) (; ";")) (} "}")))) (if_statement "if (iVar13 != -1) {\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }" (if "if") (parenthesized_expression "(iVar13 != -1)" (( "(") (binary_expression "iVar13 != -1" (identifier "iVar13") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);\n            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);\n            goto LAB_0001743c;\n          }" ({ "{") (expression_statement "pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);" (assignment_expression "pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32)" (identifier "pbVar29") (= "=") (cast_expression "(byte *)FUN_00017028(pbVar29,iVar25,piVar32)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00017028(pbVar29,iVar25,piVar32)" (identifier "FUN_00017028") (argument_list "(pbVar29,iVar25,piVar32)" (( "(") (identifier "pbVar29") (, ",") (identifier "iVar25") (, ",") (identifier "piVar32") () ")"))))) (; ";")) (expression_statement "pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);" (assignment_expression "pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23)" (identifier "pbVar26") (= "=") (cast_expression "(byte *)FUN_00017028(pbVar28,iVar23)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00017028(pbVar28,iVar23)" (identifier "FUN_00017028") (argument_list "(pbVar28,iVar23)" (( "(") (identifier "pbVar28") (, ",") (identifier "iVar23") () ")"))))) (; ";")) (goto_statement "goto LAB_0001743c;" (goto "goto") (statement_identifier "LAB_0001743c") (; ";")) (} "}"))) (expression_statement "bVar4 = pbVar29 < pbVar22;" (assignment_expression "bVar4 = pbVar29 < pbVar22" (identifier "bVar4") (= "=") (binary_expression "pbVar29 < pbVar22" (identifier "pbVar29") (< "<") (identifier "pbVar22"))) (; ";")) (expression_statement "pbVar26 = pbVar28;" (assignment_expression "pbVar26 = pbVar28" (identifier "pbVar26") (= "=") (identifier "pbVar28")) (; ";")) (if_statement "if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;" (if "if") (parenthesized_expression "(*(char *)(piVar32 + 6) == '\0')" (( "(") (binary_expression "*(char *)(piVar32 + 6) == '\0'" (pointer_expression "*(char *)(piVar32 + 6)" (* "*") (cast_expression "(char *)(piVar32 + 6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar32 + 6)" (( "(") (binary_expression "piVar32 + 6" (identifier "piVar32") (+ "+") (number_literal "6")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00017440;" (goto "goto") (statement_identifier "LAB_00017440") (; ";"))) (expression_statement "pbVar18 = pbVar29;" (assignment_expression "pbVar18 = pbVar29" (identifier "pbVar18") (= "=") (identifier "pbVar29")) (; ";")) (if_statement "if (pbVar22 <= pbVar29) goto LAB_000178f8;" (if "if") (parenthesized_expression "(pbVar22 <= pbVar29)" (( "(") (binary_expression "pbVar22 <= pbVar29" (identifier "pbVar22") (<= "<=") (identifier "pbVar29")) () ")")) (goto_statement "goto LAB_000178f8;" (goto "goto") (statement_identifier "LAB_000178f8") (; ";"))) (goto_statement "goto LAB_000178dc;" (goto "goto") (statement_identifier "LAB_000178dc") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }" (else "else") (compound_statement "{\nLAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }\n      }" ({ "{") (labeled_statement "LAB_00017838:\n        if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }" (statement_identifier "LAB_00017838") (: ":") (if_statement "if (*(char *)((int)piVar32 + 0x1f) != '\0') {\n          local_2158 = -local_2158;\n        }" (if "if") (parenthesized_expression "(*(char *)((int)piVar32 + 0x1f) != '\0')" (( "(") (binary_expression "*(char *)((int)piVar32 + 0x1f) != '\0'" (pointer_expression "*(char *)((int)piVar32 + 0x1f)" (* "*") (cast_expression "(char *)((int)piVar32 + 0x1f)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar32 + 0x1f)" (( "(") (binary_expression "(int)piVar32 + 0x1f" (cast_expression "(int)piVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar32")) (+ "+") (number_literal "0x1f")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_2158 = -local_2158;\n        }" ({ "{") (expression_statement "local_2158 = -local_2158;" (assignment_expression "local_2158 = -local_2158" (identifier "local_2158") (= "=") (unary_expression "-local_2158" (- "-") (identifier "local_2158"))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (local_34 == *(int *)puVar6) {\n        return local_2158;\n      }" (if "if") (parenthesized_expression "(local_34 == *(int *)puVar6)" (( "(") (binary_expression "local_34 == *(int *)puVar6" (identifier "local_34") (== "==") (pointer_expression "*(int *)puVar6" (* "*") (cast_expression "(int *)puVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6")))) () ")")) (compound_statement "{\n        return local_2158;\n      }" ({ "{") (return_statement "return local_2158;" (return "return") (identifier "local_2158") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___stack_chk_fail_0003e518)();" (call_expression "(*(code *)PTR___stack_chk_fail_0003e518)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0003e518)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0003e518" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0003e518" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0003e518"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00017dc0:\n      iVar23 = (*pcVar11)();" (statement_identifier "LAB_00017dc0") (: ":") (expression_statement "iVar23 = (*pcVar11)();" (assignment_expression "iVar23 = (*pcVar11)()" (identifier "iVar23") (= "=") (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "pbVar18 = (byte *)(iVar23 + 1);" (assignment_expression "pbVar18 = (byte *)(iVar23 + 1)" (identifier "pbVar18") (= "=") (cast_expression "(byte *)(iVar23 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 1)" (( "(") (binary_expression "iVar23 + 1" (identifier "iVar23") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pbVar22 = pbVar18 + (int)pbVar28;" (assignment_expression "pbVar22 = pbVar18 + (int)pbVar28" (identifier "pbVar22") (= "=") (binary_expression "pbVar18 + (int)pbVar28" (identifier "pbVar18") (+ "+") (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")))) (; ";")) (if_statement "if (piVar32 == (int *)0x0) goto LAB_00018174;" (if "if") (parenthesized_expression "(piVar32 == (int *)0x0)" (( "(") (binary_expression "piVar32 == (int *)0x0" (identifier "piVar32") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00018174;" (goto "goto") (statement_identifier "LAB_00018174") (; ";"))) (labeled_statement "LAB_00017de0:\n      pbVar26 = pbVar22;" (statement_identifier "LAB_00017de0") (: ":") (expression_statement "pbVar26 = pbVar22;" (assignment_expression "pbVar26 = pbVar22" (identifier "pbVar26") (= "=") (identifier "pbVar22")) (; ";"))) (if_statement "if (pbVar26 < local_2118) {\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }" (if "if") (parenthesized_expression "(pbVar26 < local_2118)" (( "(") (binary_expression "pbVar26 < local_2118" (identifier "pbVar26") (< "<") (identifier "local_2118")) () ")")) (compound_statement "{\n        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n      }" ({ "{") (expression_statement "pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);" (assignment_expression "pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1)" (identifier "pbVar26") (= "=") (cast_expression "(byte *)((uint)((int)pbVar26 * 3) >> 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)((int)pbVar26 * 3) >> 1)" (( "(") (binary_expression "(uint)((int)pbVar26 * 3) >> 1" (call_expression "(uint)((int)pbVar26 * 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar26 * 3)" (( "(") (binary_expression "(int)pbVar26 * 3" (cast_expression "(int)pbVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar26")) (* "*") (number_literal "3")) () ")"))) (>> ">>") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_0003e558)(local_214c);" (call_expression "(*(code *)PTR_free_0003e558)(local_214c)" (parenthesized_expression "(*(code *)PTR_free_0003e558)" (( "(") (pointer_expression "*(code *)PTR_free_0003e558" (* "*") (cast_expression "(code *)PTR_free_0003e558" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003e558"))) () ")")) (argument_list "(local_214c)" (( "(") (identifier "local_214c") () ")"))) (; ";")) (expression_statement "pbVar24 = (byte *)xmalloc(pbVar26);" (assignment_expression "pbVar24 = (byte *)xmalloc(pbVar26)" (identifier "pbVar24") (= "=") (cast_expression "(byte *)xmalloc(pbVar26)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(pbVar26)" (identifier "xmalloc") (argument_list "(pbVar26)" (( "(") (identifier "pbVar26") () ")"))))) (; ";")) (if_statement "if (pbVar31 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }" (if "if") (parenthesized_expression "(pbVar31 != (byte *)0x0)" (( "(") (binary_expression "pbVar31 != (byte *)0x0" (identifier "pbVar31") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);\n      }" ({ "{") (expression_statement "(*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);" (call_expression "(*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28)" (parenthesized_expression "(*(code *)PTR_strxfrm_0003e464)" (( "(") (pointer_expression "*(code *)PTR_strxfrm_0003e464" (* "*") (cast_expression "(code *)PTR_strxfrm_0003e464" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strxfrm_0003e464"))) () ")")) (argument_list "(pbVar24,local_213c,pbVar28)" (( "(") (identifier "pbVar24") (, ",") (identifier "local_213c") (, ",") (identifier "pbVar28") () ")"))) (; ";")) (} "}"))) (expression_statement "pbVar22 = pbVar24 + (int)pbVar28;" (assignment_expression "pbVar22 = pbVar24 + (int)pbVar28" (identifier "pbVar22") (= "=") (binary_expression "pbVar24 + (int)pbVar28" (identifier "pbVar24") (+ "+") (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")))) (; ";")) (expression_statement "local_214c = pbVar24;" (assignment_expression "local_214c = pbVar24" (identifier "local_214c") (= "=") (identifier "pbVar24")) (; ";")) (if_statement "if (local_2150 != (byte *)0x0) {\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }" (if "if") (parenthesized_expression "(local_2150 != (byte *)0x0)" (( "(") (binary_expression "local_2150 != (byte *)0x0" (identifier "local_2150") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);\n        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\n        goto LAB_00017c8c;\n      }" ({ "{") (expression_statement "(*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);" (call_expression "(*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18)" (parenthesized_expression "(*(code *)PTR_strxfrm_0003e464)" (( "(") (pointer_expression "*(code *)PTR_strxfrm_0003e464" (* "*") (cast_expression "(code *)PTR_strxfrm_0003e464" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strxfrm_0003e464"))) () ")")) (argument_list "(pbVar22,pbVar27,pbVar18)" (( "(") (identifier "pbVar22") (, ",") (identifier "pbVar27") (, ",") (identifier "pbVar18") () ")"))) (; ";")) (if_statement "if (pbVar31 == (byte *)0x0) goto LAB_0001809c;" (if "if") (parenthesized_expression "(pbVar31 == (byte *)0x0)" (( "(") (binary_expression "pbVar31 == (byte *)0x0" (identifier "pbVar31") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001809c;" (goto "goto") (statement_identifier "LAB_0001809c") (; ";"))) (expression_statement "iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);" (assignment_expression "iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c)" (identifier "iVar23") (= "=") (call_expression "(*(code *)PTR_strlen_0003e488)(local_213c)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" (( "(") (pointer_expression "*(code *)PTR_strlen_0003e488" (* "*") (cast_expression "(code *)PTR_strlen_0003e488" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0003e488"))) () ")")) (argument_list "(local_213c)" (( "(") (identifier "local_213c") () ")")))) (; ";")) (expression_statement "local_213c = local_213c + iVar23 + 1;" (assignment_expression "local_213c = local_213c + iVar23 + 1" (identifier "local_213c") (= "=") (binary_expression "local_213c + iVar23 + 1" (binary_expression "local_213c + iVar23" (identifier "local_213c") (+ "+") (identifier "iVar23")) (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_00017c8c;" (goto "goto") (statement_identifier "LAB_00017c8c") (; ";")) (} "}"))) (if_statement "if (pbVar31 != (byte *)0x0) {\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }" (if "if") (parenthesized_expression "(pbVar31 != (byte *)0x0)" (( "(") (binary_expression "pbVar31 != (byte *)0x0" (identifier "pbVar31") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n        local_213c = local_213c + iVar23 + 1;\nLAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }\n      }" ({ "{") (expression_statement "iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);" (assignment_expression "iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c)" (identifier "iVar23") (= "=") (call_expression "(*(code *)PTR_strlen_0003e488)(local_213c)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" (( "(") (pointer_expression "*(code *)PTR_strlen_0003e488" (* "*") (cast_expression "(code *)PTR_strlen_0003e488" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0003e488"))) () ")")) (argument_list "(local_213c)" (( "(") (identifier "local_213c") () ")")))) (; ";")) (expression_statement "local_213c = local_213c + iVar23 + 1;" (assignment_expression "local_213c = local_213c + iVar23 + 1" (identifier "local_213c") (= "=") (binary_expression "local_213c + iVar23 + 1" (binary_expression "local_213c + iVar23" (identifier "local_213c") (+ "+") (identifier "iVar23")) (+ "+") (number_literal "1"))) (; ";")) (labeled_statement "LAB_00017f2c:\n        if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }" (statement_identifier "LAB_00017f2c") (: ":") (if_statement "if (local_213c < local_2120) {\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }" (if "if") (parenthesized_expression "(local_213c < local_2120)" (( "(") (binary_expression "local_213c < local_2120" (identifier "local_213c") (< "<") (identifier "local_2120")) () ")")) (compound_statement "{\n          pbVar31 = (byte *)(uint)(local_213c < local_2120);\n          pbVar29 = pbVar24;\nLAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );\n        }" ({ "{") (expression_statement "pbVar31 = (byte *)(uint)(local_213c < local_2120);" (assignment_expression "pbVar31 = (byte *)(uint)(local_213c < local_2120)" (identifier "pbVar31") (= "=") (cast_expression "(byte *)(uint)(local_213c < local_2120)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(local_213c < local_2120)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_213c < local_2120)" (( "(") (binary_expression "local_213c < local_2120" (identifier "local_213c") (< "<") (identifier "local_2120")) () ")"))))) (; ";")) (expression_statement "pbVar29 = pbVar24;" (assignment_expression "pbVar29 = pbVar24" (identifier "pbVar29") (= "=") (identifier "pbVar24")) (; ";")) (labeled_statement "LAB_00017cc8:\n          do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );" (statement_identifier "LAB_00017cc8") (: ":") (do_statement "do {\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          } while( true );" (do "do") (compound_statement "{\n            md5_process_bytes(pbVar29,pbVar28,local_2130);\n            md5_process_bytes(pbVar22,pbVar18,local_2138);\n            if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }\n            pbVar22 = pbVar24 + (int)pbVar28;\n            if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }\n            local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n            pbVar29 = pbVar24;\n            if (local_211c <= pbVar27) break;\n          }" ({ "{") (expression_statement "md5_process_bytes(pbVar29,pbVar28,local_2130);" (call_expression "md5_process_bytes(pbVar29,pbVar28,local_2130)" (identifier "md5_process_bytes") (argument_list "(pbVar29,pbVar28,local_2130)" (( "(") (identifier "pbVar29") (, ",") (identifier "pbVar28") (, ",") (identifier "local_2130") () ")"))) (; ";")) (expression_statement "md5_process_bytes(pbVar22,pbVar18,local_2138);" (call_expression "md5_process_bytes(pbVar22,pbVar18,local_2138)" (identifier "md5_process_bytes") (argument_list "(pbVar22,pbVar18,local_2138)" (( "(") (identifier "pbVar22") (, ",") (identifier "pbVar18") (, ",") (identifier "local_2138") () ")"))) (; ";")) (if_statement "if (local_2158 == 0) {\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }\n            else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }" (if "if") (parenthesized_expression "(local_2158 == 0)" (( "(") (binary_expression "local_2158 == 0" (identifier "local_2158") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              pbVar24 = pbVar18;\n              if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }\n              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);\n              if (local_2158 != 0) goto LAB_00017c30;\n              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);\n              if (pbVar26 < local_2134) goto LAB_00017d44;\nLAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;\nLAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);\n              pbVar28 = (byte *)(iVar23 + 1);\n              if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }\n              pbVar18 = (byte *)0x0;\n              pbVar22 = pbVar28;\n              if (pbVar26 < pbVar28) goto LAB_00017de0;\nLAB_00018174:\n              pbVar24 = pbVar29;\n              if (pbVar26 < pbVar22) goto LAB_00017de0;\n            }" ({ "{") (expression_statement "pbVar24 = pbVar18;" (assignment_expression "pbVar24 = pbVar18" (identifier "pbVar24") (= "=") (identifier "pbVar18")) (; ";")) (if_statement "if (pbVar18 < pbVar28 == 0) {\n                pbVar24 = pbVar28;\n              }" (if "if") (parenthesized_expression "(pbVar18 < pbVar28 == 0)" (( "(") (binary_expression "pbVar18 < pbVar28 == 0" (binary_expression "pbVar18 < pbVar28" (identifier "pbVar18") (< "<") (identifier "pbVar28")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                pbVar24 = pbVar28;\n              }" ({ "{") (expression_statement "pbVar24 = pbVar28;" (assignment_expression "pbVar24 = pbVar28" (identifier "pbVar24") (= "=") (identifier "pbVar28")) (; ";")) (} "}"))) (expression_statement "local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);" (assignment_expression "local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24)" (identifier "local_2158") (= "=") (call_expression "(*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" (( "(") (pointer_expression "*(code *)PTR_memcmp_0003e52c" (* "*") (cast_expression "(code *)PTR_memcmp_0003e52c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcmp_0003e52c"))) () ")")) (argument_list "(pbVar29,pbVar22,pbVar24)" (( "(") (identifier "pbVar29") (, ",") (identifier "pbVar22") (, ",") (identifier "pbVar24") () ")")))) (; ";")) (if_statement "if (local_2158 != 0) goto LAB_00017c30;" (if "if") (parenthesized_expression "(local_2158 != 0)" (( "(") (binary_expression "local_2158 != 0" (identifier "local_2158") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017c30;" (goto "goto") (statement_identifier "LAB_00017c30") (; ";"))) (expression_statement "local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);" (assignment_expression "local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18)" (identifier "local_2158") (= "=") (binary_expression "(uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18)" (call_expression "(uint)(pbVar18 < pbVar28)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar18 < pbVar28)" (( "(") (binary_expression "pbVar18 < pbVar28" (identifier "pbVar18") (< "<") (identifier "pbVar28")) () ")"))) (- "-") (call_expression "(uint)(pbVar28 < pbVar18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar28 < pbVar18)" (( "(") (binary_expression "pbVar28 < pbVar18" (identifier "pbVar28") (< "<") (identifier "pbVar18")) () ")"))))) (; ";")) (if_statement "if (pbVar26 < local_2134) goto LAB_00017d44;" (if "if") (parenthesized_expression "(pbVar26 < local_2134)" (( "(") (binary_expression "pbVar26 < local_2134" (identifier "pbVar26") (< "<") (identifier "local_2134")) () ")")) (goto_statement "goto LAB_00017d44;" (goto "goto") (statement_identifier "LAB_00017d44") (; ";"))) (labeled_statement "LAB_00017c40:\n              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;" (statement_identifier "LAB_00017c40") (: ":") (if_statement "if (pbVar31 == (byte *)0x0) goto LAB_00017c48;" (if "if") (parenthesized_expression "(pbVar31 == (byte *)0x0)" (( "(") (binary_expression "pbVar31 == (byte *)0x0" (identifier "pbVar31") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00017c48;" (goto "goto") (statement_identifier "LAB_00017c48") (; ";")))) (labeled_statement "LAB_00017d8c:\n              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);" (statement_identifier "LAB_00017d8c") (: ":") (expression_statement "iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);" (assignment_expression "iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26)" (identifier "iVar23") (= "=") (call_expression "(*pcVar11)(pbVar29,local_213c,pbVar26)" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "(pbVar29,local_213c,pbVar26)" (( "(") (identifier "pbVar29") (, ",") (identifier "local_213c") (, ",") (identifier "pbVar26") () ")")))) (; ";"))) (expression_statement "pbVar28 = (byte *)(iVar23 + 1);" (assignment_expression "pbVar28 = (byte *)(iVar23 + 1)" (identifier "pbVar28") (= "=") (cast_expression "(byte *)(iVar23 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 1)" (( "(") (binary_expression "iVar23 + 1" (identifier "iVar23") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (local_2150 != (byte *)0x0) {\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }" (if "if") (parenthesized_expression "(local_2150 != (byte *)0x0)" (( "(") (binary_expression "local_2150 != (byte *)0x0" (identifier "local_2150") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                piVar32 = (int *)(uint)(pbVar26 < pbVar28);\n                goto LAB_00017dc0;\n              }" ({ "{") (expression_statement "piVar32 = (int *)(uint)(pbVar26 < pbVar28);" (assignment_expression "piVar32 = (int *)(uint)(pbVar26 < pbVar28)" (identifier "piVar32") (= "=") (cast_expression "(int *)(uint)(pbVar26 < pbVar28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(pbVar26 < pbVar28)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar26 < pbVar28)" (( "(") (binary_expression "pbVar26 < pbVar28" (identifier "pbVar26") (< "<") (identifier "pbVar28")) () ")"))))) (; ";")) (goto_statement "goto LAB_00017dc0;" (goto "goto") (statement_identifier "LAB_00017dc0") (; ";")) (} "}"))) (expression_statement "pbVar18 = (byte *)0x0;" (assignment_expression "pbVar18 = (byte *)0x0" (identifier "pbVar18") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pbVar22 = pbVar28;" (assignment_expression "pbVar22 = pbVar28" (identifier "pbVar22") (= "=") (identifier "pbVar28")) (; ";")) (if_statement "if (pbVar26 < pbVar28) goto LAB_00017de0;" (if "if") (parenthesized_expression "(pbVar26 < pbVar28)" (( "(") (binary_expression "pbVar26 < pbVar28" (identifier "pbVar26") (< "<") (identifier "pbVar28")) () ")")) (goto_statement "goto LAB_00017de0;" (goto "goto") (statement_identifier "LAB_00017de0") (; ";"))) (labeled_statement "LAB_00018174:\n              pbVar24 = pbVar29;" (statement_identifier "LAB_00018174") (: ":") (expression_statement "pbVar24 = pbVar29;" (assignment_expression "pbVar24 = pbVar29" (identifier "pbVar24") (= "=") (identifier "pbVar29")) (; ";"))) (if_statement "if (pbVar26 < pbVar22) goto LAB_00017de0;" (if "if") (parenthesized_expression "(pbVar26 < pbVar22)" (( "(") (binary_expression "pbVar26 < pbVar22" (identifier "pbVar26") (< "<") (identifier "pbVar22")) () ")")) (goto_statement "goto LAB_00017de0;" (goto "goto") (statement_identifier "LAB_00017de0") (; ";"))) (} "}")) (else_clause "else {\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }" (else "else") (compound_statement "{\nLAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;\nLAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);\n              if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }\n              (*(code *)PTR_free_0003e558)(local_214c);\n              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);\n              local_214c = pbVar29;\n              if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }\n              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;\nLAB_00017c48:\n              pbVar18 = (byte *)0x0;\n              if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }\n              pbVar28 = (byte *)0x0;\n              pbVar24 = pbVar29;\n            }" ({ "{") (labeled_statement "LAB_00017c30:\n              if (local_2134 <= pbVar26) goto LAB_00017c40;" (statement_identifier "LAB_00017c30") (: ":") (if_statement "if (local_2134 <= pbVar26) goto LAB_00017c40;" (if "if") (parenthesized_expression "(local_2134 <= pbVar26)" (( "(") (binary_expression "local_2134 <= pbVar26" (identifier "local_2134") (<= "<=") (identifier "pbVar26")) () ")")) (goto_statement "goto LAB_00017c40;" (goto "goto") (statement_identifier "LAB_00017c40") (; ";")))) (labeled_statement "LAB_00017d44:\n              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);" (statement_identifier "LAB_00017d44") (: ":") (expression_statement "pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);" (assignment_expression "pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1)" (identifier "pbVar26") (= "=") (cast_expression "(byte *)((uint)((int)pbVar26 * 3) >> 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)((int)pbVar26 * 3) >> 1)" (( "(") (binary_expression "(uint)((int)pbVar26 * 3) >> 1" (call_expression "(uint)((int)pbVar26 * 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)pbVar26 * 3)" (( "(") (binary_expression "(int)pbVar26 * 3" (cast_expression "(int)pbVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar26")) (* "*") (number_literal "3")) () ")"))) (>> ">>") (number_literal "1")) () ")")))) (; ";"))) (if_statement "if (pbVar26 <= local_2134) {\n                pbVar26 = local_2134;\n              }" (if "if") (parenthesized_expression "(pbVar26 <= local_2134)" (( "(") (binary_expression "pbVar26 <= local_2134" (identifier "pbVar26") (<= "<=") (identifier "local_2134")) () ")")) (compound_statement "{\n                pbVar26 = local_2134;\n              }" ({ "{") (expression_statement "pbVar26 = local_2134;" (assignment_expression "pbVar26 = local_2134" (identifier "pbVar26") (= "=") (identifier "local_2134")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_free_0003e558)(local_214c);" (call_expression "(*(code *)PTR_free_0003e558)(local_214c)" (parenthesized_expression "(*(code *)PTR_free_0003e558)" (( "(") (pointer_expression "*(code *)PTR_free_0003e558" (* "*") (cast_expression "(code *)PTR_free_0003e558" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003e558"))) () ")")) (argument_list "(local_214c)" (( "(") (identifier "local_214c") () ")"))) (; ";")) (expression_statement "pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);" (assignment_expression "pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26)" (identifier "pbVar29") (= "=") (cast_expression "(byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_malloc_0003e4a4)(pbVar26)" (parenthesized_expression "(*(code *)PTR_malloc_0003e4a4)" (( "(") (pointer_expression "*(code *)PTR_malloc_0003e4a4" (* "*") (cast_expression "(code *)PTR_malloc_0003e4a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_malloc_0003e4a4"))) () ")")) (argument_list "(pbVar26)" (( "(") (identifier "pbVar26") () ")"))))) (; ";")) (expression_statement "local_214c = pbVar29;" (assignment_expression "local_214c = pbVar29" (identifier "local_214c") (= "=") (identifier "pbVar29")) (; ";")) (if_statement "if (pbVar29 == (byte *)0x0) {\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }" (if "if") (parenthesized_expression "(pbVar29 == (byte *)0x0)" (( "(") (binary_expression "pbVar29 == (byte *)0x0" (identifier "pbVar29") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                pbVar26 = (byte *)0xfa0;\n                pbVar29 = local_20ec;\n                goto LAB_00017c40;\n              }" ({ "{") (expression_statement "pbVar26 = (byte *)0xfa0;" (assignment_expression "pbVar26 = (byte *)0xfa0" (identifier "pbVar26") (= "=") (cast_expression "(byte *)0xfa0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfa0"))) (; ";")) (expression_statement "pbVar29 = local_20ec;" (assignment_expression "pbVar29 = local_20ec" (identifier "pbVar29") (= "=") (identifier "local_20ec")) (; ";")) (goto_statement "goto LAB_00017c40;" (goto "goto") (statement_identifier "LAB_00017c40") (; ";")) (} "}"))) (if_statement "if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;" (if "if") (parenthesized_expression "(pbVar31 != (byte *)0x0)" (( "(") (binary_expression "pbVar31 != (byte *)0x0" (identifier "pbVar31") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00017d8c;" (goto "goto") (statement_identifier "LAB_00017d8c") (; ";"))) (labeled_statement "LAB_00017c48:\n              pbVar18 = (byte *)0x0;" (statement_identifier "LAB_00017c48") (: ":") (expression_statement "pbVar18 = (byte *)0x0;" (assignment_expression "pbVar18 = (byte *)0x0" (identifier "pbVar18") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (if_statement "if (local_2150 != (byte *)0x0) {\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }" (if "if") (parenthesized_expression "(local_2150 != (byte *)0x0)" (( "(") (binary_expression "local_2150 != (byte *)0x0" (identifier "local_2150") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                pbVar28 = (byte *)0x0;\n                piVar32 = (int *)0x0;\n                goto LAB_00017dc0;\n              }" ({ "{") (expression_statement "pbVar28 = (byte *)0x0;" (assignment_expression "pbVar28 = (byte *)0x0" (identifier "pbVar28") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar32 = (int *)0x0;" (assignment_expression "piVar32 = (int *)0x0" (identifier "piVar32") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_00017dc0;" (goto "goto") (statement_identifier "LAB_00017dc0") (; ";")) (} "}"))) (expression_statement "pbVar28 = (byte *)0x0;" (assignment_expression "pbVar28 = (byte *)0x0" (identifier "pbVar28") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pbVar24 = pbVar29;" (assignment_expression "pbVar24 = pbVar29" (identifier "pbVar24") (= "=") (identifier "pbVar29")) (; ";")) (} "}")))) (expression_statement "pbVar22 = pbVar24 + (int)pbVar28;" (assignment_expression "pbVar22 = pbVar24 + (int)pbVar28" (identifier "pbVar22") (= "=") (binary_expression "pbVar24 + (int)pbVar28" (identifier "pbVar24") (+ "+") (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")))) (; ";")) (if_statement "if (pbVar31 == (byte *)0x0) {\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }\n            else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }" (if "if") (parenthesized_expression "(pbVar31 == (byte *)0x0)" (( "(") (binary_expression "pbVar31 == (byte *)0x0" (identifier "pbVar31") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              if (local_2150 == (byte *)0x0) break;\nLAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n            }" ({ "{") (if_statement "if (local_2150 == (byte *)0x0) break;" (if "if") (parenthesized_expression "(local_2150 == (byte *)0x0)" (( "(") (binary_expression "local_2150 == (byte *)0x0" (identifier "local_2150") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_0001809c:\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);" (statement_identifier "LAB_0001809c") (: ":") (expression_statement "iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);" (assignment_expression "iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27)" (identifier "iVar23") (= "=") (call_expression "(*(code *)PTR_strlen_0003e488)(pbVar27)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" (( "(") (pointer_expression "*(code *)PTR_strlen_0003e488" (* "*") (cast_expression "(code *)PTR_strlen_0003e488" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0003e488"))) () ")")) (argument_list "(pbVar27)" (( "(") (identifier "pbVar27") () ")")))) (; ";"))) (expression_statement "pbVar27 = pbVar27 + iVar23 + 1;" (assignment_expression "pbVar27 = pbVar27 + iVar23 + 1" (identifier "pbVar27") (= "=") (binary_expression "pbVar27 + iVar23 + 1" (binary_expression "pbVar27 + iVar23" (identifier "pbVar27") (+ "+") (identifier "iVar23")) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }" (else "else") (compound_statement "{\n              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);\n              local_213c = local_213c + iVar23 + 1;\n              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;\nLAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);\n              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);\n              pbVar27 = pbVar27 + iVar23 + 1;\n              if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }\n            }" ({ "{") (expression_statement "iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);" (assignment_expression "iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c)" (identifier "iVar23") (= "=") (call_expression "(*(code *)PTR_strlen_0003e488)(local_213c)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" (( "(") (pointer_expression "*(code *)PTR_strlen_0003e488" (* "*") (cast_expression "(code *)PTR_strlen_0003e488" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0003e488"))) () ")")) (argument_list "(local_213c)" (( "(") (identifier "local_213c") () ")")))) (; ";")) (expression_statement "local_213c = local_213c + iVar23 + 1;" (assignment_expression "local_213c = local_213c + iVar23 + 1" (identifier "local_213c") (= "=") (binary_expression "local_213c + iVar23 + 1" (binary_expression "local_213c + iVar23" (identifier "local_213c") (+ "+") (identifier "iVar23")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_2150 == (byte *)0x0) goto LAB_00017f2c;" (if "if") (parenthesized_expression "(local_2150 == (byte *)0x0)" (( "(") (binary_expression "local_2150 == (byte *)0x0" (identifier "local_2150") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00017f2c;" (goto "goto") (statement_identifier "LAB_00017f2c") (; ";"))) (labeled_statement "LAB_00017c8c:\n              pbVar31 = (byte *)(uint)(local_213c < local_2120);" (statement_identifier "LAB_00017c8c") (: ":") (expression_statement "pbVar31 = (byte *)(uint)(local_213c < local_2120);" (assignment_expression "pbVar31 = (byte *)(uint)(local_213c < local_2120)" (identifier "pbVar31") (= "=") (cast_expression "(byte *)(uint)(local_213c < local_2120)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(local_213c < local_2120)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_213c < local_2120)" (( "(") (binary_expression "local_213c < local_2120" (identifier "local_213c") (< "<") (identifier "local_2120")) () ")"))))) (; ";"))) (expression_statement "iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);" (assignment_expression "iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27)" (identifier "iVar23") (= "=") (call_expression "(*(code *)PTR_strlen_0003e488)(pbVar27)" (parenthesized_expression "(*(code *)PTR_strlen_0003e488)" (( "(") (pointer_expression "*(code *)PTR_strlen_0003e488" (* "*") (cast_expression "(code *)PTR_strlen_0003e488" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0003e488"))) () ")")) (argument_list "(pbVar27)" (( "(") (identifier "pbVar27") () ")")))) (; ";")) (expression_statement "pbVar27 = pbVar27 + iVar23 + 1;" (assignment_expression "pbVar27 = pbVar27 + iVar23 + 1" (identifier "pbVar27") (= "=") (binary_expression "pbVar27 + iVar23 + 1" (binary_expression "pbVar27 + iVar23" (identifier "pbVar27") (+ "+") (identifier "iVar23")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (pbVar31 != (byte *)0x0) {\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }" (if "if") (parenthesized_expression "(pbVar31 != (byte *)0x0)" (( "(") (binary_expression "pbVar31 != (byte *)0x0" (identifier "pbVar31") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                local_2150 = (byte *)(uint)(pbVar27 < local_211c);\n                pbVar29 = pbVar24;\n                goto LAB_00017cc8;\n              }" ({ "{") (expression_statement "local_2150 = (byte *)(uint)(pbVar27 < local_211c);" (assignment_expression "local_2150 = (byte *)(uint)(pbVar27 < local_211c)" (identifier "local_2150") (= "=") (cast_expression "(byte *)(uint)(pbVar27 < local_211c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(pbVar27 < local_211c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar27 < local_211c)" (( "(") (binary_expression "pbVar27 < local_211c" (identifier "pbVar27") (< "<") (identifier "local_211c")) () ")"))))) (; ";")) (expression_statement "pbVar29 = pbVar24;" (assignment_expression "pbVar29 = pbVar24" (identifier "pbVar29") (= "=") (identifier "pbVar24")) (; ";")) (goto_statement "goto LAB_00017cc8;" (goto "goto") (statement_identifier "LAB_00017cc8") (; ";")) (} "}"))) (} "}")))) (expression_statement "local_2150 = (byte *)(uint)(pbVar27 < local_211c);" (assignment_expression "local_2150 = (byte *)(uint)(pbVar27 < local_211c)" (identifier "local_2150") (= "=") (cast_expression "(byte *)(uint)(pbVar27 < local_211c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(pbVar27 < local_211c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar27 < local_211c)" (( "(") (binary_expression "pbVar27 < local_211c" (identifier "pbVar27") (< "<") (identifier "local_211c")) () ")"))))) (; ";")) (expression_statement "pbVar29 = pbVar24;" (assignment_expression "pbVar29 = pbVar24" (identifier "pbVar29") (= "=") (identifier "pbVar24")) (; ";")) (if_statement "if (local_211c <= pbVar27) break;" (if "if") (parenthesized_expression "(local_211c <= pbVar27)" (( "(") (binary_expression "local_211c <= pbVar27" (identifier "local_211c") (<= "<=") (identifier "pbVar27")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}")))) (} "}"))) (expression_statement "local_213c = pbVar22;" (assignment_expression "local_213c = pbVar22" (identifier "local_213c") (= "=") (identifier "pbVar22")) (; ";")) (expression_statement "local_2150 = pbVar18;" (assignment_expression "local_2150 = pbVar18" (identifier "local_2150") (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "local_211c = local_20fc;" (assignment_expression "local_211c = local_20fc" (identifier "local_211c") (= "=") (identifier "local_20fc")) (; ";")) (expression_statement "local_2120 = local_2100;" (assignment_expression "local_2120 = local_2100" (identifier "local_2120") (= "=") (identifier "local_2100")) (; ";")) (expression_statement "md5_process_bytes(pbVar24,pbVar28,local_2130);" (call_expression "md5_process_bytes(pbVar24,pbVar28,local_2130)" (identifier "md5_process_bytes") (argument_list "(pbVar24,pbVar28,local_2130)" (( "(") (identifier "pbVar24") (, ",") (identifier "pbVar28") (, ",") (identifier "local_2130") () ")"))) (; ";")) (expression_statement "pbVar26 = abStack_20cc;" (assignment_expression "pbVar26 = abStack_20cc" (identifier "pbVar26") (= "=") (identifier "abStack_20cc")) (; ";")) (expression_statement "md5_finish_ctx(local_2130,pbVar26);" (call_expression "md5_finish_ctx(local_2130,pbVar26)" (identifier "md5_finish_ctx") (argument_list "(local_2130,pbVar26)" (( "(") (identifier "local_2130") (, ",") (identifier "pbVar26") () ")"))) (; ";")) (expression_statement "md5_process_bytes(local_213c,local_2150,local_2138);" (call_expression "md5_process_bytes(local_213c,local_2150,local_2138)" (identifier "md5_process_bytes") (argument_list "(local_213c,local_2150,local_2138)" (( "(") (identifier "local_213c") (, ",") (identifier "local_2150") (, ",") (identifier "local_2138") () ")"))) (; ";")) (expression_statement "md5_finish_ctx(local_2138,abStack_20bc);" (call_expression "md5_finish_ctx(local_2138,abStack_20bc)" (identifier "md5_finish_ctx") (argument_list "(local_2138,abStack_20bc)" (( "(") (identifier "local_2138") (, ",") (identifier "abStack_20bc") () ")"))) (; ";")) (expression_statement "uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);" (assignment_expression "uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10)" (identifier "uVar9") (= "=") (call_expression "(*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" (( "(") (pointer_expression "*(code *)PTR_memcmp_0003e52c" (* "*") (cast_expression "(code *)PTR_memcmp_0003e52c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcmp_0003e52c"))) () ")")) (argument_list "(pbVar26,abStack_20bc,0x10)" (( "(") (identifier "pbVar26") (, ",") (identifier "abStack_20bc") (, ",") (number_literal "0x10") () ")")))) (; ";")) (expression_statement "pbVar20 = local_20fc;" (assignment_expression "pbVar20 = local_20fc" (identifier "pbVar20") (= "=") (identifier "local_20fc")) (; ";")) (expression_statement "pbVar21 = local_2100;" (assignment_expression "pbVar21 = local_2100" (identifier "pbVar21") (= "=") (identifier "local_2100")) (; ";")) (expression_statement "pbVar18 = local_2108;" (assignment_expression "pbVar18 = local_2108" (identifier "pbVar18") (= "=") (identifier "local_2108")) (; ";")) (expression_statement "pbVar22 = pbVar28;" (assignment_expression "pbVar22 = pbVar28" (identifier "pbVar22") (= "=") (identifier "pbVar28")) (; ";")) (expression_statement "pbVar29 = pbVar24;" (assignment_expression "pbVar29 = pbVar24" (identifier "pbVar29") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "pbVar30 = local_2104;" (assignment_expression "pbVar30 = local_2104" (identifier "pbVar30") (= "=") (identifier "local_2104")) (; ";")) (expression_statement "pbVar31 = local_2110;" (assignment_expression "pbVar31 = local_2110" (identifier "pbVar31") (= "=") (identifier "local_2110")) (; ";")) (expression_statement "pbVar27 = local_210c;" (assignment_expression "pbVar27 = local_210c" (identifier "pbVar27") (= "=") (identifier "local_210c")) (; ";")) (expression_statement "piVar32 = local_2114;" (assignment_expression "piVar32 = local_2114" (identifier "piVar32") (= "=") (identifier "local_2114")) (; ";")) (expression_statement "local_2134 = abStack_20bc;" (assignment_expression "local_2134 = abStack_20bc" (identifier "local_2134") (= "=") (identifier "abStack_20bc")) (; ";")) (if_statement "if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }" (if "if") (parenthesized_expression "((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0))" (( "(") (binary_expression "(uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)" (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar9 = local_2158, local_2158 == 0)" (( "(") (comma_expression "uVar9 = local_2158, local_2158 == 0" (assignment_expression "uVar9 = local_2158" (identifier "uVar9") (= "=") (identifier "local_2158")) (, ",") (binary_expression "local_2158 == 0" (identifier "local_2158") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\nLAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);\n        pbVar22 = local_2150;\n        if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }\n        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);\n        pbVar22 = pbVar28;\n        pbVar29 = pbVar24;\n        local_2138 = pbVar21;\n        local_2134 = pbVar20;\n        if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }\n      }" ({ "{") (labeled_statement "LAB_00017ff4:\n        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);" (statement_identifier "LAB_00017ff4") (: ":") (expression_statement "pbVar26 = (byte *)(uint)(local_2150 < pbVar28);" (assignment_expression "pbVar26 = (byte *)(uint)(local_2150 < pbVar28)" (identifier "pbVar26") (= "=") (cast_expression "(byte *)(uint)(local_2150 < pbVar28)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(local_2150 < pbVar28)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_2150 < pbVar28)" (( "(") (binary_expression "local_2150 < pbVar28" (identifier "local_2150") (< "<") (identifier "pbVar28")) () ")"))))) (; ";"))) (expression_statement "pbVar22 = local_2150;" (assignment_expression "pbVar22 = local_2150" (identifier "pbVar22") (= "=") (identifier "local_2150")) (; ";")) (if_statement "if (pbVar26 == (byte *)0x0) {\n          pbVar22 = pbVar28;\n        }" (if "if") (parenthesized_expression "(pbVar26 == (byte *)0x0)" (( "(") (binary_expression "pbVar26 == (byte *)0x0" (identifier "pbVar26") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pbVar22 = pbVar28;\n        }" ({ "{") (expression_statement "pbVar22 = pbVar28;" (assignment_expression "pbVar22 = pbVar28" (identifier "pbVar22") (= "=") (identifier "pbVar28")) (; ";")) (} "}"))) (expression_statement "uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);" (assignment_expression "uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22)" (identifier "uVar9") (= "=") (call_expression "(*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" (( "(") (pointer_expression "*(code *)PTR_memcmp_0003e52c" (* "*") (cast_expression "(code *)PTR_memcmp_0003e52c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcmp_0003e52c"))) () ")")) (argument_list "(pbVar24,local_213c,pbVar22)" (( "(") (identifier "pbVar24") (, ",") (identifier "local_213c") (, ",") (identifier "pbVar22") () ")")))) (; ";")) (expression_statement "pbVar22 = pbVar28;" (assignment_expression "pbVar22 = pbVar28" (identifier "pbVar22") (= "=") (identifier "pbVar28")) (; ";")) (expression_statement "pbVar29 = pbVar24;" (assignment_expression "pbVar29 = pbVar24" (identifier "pbVar29") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "local_2138 = pbVar21;" (assignment_expression "local_2138 = pbVar21" (identifier "local_2138") (= "=") (identifier "pbVar21")) (; ";")) (expression_statement "local_2134 = pbVar20;" (assignment_expression "local_2134 = pbVar20" (identifier "local_2134") (= "=") (identifier "pbVar20")) (; ";")) (if_statement "if (uVar9 == 0) {\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }" (if "if") (parenthesized_expression "(uVar9 == 0)" (( "(") (binary_expression "uVar9 == 0" (identifier "uVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);\n        }" ({ "{") (expression_statement "uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);" (assignment_expression "uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150)" (identifier "uVar9") (= "=") (binary_expression "(int)pbVar26 - (uint)(pbVar28 < local_2150)" (cast_expression "(int)pbVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar26")) (- "-") (call_expression "(uint)(pbVar28 < local_2150)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar28 < local_2150)" (( "(") (binary_expression "pbVar28 < local_2150" (identifier "pbVar28") (< "<") (identifier "local_2150")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00018040:\n      local_2158 = uVar9;" (statement_identifier "LAB_00018040") (: ":") (expression_statement "local_2158 = uVar9;" (assignment_expression "local_2158 = uVar9" (identifier "local_2158") (= "=") (identifier "uVar9")) (; ";"))) (expression_statement "pbVar24 = pbVar31;" (assignment_expression "pbVar24 = pbVar31" (identifier "pbVar24") (= "=") (identifier "pbVar31")) (; ";")) (expression_statement "(*(code *)PTR_free_0003e558)(local_214c);" (call_expression "(*(code *)PTR_free_0003e558)(local_214c)" (parenthesized_expression "(*(code *)PTR_free_0003e558)" (( "(") (pointer_expression "*(code *)PTR_free_0003e558" (* "*") (cast_expression "(code *)PTR_free_0003e558" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003e558"))) () ")")) (argument_list "(local_214c)" (( "(") (identifier "local_214c") () ")"))) (; ";")) (expression_statement "pbVar28 = pbVar22;" (assignment_expression "pbVar28 = pbVar22" (identifier "pbVar28") (= "=") (identifier "pbVar22")) (; ";")) (expression_statement "local_2150 = pbVar21;" (assignment_expression "local_2150 = pbVar21" (identifier "local_2150") (= "=") (identifier "pbVar21")) (; ";")) (expression_statement "local_213c = pbVar20;" (assignment_expression "local_213c = pbVar20" (identifier "local_213c") (= "=") (identifier "pbVar20")) (; ";")) (labeled_statement "LAB_000175d8:\n      if (pbVar20 == (byte *)0x0) goto LAB_00017808;" (statement_identifier "LAB_000175d8") (: ":") (if_statement "if (pbVar20 == (byte *)0x0) goto LAB_00017808;" (if "if") (parenthesized_expression "(pbVar20 == (byte *)0x0)" (( "(") (binary_expression "pbVar20 == (byte *)0x0" (identifier "pbVar20") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00017808;" (goto "goto") (statement_identifier "LAB_00017808") (; ";")))) (labeled_statement "LAB_000175e4:\n      (*(code *)PTR_free_0003e558)(local_2154);" (statement_identifier "LAB_000175e4") (: ":") (expression_statement "(*(code *)PTR_free_0003e558)(local_2154);" (call_expression "(*(code *)PTR_free_0003e558)(local_2154)" (parenthesized_expression "(*(code *)PTR_free_0003e558)" (( "(") (pointer_expression "*(code *)PTR_free_0003e558" (* "*") (cast_expression "(code *)PTR_free_0003e558" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_0003e558"))) () ")")) (argument_list "(local_2154)" (( "(") (identifier "local_2154") () ")"))) (; ";"))) (expression_statement "pbVar27 = pbVar18;" (assignment_expression "pbVar27 = pbVar18" (identifier "pbVar27") (= "=") (identifier "pbVar18")) (; ";")) (expression_statement "pbVar31 = pbVar30;" (assignment_expression "pbVar31 = pbVar30" (identifier "pbVar31") (= "=") (identifier "pbVar30")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}"))) (expression_statement "pbVar31 = pbVar28;" (assignment_expression "pbVar31 = pbVar28" (identifier "pbVar31") (= "=") (identifier "pbVar28")) (; ";")) (if_statement "if (pbVar20 == (byte *)0x0) {\n    pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);\n    if (pbVar18 == (byte *)0x0) {\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }\n    if (pbVar28 != (byte *)0x0) {\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }" (if "if") (parenthesized_expression "(pbVar20 == (byte *)0x0)" (( "(") (binary_expression "pbVar20 == (byte *)0x0" (identifier "pbVar20") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);\n    if (pbVar18 == (byte *)0x0) {\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }\n    if (pbVar28 != (byte *)0x0) {\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }\n    local_2158 = 1;\n    goto LAB_00017838;\n  }" ({ "{") (expression_statement "pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);" (assignment_expression "pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0)" (identifier "pbVar27") (= "=") (cast_expression "(byte *)(uint)(pbVar28 != (byte *)0x0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(pbVar28 != (byte *)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar28 != (byte *)0x0)" (( "(") (binary_expression "pbVar28 != (byte *)0x0" (identifier "pbVar28") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))))) (; ";")) (if_statement "if (pbVar18 == (byte *)0x0) {\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }" (if "if") (parenthesized_expression "(pbVar18 == (byte *)0x0)" (( "(") (binary_expression "pbVar18 == (byte *)0x0" (identifier "pbVar18") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      local_2158 = -(int)pbVar27;\n      goto joined_r0x0001782c;\n    }" ({ "{") (expression_statement "local_2158 = -(int)pbVar27;" (assignment_expression "local_2158 = -(int)pbVar27" (identifier "local_2158") (= "=") (unary_expression "-(int)pbVar27" (- "-") (cast_expression "(int)pbVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar27")))) (; ";")) (goto_statement "goto joined_r0x0001782c;" (goto "goto") (statement_identifier "joined_r0x0001782c") (; ";")) (} "}"))) (if_statement "if (pbVar28 != (byte *)0x0) {\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }" (if "if") (parenthesized_expression "(pbVar28 != (byte *)0x0)" (( "(") (binary_expression "pbVar28 != (byte *)0x0" (identifier "pbVar28") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }\n      if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }\n      local_2158 = (uint)(pbVar18 != pbVar28);\n      goto joined_r0x0001782c;\n    }" ({ "{") (if_statement "if (pbVar21 == (byte *)0x0) {\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }\n      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }" (if "if") (parenthesized_expression "(pbVar21 == (byte *)0x0)" (( "(") (binary_expression "pbVar21 == (byte *)0x0" (identifier "pbVar21") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        pbVar24 = pbVar28;\n        if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }\n        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);\n        local_2150 = pbVar18;\n        if (local_2158 != 0) goto LAB_00017838;\n      }" ({ "{") (expression_statement "pbVar24 = pbVar28;" (assignment_expression "pbVar24 = pbVar28" (identifier "pbVar24") (= "=") (identifier "pbVar28")) (; ";")) (if_statement "if (pbVar18 <= pbVar28) {\n          pbVar24 = pbVar18;\n        }" (if "if") (parenthesized_expression "(pbVar18 <= pbVar28)" (( "(") (binary_expression "pbVar18 <= pbVar28" (identifier "pbVar18") (<= "<=") (identifier "pbVar28")) () ")")) (compound_statement "{\n          pbVar24 = pbVar18;\n        }" ({ "{") (expression_statement "pbVar24 = pbVar18;" (assignment_expression "pbVar24 = pbVar18" (identifier "pbVar24") (= "=") (identifier "pbVar18")) (; ";")) (} "}"))) (expression_statement "local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);" (assignment_expression "local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24)" (identifier "local_2158") (= "=") (call_expression "(*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24)" (parenthesized_expression "(*(code *)PTR_memcmp_0003e52c)" (( "(") (pointer_expression "*(code *)PTR_memcmp_0003e52c" (* "*") (cast_expression "(code *)PTR_memcmp_0003e52c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcmp_0003e52c"))) () ")")) (argument_list "(pbVar29,pbVar26,pbVar24)" (( "(") (identifier "pbVar29") (, ",") (identifier "pbVar26") (, ",") (identifier "pbVar24") () ")")))) (; ";")) (expression_statement "local_2150 = pbVar18;" (assignment_expression "local_2150 = pbVar18" (identifier "local_2150") (= "=") (identifier "pbVar18")) (; ";")) (if_statement "if (local_2158 != 0) goto LAB_00017838;" (if "if") (parenthesized_expression "(local_2158 != 0)" (( "(") (binary_expression "local_2158 != 0" (identifier "local_2158") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017838;" (goto "goto") (statement_identifier "LAB_00017838") (; ";"))) (} "}")) (else_clause "else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }" (else "else") (if_statement "if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }" (if "if") (parenthesized_expression "((pbVar29 < pbVar22) && (pbVar26 < pbVar24))" (( "(") (binary_expression "(pbVar29 < pbVar22) && (pbVar26 < pbVar24)" (parenthesized_expression "(pbVar29 < pbVar22)" (( "(") (binary_expression "pbVar29 < pbVar22" (identifier "pbVar29") (< "<") (identifier "pbVar22")) () ")")) (&& "&&") (parenthesized_expression "(pbVar26 < pbVar24)" (( "(") (binary_expression "pbVar26 < pbVar24" (identifier "pbVar26") (< "<") (identifier "pbVar24")) () ")"))) () ")")) (compound_statement "{\n        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];\n        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];\n        if (local_2158 != 0) goto LAB_00017838;\n        pbVar20 = pbVar29 + (int)pbVar28;\n        pbVar24 = pbVar26;\n        pbVar22 = pbVar29;\n        while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }\n      }" ({ "{") (expression_statement "pbVar27 = (byte *)(uint)pbVar21[*pbVar29];" (assignment_expression "pbVar27 = (byte *)(uint)pbVar21[*pbVar29]" (identifier "pbVar27") (= "=") (cast_expression "(byte *)(uint)pbVar21[*pbVar29]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)pbVar21[*pbVar29]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar21[*pbVar29]" (identifier "pbVar21") ([ "[") (pointer_expression "*pbVar29" (* "*") (identifier "pbVar29")) (] "]"))))) (; ";")) (expression_statement "local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];" (assignment_expression "local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26]" (identifier "local_2158") (= "=") (binary_expression "(int)pbVar27 - (uint)pbVar21[*pbVar26]" (cast_expression "(int)pbVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar27")) (- "-") (cast_expression "(uint)pbVar21[*pbVar26]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar21[*pbVar26]" (identifier "pbVar21") ([ "[") (pointer_expression "*pbVar26" (* "*") (identifier "pbVar26")) (] "]"))))) (; ";")) (if_statement "if (local_2158 != 0) goto LAB_00017838;" (if "if") (parenthesized_expression "(local_2158 != 0)" (( "(") (binary_expression "local_2158 != 0" (identifier "local_2158") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017838;" (goto "goto") (statement_identifier "LAB_00017838") (; ";"))) (expression_statement "pbVar20 = pbVar29 + (int)pbVar28;" (assignment_expression "pbVar20 = pbVar29 + (int)pbVar28" (identifier "pbVar20") (= "=") (binary_expression "pbVar29 + (int)pbVar28" (identifier "pbVar29") (+ "+") (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")))) (; ";")) (expression_statement "pbVar24 = pbVar26;" (assignment_expression "pbVar24 = pbVar26" (identifier "pbVar24") (= "=") (identifier "pbVar26")) (; ";")) (expression_statement "pbVar22 = pbVar29;" (assignment_expression "pbVar22 = pbVar29" (identifier "pbVar22") (= "=") (identifier "pbVar29")) (; ";")) (while_statement "while( true ) {\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          pbVar22 = pbVar22 + 1;\n          pbVar24 = pbVar24 + 1;\n          pbVar29 = pbVar20;\n          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;\n          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];\n          if (local_2158 != 0) goto LAB_00017838;\n        }" ({ "{") (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + 1" (identifier "pbVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" (identifier "pbVar24") (= "=") (binary_expression "pbVar24 + 1" (identifier "pbVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar29 = pbVar20;" (assignment_expression "pbVar29 = pbVar20" (identifier "pbVar29") (= "=") (identifier "pbVar20")) (; ";")) (if_statement "if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;" (if "if") (parenthesized_expression "((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20))" (( "(") (binary_expression "(pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)" (parenthesized_expression "(pbVar24 == pbVar26 + (int)pbVar18)" (( "(") (binary_expression "pbVar24 == pbVar26 + (int)pbVar18" (identifier "pbVar24") (== "==") (binary_expression "pbVar26 + (int)pbVar18" (identifier "pbVar26") (+ "+") (cast_expression "(int)pbVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar18")))) () ")")) (|| "||") (parenthesized_expression "(pbVar22 == pbVar20)" (( "(") (binary_expression "pbVar22 == pbVar20" (identifier "pbVar22") (== "==") (identifier "pbVar20")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];" (assignment_expression "local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24]" (identifier "local_2158") (= "=") (binary_expression "(uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24]" (cast_expression "(uint)pbVar21[*pbVar22]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar21[*pbVar22]" (identifier "pbVar21") ([ "[") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")) (] "]"))) (- "-") (cast_expression "(uint)pbVar21[*pbVar24]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar21[*pbVar24]" (identifier "pbVar21") ([ "[") (pointer_expression "*pbVar24" (* "*") (identifier "pbVar24")) (] "]"))))) (; ";")) (if_statement "if (local_2158 != 0) goto LAB_00017838;" (if "if") (parenthesized_expression "(local_2158 != 0)" (( "(") (binary_expression "local_2158 != 0" (identifier "local_2158") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017838;" (goto "goto") (statement_identifier "LAB_00017838") (; ";"))) (} "}"))) (} "}"))))) (if_statement "if (pbVar18 < pbVar28) {\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }" (if "if") (parenthesized_expression "(pbVar18 < pbVar28)" (( "(") (binary_expression "pbVar18 < pbVar28" (identifier "pbVar18") (< "<") (identifier "pbVar28")) () ")")) (compound_statement "{\n        local_2158 = 0xffffffff;\n        goto LAB_00017838;\n      }" ({ "{") (expression_statement "local_2158 = 0xffffffff;" (assignment_expression "local_2158 = 0xffffffff" (identifier "local_2158") (= "=") (number_literal "0xffffffff")) (; ";")) (goto_statement "goto LAB_00017838;" (goto "goto") (statement_identifier "LAB_00017838") (; ";")) (} "}"))) (expression_statement "local_2158 = (uint)(pbVar18 != pbVar28);" (assignment_expression "local_2158 = (uint)(pbVar18 != pbVar28)" (identifier "local_2158") (= "=") (call_expression "(uint)(pbVar18 != pbVar28)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar18 != pbVar28)" (( "(") (binary_expression "pbVar18 != pbVar28" (identifier "pbVar18") (!= "!=") (identifier "pbVar28")) () ")")))) (; ";")) (goto_statement "goto joined_r0x0001782c;" (goto "goto") (statement_identifier "joined_r0x0001782c") (; ";")) (} "}"))) (expression_statement "local_2158 = 1;" (assignment_expression "local_2158 = 1" (identifier "local_2158") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00017838;" (goto "goto") (statement_identifier "LAB_00017838") (; ";")) (} "}"))) (expression_statement "pbVar18 = pbVar29;" (assignment_expression "pbVar18 = pbVar29" (identifier "pbVar18") (= "=") (identifier "pbVar29")) (; ";")) (if_statement "if (pbVar21 != (byte *)0x0) goto LAB_000174c0;" (if "if") (parenthesized_expression "(pbVar21 != (byte *)0x0)" (( "(") (binary_expression "pbVar21 != (byte *)0x0" (identifier "pbVar21") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000174c0;" (goto "goto") (statement_identifier "LAB_000174c0") (; ";"))) (labeled_statement "LAB_000181d0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" (statement_identifier "LAB_000181d0") (: ":") (if_statement "if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" (if "if") (parenthesized_expression "((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0))" (( "(") (binary_expression "(pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)" (parenthesized_expression "(pbVar22 <= pbVar18)" (( "(") (binary_expression "pbVar22 <= pbVar18" (identifier "pbVar22") (<= "<=") (identifier "pbVar18")) () ")")) (|| "||") (parenthesized_expression "(pbVar20[*pbVar18] == 0)" (( "(") (binary_expression "pbVar20[*pbVar18] == 0" (subscript_expression "pbVar20[*pbVar18]" (identifier "pbVar20") ([ "[") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" ({ "{") (expression_statement "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);" (assignment_expression "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22)" (identifier "pbVar27") (= "=") (cast_expression "(byte *)(uint)(pbVar18 < pbVar22)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(pbVar18 < pbVar22)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar18 < pbVar22)" (( "(") (binary_expression "pbVar18 < pbVar22" (identifier "pbVar18") (< "<") (identifier "pbVar22")) () ")"))))) (; ";")) (expression_statement "pbVar30 = pbVar26;" (assignment_expression "pbVar30 = pbVar26" (identifier "pbVar30") (= "=") (identifier "pbVar26")) (; ";")) (if_statement "if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }" (if "if") (parenthesized_expression "(pbVar24 <= pbVar26)" (( "(") (binary_expression "pbVar24 <= pbVar26" (identifier "pbVar24") (<= "<=") (identifier "pbVar26")) () ")")) (compound_statement "{\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }" ({ "{") (expression_statement "local_2158 = (uint)(pbVar26 < pbVar24);" (assignment_expression "local_2158 = (uint)(pbVar26 < pbVar24)" (identifier "local_2158") (= "=") (call_expression "(uint)(pbVar26 < pbVar24)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar26 < pbVar24)" (( "(") (binary_expression "pbVar26 < pbVar24" (identifier "pbVar26") (< "<") (identifier "pbVar24")) () ")")))) (; ";")) (goto_statement "goto LAB_00018290;" (goto "goto") (statement_identifier "LAB_00018290") (; ";")) (} "}"))) (while_statement "while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }" (while "while") (parenthesized_expression "(pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0)" (( "(") (comma_expression "pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0" (assignment_expression "pbVar26 = pbVar30 + 1" (identifier "pbVar26") (= "=") (binary_expression "pbVar30 + 1" (identifier "pbVar30") (+ "+") (number_literal "1"))) (, ",") (binary_expression "pbVar20[*pbVar30] != 0" (subscript_expression "pbVar20[*pbVar30]" (identifier "pbVar20") ([ "[") (pointer_expression "*pbVar30" (* "*") (identifier "pbVar30")) (] "]")) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n      pbVar30 = pbVar26;\n      if (pbVar24 == pbVar26) goto LAB_00018284;\n    }" ({ "{") (expression_statement "pbVar30 = pbVar26;" (assignment_expression "pbVar30 = pbVar26" (identifier "pbVar30") (= "=") (identifier "pbVar26")) (; ";")) (if_statement "if (pbVar24 == pbVar26) goto LAB_00018284;" (if "if") (parenthesized_expression "(pbVar24 == pbVar26)" (( "(") (binary_expression "pbVar24 == pbVar26" (identifier "pbVar24") (== "==") (identifier "pbVar26")) () ")")) (goto_statement "goto LAB_00018284;" (goto "goto") (statement_identifier "LAB_00018284") (; ";"))) (} "}"))) (expression_statement "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);" (assignment_expression "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22)" (identifier "pbVar27") (= "=") (cast_expression "(byte *)(uint)(pbVar18 < pbVar22)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(pbVar18 < pbVar22)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar18 < pbVar22)" (( "(") (binary_expression "pbVar18 < pbVar22" (identifier "pbVar18") (< "<") (identifier "pbVar22")) () ")"))))) (; ";")) (if_statement "if (pbVar27 == (byte *)0x0) goto LAB_0001828c;" (if "if") (parenthesized_expression "(pbVar27 == (byte *)0x0)" (( "(") (binary_expression "pbVar27 == (byte *)0x0" (identifier "pbVar27") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001828c;" (goto "goto") (statement_identifier "LAB_0001828c") (; ";"))) (expression_statement "local_2158 = (uint)*pbVar18 - (uint)*pbVar30;" (assignment_expression "local_2158 = (uint)*pbVar18 - (uint)*pbVar30" (identifier "local_2158") (= "=") (binary_expression "(uint)*pbVar18 - (uint)*pbVar30" (binary_expression "(uint)*pbVar18" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar18")) (- "-") (binary_expression "(uint)*pbVar30" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar30")))) (; ";")) (if_statement "if (local_2158 != 0) goto LAB_00017838;" (if "if") (parenthesized_expression "(local_2158 != 0)" (( "(") (binary_expression "local_2158 != 0" (identifier "local_2158") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017838;" (goto "goto") (statement_identifier "LAB_00017838") (; ";"))) (} "}")))) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_000181d0;" (goto "goto") (statement_identifier "LAB_000181d0") (; ";")) (labeled_statement "LAB_000174c0:\n  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];\n    pbVar26 = pbVar26 + 1;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" (statement_identifier "LAB_000174c0") (: ":") (if_statement "if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];\n    pbVar26 = pbVar26 + 1;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" (if "if") (parenthesized_expression "((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0))" (( "(") (binary_expression "(pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)" (parenthesized_expression "(pbVar22 <= pbVar18)" (( "(") (binary_expression "pbVar22 <= pbVar18" (identifier "pbVar22") (<= "<=") (identifier "pbVar18")) () ")")) (|| "||") (parenthesized_expression "(pbVar20[*pbVar18] == 0)" (( "(") (binary_expression "pbVar20[*pbVar18] == 0" (subscript_expression "pbVar20[*pbVar18]" (identifier "pbVar20") ([ "[") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }\n    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }\n    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);\n    pbVar30 = pbVar26;\n    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;\n    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];\n    pbVar26 = pbVar26 + 1;\n    if (local_2158 != 0) goto LAB_00017838;\n  }" ({ "{") (expression_statement "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);" (assignment_expression "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22)" (identifier "pbVar27") (= "=") (cast_expression "(byte *)(uint)(pbVar18 < pbVar22)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(pbVar18 < pbVar22)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar18 < pbVar22)" (( "(") (binary_expression "pbVar18 < pbVar22" (identifier "pbVar18") (< "<") (identifier "pbVar22")) () ")"))))) (; ";")) (if_statement "if (pbVar24 <= pbVar26) {\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }" (if "if") (parenthesized_expression "(pbVar24 <= pbVar26)" (( "(") (binary_expression "pbVar24 <= pbVar26" (identifier "pbVar24") (<= "<=") (identifier "pbVar26")) () ")")) (compound_statement "{\n      local_2158 = (uint)(pbVar26 < pbVar24);\n      goto LAB_00018290;\n    }" ({ "{") (expression_statement "local_2158 = (uint)(pbVar26 < pbVar24);" (assignment_expression "local_2158 = (uint)(pbVar26 < pbVar24)" (identifier "local_2158") (= "=") (call_expression "(uint)(pbVar26 < pbVar24)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar26 < pbVar24)" (( "(") (binary_expression "pbVar26 < pbVar24" (identifier "pbVar26") (< "<") (identifier "pbVar24")) () ")")))) (; ";")) (goto_statement "goto LAB_00018290;" (goto "goto") (statement_identifier "LAB_00018290") (; ";")) (} "}"))) (while_statement "while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }" (while "while") (parenthesized_expression "(pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0)" (( "(") (comma_expression "pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0" (assignment_expression "pbVar27 = pbVar26 + 1" (identifier "pbVar27") (= "=") (binary_expression "pbVar26 + 1" (identifier "pbVar26") (+ "+") (number_literal "1"))) (, ",") (binary_expression "pbVar20[*pbVar26] != 0" (subscript_expression "pbVar20[*pbVar26]" (identifier "pbVar20") ([ "[") (pointer_expression "*pbVar26" (* "*") (identifier "pbVar26")) (] "]")) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n      pbVar26 = pbVar27;\n      if (pbVar24 == pbVar27) goto LAB_00018284;\n    }" ({ "{") (expression_statement "pbVar26 = pbVar27;" (assignment_expression "pbVar26 = pbVar27" (identifier "pbVar26") (= "=") (identifier "pbVar27")) (; ";")) (if_statement "if (pbVar24 == pbVar27) goto LAB_00018284;" (if "if") (parenthesized_expression "(pbVar24 == pbVar27)" (( "(") (binary_expression "pbVar24 == pbVar27" (identifier "pbVar24") (== "==") (identifier "pbVar27")) () ")")) (goto_statement "goto LAB_00018284;" (goto "goto") (statement_identifier "LAB_00018284") (; ";"))) (} "}"))) (expression_statement "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);" (assignment_expression "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22)" (identifier "pbVar27") (= "=") (cast_expression "(byte *)(uint)(pbVar18 < pbVar22)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(pbVar18 < pbVar22)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar18 < pbVar22)" (( "(") (binary_expression "pbVar18 < pbVar22" (identifier "pbVar18") (< "<") (identifier "pbVar22")) () ")"))))) (; ";")) (expression_statement "pbVar30 = pbVar26;" (assignment_expression "pbVar30 = pbVar26" (identifier "pbVar30") (= "=") (identifier "pbVar26")) (; ";")) (if_statement "if (pbVar27 == (byte *)0x0) goto LAB_0001828c;" (if "if") (parenthesized_expression "(pbVar27 == (byte *)0x0)" (( "(") (binary_expression "pbVar27 == (byte *)0x0" (identifier "pbVar27") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001828c;" (goto "goto") (statement_identifier "LAB_0001828c") (; ";"))) (expression_statement "local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];" (assignment_expression "local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26]" (identifier "local_2158") (= "=") (binary_expression "(uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26]" (cast_expression "(uint)pbVar21[*pbVar18]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar21[*pbVar18]" (identifier "pbVar21") ([ "[") (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (] "]"))) (- "-") (cast_expression "(uint)pbVar21[*pbVar26]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar21[*pbVar26]" (identifier "pbVar21") ([ "[") (pointer_expression "*pbVar26" (* "*") (identifier "pbVar26")) (] "]"))))) (; ";")) (expression_statement "pbVar26 = pbVar26 + 1;" (assignment_expression "pbVar26 = pbVar26 + 1" (identifier "pbVar26") (= "=") (binary_expression "pbVar26 + 1" (identifier "pbVar26") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_2158 != 0) goto LAB_00017838;" (if "if") (parenthesized_expression "(local_2158 != 0)" (( "(") (binary_expression "local_2158 != 0" (identifier "local_2158") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017838;" (goto "goto") (statement_identifier "LAB_00017838") (; ";"))) (} "}")))) (expression_statement "pbVar18 = pbVar18 + 1;" (assignment_expression "pbVar18 = pbVar18 + 1" (identifier "pbVar18") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_000174c0;" (goto "goto") (statement_identifier "LAB_000174c0") (; ";")) (labeled_statement "LAB_00018284:\n  pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);" (statement_identifier "LAB_00018284") (: ":") (expression_statement "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);" (assignment_expression "pbVar27 = (byte *)(uint)(pbVar18 < pbVar22)" (identifier "pbVar27") (= "=") (cast_expression "(byte *)(uint)(pbVar18 < pbVar22)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(pbVar18 < pbVar22)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar18 < pbVar22)" (( "(") (binary_expression "pbVar18 < pbVar22" (identifier "pbVar18") (< "<") (identifier "pbVar22")) () ")"))))) (; ";"))) (expression_statement "pbVar30 = pbVar24;" (assignment_expression "pbVar30 = pbVar24" (identifier "pbVar30") (= "=") (identifier "pbVar24")) (; ";")) (labeled_statement "LAB_0001828c:\n  local_2158 = (uint)(pbVar30 < pbVar24);" (statement_identifier "LAB_0001828c") (: ":") (expression_statement "local_2158 = (uint)(pbVar30 < pbVar24);" (assignment_expression "local_2158 = (uint)(pbVar30 < pbVar24)" (identifier "local_2158") (= "=") (call_expression "(uint)(pbVar30 < pbVar24)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pbVar30 < pbVar24)" (( "(") (binary_expression "pbVar30 < pbVar24" (identifier "pbVar30") (< "<") (identifier "pbVar24")) () ")")))) (; ";"))) (expression_statement "pbVar26 = pbVar30;" (assignment_expression "pbVar26 = pbVar30" (identifier "pbVar26") (= "=") (identifier "pbVar30")) (; ";")) (labeled_statement "LAB_00018290:\n  local_2158 = (int)pbVar27 - local_2158;" (statement_identifier "LAB_00018290") (: ":") (expression_statement "local_2158 = (int)pbVar27 - local_2158;" (assignment_expression "local_2158 = (int)pbVar27 - local_2158" (identifier "local_2158") (= "=") (binary_expression "(int)pbVar27 - local_2158" (cast_expression "(int)pbVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar27")) (- "-") (identifier "local_2158"))) (; ";"))) (goto_statement "goto joined_r0x0001782c;" (goto "goto") (statement_identifier "joined_r0x0001782c") (; ";")) (while_statement "while (pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20) {\nLAB_000178dc:\n    pbVar20 = pbVar18 + 1;\n    pbVar29 = pbVar18;\n    if (puVar5[*pbVar18 - 0x15f0] == '\0') break;\n  }" (while "while") (parenthesized_expression "(pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20)" (( "(") (comma_expression "pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20" (assignment_expression "pbVar29 = pbVar22" (identifier "pbVar29") (= "=") (identifier "pbVar22")) (, ",") (comma_expression "pbVar18 = pbVar20, pbVar22 != pbVar20" (assignment_expression "pbVar18 = pbVar20" (identifier "pbVar18") (= "=") (identifier "pbVar20")) (, ",") (binary_expression "pbVar22 != pbVar20" (identifier "pbVar22") (!= "!=") (identifier "pbVar20")))) () ")")) (compound_statement "{\nLAB_000178dc:\n    pbVar20 = pbVar18 + 1;\n    pbVar29 = pbVar18;\n    if (puVar5[*pbVar18 - 0x15f0] == '\0') break;\n  }" ({ "{") (labeled_statement "LAB_000178dc:\n    pbVar20 = pbVar18 + 1;" (statement_identifier "LAB_000178dc") (: ":") (expression_statement "pbVar20 = pbVar18 + 1;" (assignment_expression "pbVar20 = pbVar18 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar18 + 1" (identifier "pbVar18") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "pbVar29 = pbVar18;" (assignment_expression "pbVar29 = pbVar18" (identifier "pbVar29") (= "=") (identifier "pbVar18")) (; ";")) (if_statement "if (puVar5[*pbVar18 - 0x15f0] == '\0') break;" (if "if") (parenthesized_expression "(puVar5[*pbVar18 - 0x15f0] == '\0')" (( "(") (binary_expression "puVar5[*pbVar18 - 0x15f0] == '\0'" (subscript_expression "puVar5[*pbVar18 - 0x15f0]" (identifier "puVar5") ([ "[") (binary_expression "*pbVar18 - 0x15f0" (pointer_expression "*pbVar18" (* "*") (identifier "pbVar18")) (- "-") (number_literal "0x15f0")) (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (labeled_statement "LAB_000178f8:\n  bVar4 = pbVar29 < pbVar22;" (statement_identifier "LAB_000178f8") (: ":") (expression_statement "bVar4 = pbVar29 < pbVar22;" (assignment_expression "bVar4 = pbVar29 < pbVar22" (identifier "bVar4") (= "=") (binary_expression "pbVar29 < pbVar22" (identifier "pbVar29") (< "<") (identifier "pbVar22"))) (; ";"))) (if_statement "if (pbVar28 < pbVar24) {\n    do {\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    } while (pbVar24 != pbVar28);\n  }" (if "if") (parenthesized_expression "(pbVar28 < pbVar24)" (( "(") (binary_expression "pbVar28 < pbVar24" (identifier "pbVar28") (< "<") (identifier "pbVar24")) () ")")) (compound_statement "{\n    do {\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    } while (pbVar24 != pbVar28);\n  }" ({ "{") (do_statement "do {\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    } while (pbVar24 != pbVar28);" (do "do") (compound_statement "{\n      bVar4 = pbVar29 < pbVar22;\n      pbVar26 = pbVar28;\n      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;\n      pbVar28 = pbVar28 + 1;\n      pbVar26 = pbVar24;\n    }" ({ "{") (expression_statement "bVar4 = pbVar29 < pbVar22;" (assignment_expression "bVar4 = pbVar29 < pbVar22" (identifier "bVar4") (= "=") (binary_expression "pbVar29 < pbVar22" (identifier "pbVar29") (< "<") (identifier "pbVar22"))) (; ";")) (expression_statement "pbVar26 = pbVar28;" (assignment_expression "pbVar26 = pbVar28" (identifier "pbVar26") (= "=") (identifier "pbVar28")) (; ";")) (if_statement "if (puVar5[*pbVar28 - 0x15f0] == '\0') break;" (if "if") (parenthesized_expression "(puVar5[*pbVar28 - 0x15f0] == '\0')" (( "(") (binary_expression "puVar5[*pbVar28 - 0x15f0] == '\0'" (subscript_expression "puVar5[*pbVar28 - 0x15f0]" (identifier "puVar5") ([ "[") (binary_expression "*pbVar28 - 0x15f0" (pointer_expression "*pbVar28" (* "*") (identifier "pbVar28")) (- "-") (number_literal "0x15f0")) (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar28 = pbVar28 + 1;" (assignment_expression "pbVar28 = pbVar28 + 1" (identifier "pbVar28") (= "=") (binary_expression "pbVar28 + 1" (identifier "pbVar28") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar26 = pbVar24;" (assignment_expression "pbVar26 = pbVar24" (identifier "pbVar26") (= "=") (identifier "pbVar24")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar24 != pbVar28)" (( "(") (binary_expression "pbVar24 != pbVar28" (identifier "pbVar24") (!= "!=") (identifier "pbVar28")) () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_00017440;" (goto "goto") (statement_identifier "LAB_00017440") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (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: (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: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (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: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence))))))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (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: (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: (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: (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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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: (subscript_expression argument: (identifier) index: (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: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_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: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (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))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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))) (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)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (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: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (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: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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) (identifier)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (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))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (identifier)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier))))) (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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))) (labeled_statement label: (statement_identifier) (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)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (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))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement))) condition: (parenthesized_expression (true))))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (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))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (true)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (goto_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 (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier))))) (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)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (pointer_expression argument: (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: (type_identifier)) value: (subscript_expression argument: (identifier) index: (pointer_expression argument: (identifier))))))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) 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))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (pointer_expression argument: (identifier)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (pointer_expression argument: (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: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (pointer_expression argument: (identifier))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) (goto_statement label: (statement_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: (subscript_expression argument: (identifier) index: (pointer_expression argument: (identifier))) right: (number_literal)))) body: (compound_statement (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))))) (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)))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (pointer_expression argument: (identifier))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) (goto_statement label: (statement_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: (subscript_expression argument: (identifier) index: (pointer_expression argument: (identifier))) right: (number_literal)))) body: (compound_statement (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))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (pointer_expression argument: (identifier)))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (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: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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: (identifier))))) (goto_statement label: (statement_identifier)) (while_statement condition: (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: (identifier) right: (identifier))))) body: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (char_literal (escape_sequence)))) consequence: (break_statement)))) (labeled_statement label: (statement_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 (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (char_literal (escape_sequence)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (goto_statement label: (statement_identifier)))))

/* WARNING: Removing unreachable block (ram,0x000179ec) */

uint MASKED(undefined4 *param_1,undefined4 *param_2)

{
  byte bVar1;
  byte bVar2;
  char cVar3;
  bool bVar4;
  undefined *puVar5;
  undefined *puVar6;
  byte bVar10;
  undefined4 *puVar7;
  undefined4 *puVar8;
  uint uVar9;
  code *pcVar11;
  code *pcVar12;
  int iVar13;
  undefined4 uVar14;
  undefined4 uVar15;
  byte *pbVar16;
  undefined4 uVar17;
  byte *pbVar18;
  byte *pbVar19;
  byte *pbVar20;
  byte *pbVar21;
  byte *pbVar22;
  int iVar23;
  byte *pbVar24;
  int iVar25;
  byte *pbVar26;
  byte *pbVar27;
  byte *pbVar28;
  byte *pbVar29;
  byte *pbVar30;
  byte *pbVar31;
  int *piVar32;
  code *pcVar33;
  double dVar34;
  double dVar35;
  uint local_2158;
  byte *local_2154;
  byte *local_2150;
  byte *local_214c;
  byte *local_213c;
  byte *local_2138;
  byte *local_2134;
  undefined4 *local_2130;
  byte *local_2120;
  byte *local_211c;
  byte *local_2118;
  int *local_2114;
  byte *local_2110;
  byte *local_210c;
  byte *local_2108;
  byte *local_2104;
  byte *local_2100;
  byte *local_20fc;
  byte *local_20ec;
  byte *local_20e8;
  byte *local_20e4 [6];
  byte abStack_20cc [16];
  byte abStack_20bc [16];
  undefined4 local_20ac [39];
  byte local_2010 [4];
  undefined4 local_200c [35];
  byte abStack_1f80 [12];
  byte local_1f74 [4000];
  byte abStack_fd4 [4000];
  int local_34;
  
  puVar6 = PTR___stack_chk_guard_0003e550;
  puVar5 = PTR_DAT_0003e1a8;
  pbVar22 = (byte *)param_1[3];
  pcVar11 = (code *)(PTR_0003e1b4 + 0x6938);
  pbVar24 = (byte *)param_2[3];
  piVar32 = *(int **)(PTR_DAT_0003e1a8 + -0x1908);
  local_34 = *(int *)PTR___stack_chk_guard_0003e550;
  pbVar29 = (byte *)param_1[2];
  pcVar12 = (code *)(PTR_0003e1b4 + 0x613c);
  pbVar26 = (byte *)param_2[2];
  bVar1 = 0;
  bVar2 = 0;
LAB_0001743c:
  bVar4 = pbVar29 < pbVar22;
LAB_00017440:
  if (!bVar4) {
    pbVar22 = pbVar29;
  }
  if (pbVar24 <= pbVar26) {
    pbVar24 = pbVar26;
  }
  pbVar18 = pbVar22 + -(int)pbVar29;
  pbVar21 = (byte *)piVar32[5];
  pbVar28 = pbVar24 + -(int)pbVar26;
  pbVar20 = (byte *)piVar32[4];
  if (((((puVar5[-0x14df] != '\0') || (*(char *)((int)piVar32 + 0x1a) != '\0')) ||
       ((piVar32[7] & 0xffff0000U) != 0)) ||
      ((*(char *)((int)piVar32 + 0x1e) != '\0' || (*(char *)((int)piVar32 + 0x1b) != '\0')))) ||
     (*(char *)(piVar32 + 8) != '\0')) {
    pbVar30 = pbVar28;
    if ((pbVar20 == (byte *)0x0) && (pbVar21 == (byte *)0x0)) {
      bVar1 = *pbVar22;
      *pbVar22 = 0;
      bVar2 = *pbVar24;
      *pbVar24 = 0;
      cVar3 = *(char *)((int)piVar32 + 0x1a);
      pbVar27 = pbVar26;
      pbVar24 = pbVar29;
    }
    else {
      pbVar24 = local_1f74;
      if (pbVar18 + (int)pbVar28 + 2 < (byte *)0xfa1) {
        local_2154 = (byte *)0x0;
        pbVar27 = pbVar24 + (int)(pbVar18 + 1);
      }
      else {
        pbVar24 = (byte *)xmalloc();
        pbVar27 = pbVar24 + (int)(pbVar18 + 1);
        local_214c = pbVar18;
        local_2150 = pbVar20;
        local_2154 = pbVar24;
      }
      if (pbVar18 == (byte *)0x0) {
        *pbVar24 = 0;
      }
      else {
        pbVar31 = pbVar29 + (int)pbVar18;
        pbVar18 = (byte *)0x0;
        pbVar22 = pbVar29;
        do {
          bVar10 = *pbVar22;
          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {
            pbVar16 = pbVar24 + (int)pbVar18;
            if (pbVar21 != (byte *)0x0) {
              bVar10 = pbVar21[bVar10];
            }
            pbVar18 = pbVar18 + 1;
            *pbVar16 = bVar10;
          }
          pbVar22 = pbVar22 + 1;
        } while (pbVar31 != pbVar22);
        pbVar24[(int)pbVar18] = 0;
      }
      if (pbVar28 == (byte *)0x0) {
        *pbVar27 = 0;
      }
      else {
        pbVar28 = pbVar26 + (int)pbVar28;
        pbVar30 = (byte *)0x0;
        pbVar22 = pbVar26;
        do {
          bVar10 = *pbVar22;
          if ((pbVar20 == (byte *)0x0) || (pbVar20[bVar10] == 0)) {
            pbVar31 = pbVar27 + (int)pbVar30;
            if (pbVar21 != (byte *)0x0) {
              bVar10 = pbVar21[bVar10];
            }
            pbVar30 = pbVar30 + 1;
            *pbVar31 = bVar10;
          }
          pbVar22 = pbVar22 + 1;
        } while (pbVar28 != pbVar22);
        pbVar27[(int)pbVar30] = 0;
      }
      cVar3 = *(char *)((int)piVar32 + 0x1a);
    }
    pbVar22 = pbVar24;
    pbVar31 = pbVar27;
    if (cVar3 == '\0') {
      if (*(char *)(piVar32 + 7) != '\0') {
        dVar34 = (double)(*(code *)PTR_strtold_0003e524)(pbVar24,&local_20e8);
        dVar35 = (double)(*(code *)PTR_strtold_0003e524)(pbVar27,local_20e4);
        if (pbVar24 == local_20e8) {
          local_2158 = -(uint)(pbVar27 != local_20e4[0]);
          local_2150 = pbVar20;
          goto LAB_000175d8;
        }
        local_2150 = pbVar20;
        if (pbVar27 != local_20e4[0]) {
          if (dVar35 <= dVar34) {
            if (dVar35 < dVar34) goto LAB_000179f8;
            if (dVar34 == dVar35) {
              local_2158 = 0;
              goto LAB_000175d8;
            }
          }
          local_2158 = 0xffffffff;
          goto LAB_000175d8;
        }
LAB_000179f8:
        local_2158 = 1;
        goto LAB_000175d8;
      }
      if (*(char *)((int)piVar32 + 0x1d) == '\0') {
        if (*(char *)((int)piVar32 + 0x1e) != '\0') {
          pcVar33 = pcVar12;
          iVar23 = (*pcVar12)(pbVar24,0);
          iVar25 = (*pcVar33)(pbVar27,0);
          local_2158 = iVar23 - iVar25;
          local_2150 = pbVar21;
          local_214c = pbVar20;
          goto LAB_000175d8;
        }
        if (*(char *)((int)piVar32 + 0x1b) != '\0') {
          local_2138 = local_2010;
          puVar8 = (undefined4 *)(puVar5 + -0x1a38);
          pbVar22 = local_2138;
          do {
            pbVar26 = pbVar22;
            puVar7 = puVar8;
            puVar8 = puVar7 + 4;
            uVar17 = puVar7[1];
            uVar15 = puVar7[2];
            uVar14 = puVar7[3];
            *(undefined4 *)pbVar26 = *puVar7;
            *(undefined4 *)(pbVar26 + 4) = uVar17;
            *(undefined4 *)(pbVar26 + 8) = uVar15;
            *(undefined4 *)(pbVar26 + 0xc) = uVar14;
            pbVar22 = pbVar26 + 0x10;
          } while (puVar8 != (undefined4 *)(puVar5 + -0x19a8));
          local_2130 = local_20ac;
          uVar15 = puVar7[5];
          uVar14 = puVar7[6];
          *(undefined4 *)(pbVar26 + 0x10) = *puVar8;
          *(undefined4 *)(pbVar26 + 0x14) = uVar15;
          *(undefined4 *)(pbVar26 + 0x18) = uVar14;
          pbVar22 = local_2138;
          puVar8 = local_2130;
          do {
            puVar7 = puVar8;
            pbVar26 = pbVar22;
            pbVar22 = pbVar26 + 0x10;
            uVar17 = *(undefined4 *)(pbVar26 + 4);
            uVar15 = *(undefined4 *)(pbVar26 + 8);
            uVar14 = *(undefined4 *)(pbVar26 + 0xc);
            *puVar7 = *(undefined4 *)pbVar26;
            puVar7[1] = uVar17;
            puVar7[2] = uVar15;
            puVar7[3] = uVar14;
            puVar8 = puVar7 + 4;
          } while (pbVar22 != abStack_1f80);
          uVar15 = *(undefined4 *)(pbVar26 + 0x14);
          uVar14 = *(undefined4 *)(pbVar26 + 0x18);
          cVar3 = puVar5[-0x14df];
          puVar7[4] = *(undefined4 *)pbVar22;
          puVar7[5] = uVar15;
          puVar7[6] = uVar14;
          if (cVar3 == '\0') {
            md5_process_bytes(pbVar24,pbVar18,local_2130);
            pbVar26 = abStack_20cc;
            md5_finish_ctx(local_2130,pbVar26);
            md5_process_bytes(pbVar27,pbVar30,local_2138);
            md5_finish_ctx(local_2138,abStack_20bc);
            uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);
            local_214c = (byte *)0x0;
            pbVar28 = pbVar18;
            pbVar22 = abStack_20bc;
            pbVar29 = local_2138;
            pbVar31 = pbVar24;
            local_2150 = pbVar30;
            local_213c = pbVar27;
            if (uVar9 != 0) goto LAB_00018040;
            goto LAB_00017ff4;
          }
          local_2120 = pbVar24 + (int)pbVar18;
          local_214c = (byte *)0x0;
          pbVar29 = abStack_fd4;
          local_2158 = 0;
          local_211c = pbVar27 + (int)pbVar30;
          local_2134 = (byte *)((int)(pbVar18 + (int)pbVar30) * 3 + 2);
          pbVar26 = (byte *)0xfa0;
          local_2150 = (byte *)(uint)(pbVar27 < local_211c);
          local_2118 = (byte *)0x55555555;
          pbVar31 = (byte *)(uint)(pbVar24 < local_2120);
          local_213c = pbVar24;
          local_2114 = piVar32;
          local_2110 = pbVar24;
          local_210c = pbVar27;
          local_2108 = pbVar18;
          local_2104 = pbVar30;
          local_2100 = pbVar21;
          local_20fc = pbVar20;
          local_20ec = pbVar29;
          goto LAB_00017c30;
        }
        if (*(char *)(piVar32 + 8) != '\0') {
          local_2158 = filevercmp(pbVar24,pbVar27);
          local_2150 = pbVar21;
          local_214c = pbVar20;
          goto LAB_000175d8;
        }
        if (pbVar18 == (byte *)0x0) {
          local_2158 = -(uint)(pbVar30 != (byte *)0x0);
          goto LAB_000175d8;
        }
        if (pbVar30 == (byte *)0x0) goto LAB_000179f8;
        pbVar19 = pbVar30 + 1;
        pbVar31 = pbVar18 + 1;
        pbVar16 = pbVar27;
        pcVar33 = (code *)PTR_xmemcoll0_0003e200;
        goto LAB_000177ec;
      }
      cVar3 = puVar5[*pbVar24 - 0x15f0];
      while (cVar3 != '\0') {
        pbVar22 = pbVar22 + 1;
        cVar3 = puVar5[*pbVar22 - 0x15f0];
      }
      cVar3 = puVar5[*pbVar27 - 0x15f0];
      while (cVar3 != '\0') {
        pbVar31 = pbVar31 + 1;
        cVar3 = puVar5[*pbVar31 - 0x15f0];
      }
      pbVar29 = PTR_0003e1b4 + 0x6090;
      iVar23 = FUN_00016090(pbVar22);
      iVar25 = FUN_00016090(pbVar31);
      local_2158 = iVar23 - iVar25;
      pbVar26 = pbVar22;
      pbVar28 = pbVar31;
      local_2150 = pbVar21;
      local_214c = pbVar20;
      if (local_2158 != 0) goto LAB_000175d8;
    }
    else {
      cVar3 = puVar5[*pbVar24 - 0x15f0];
      while (cVar3 != '\0') {
        pbVar22 = pbVar22 + 1;
        cVar3 = puVar5[*pbVar22 - 0x15f0];
      }
      cVar3 = puVar5[*pbVar27 - 0x15f0];
      while (cVar3 != '\0') {
        pbVar31 = pbVar31 + 1;
        cVar3 = puVar5[*pbVar31 - 0x15f0];
      }
    }
    pbVar19 = *(byte **)(PTR_DAT_0003e1a8 + -0x14dc);
    pbVar16 = *(byte **)(PTR_DAT_0003e1a8 + -0x14d8);
    pcVar33 = (code *)PTR_strnumcmp_0003e1f0;
LAB_000177ec:
    local_2158 = (*pcVar33)(pbVar22,pbVar31,pbVar16,pbVar19);
    local_2150 = pbVar21;
    local_214c = pbVar20;
    if (pbVar20 != (byte *)0x0) goto LAB_000175e4;
LAB_00017808:
    if (pbVar21 != (byte *)0x0) goto LAB_000175e4;
    pbVar24[(int)pbVar18] = bVar1;
    pbVar27[(int)pbVar30] = bVar2;
    pbVar27 = pbVar18;
    pbVar31 = pbVar30;
joined_r0x0001782c:
    do {
      if (local_2158 == 0) {
        piVar32 = (int *)piVar32[9];
        if (piVar32 != (int *)0x0) {
          pbVar29 = (byte *)*param_1;
          iVar25 = param_1[1];
          pbVar28 = (byte *)*param_2;
          iVar23 = param_2[1];
          if (piVar32[2] == -1) {
            iVar13 = *piVar32;
            pbVar22 = pbVar29 + iVar25 + -1;
            pbVar24 = pbVar28 + iVar23 + -1;
          }
          else {
            pbVar22 = (byte *)FUN_000171d0(pbVar29,iVar25,piVar32);
            pbVar24 = (byte *)FUN_000171d0(pbVar28,iVar23);
            iVar13 = *piVar32;
          }
          if (iVar13 != -1) {
            pbVar29 = (byte *)FUN_00017028(pbVar29,iVar25,piVar32);
            pbVar26 = (byte *)FUN_00017028(pbVar28,iVar23);
            goto LAB_0001743c;
          }
          bVar4 = pbVar29 < pbVar22;
          pbVar26 = pbVar28;
          if (*(char *)(piVar32 + 6) == '\0') goto LAB_00017440;
          pbVar18 = pbVar29;
          if (pbVar22 <= pbVar29) goto LAB_000178f8;
          goto LAB_000178dc;
        }
      }
      else {
LAB_00017838:
        if (*(char *)((int)piVar32 + 0x1f) != '\0') {
          local_2158 = -local_2158;
        }
      }
      if (local_34 == *(int *)puVar6) {
        return local_2158;
      }
      (*(code *)PTR___stack_chk_fail_0003e518)();
LAB_00017dc0:
      iVar23 = (*pcVar11)();
      pbVar18 = (byte *)(iVar23 + 1);
      pbVar22 = pbVar18 + (int)pbVar28;
      if (piVar32 == (int *)0x0) goto LAB_00018174;
LAB_00017de0:
      pbVar26 = pbVar22;
      if (pbVar26 < local_2118) {
        pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);
      }
      (*(code *)PTR_free_0003e558)(local_214c);
      pbVar24 = (byte *)xmalloc(pbVar26);
      if (pbVar31 != (byte *)0x0) {
        (*(code *)PTR_strxfrm_0003e464)(pbVar24,local_213c,pbVar28);
      }
      pbVar22 = pbVar24 + (int)pbVar28;
      local_214c = pbVar24;
      if (local_2150 != (byte *)0x0) {
        (*(code *)PTR_strxfrm_0003e464)(pbVar22,pbVar27,pbVar18);
        if (pbVar31 == (byte *)0x0) goto LAB_0001809c;
        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);
        local_213c = local_213c + iVar23 + 1;
        goto LAB_00017c8c;
      }
      if (pbVar31 != (byte *)0x0) {
        iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);
        local_213c = local_213c + iVar23 + 1;
LAB_00017f2c:
        if (local_213c < local_2120) {
          pbVar31 = (byte *)(uint)(local_213c < local_2120);
          pbVar29 = pbVar24;
LAB_00017cc8:
          do {
            md5_process_bytes(pbVar29,pbVar28,local_2130);
            md5_process_bytes(pbVar22,pbVar18,local_2138);
            if (local_2158 == 0) {
              pbVar24 = pbVar18;
              if (pbVar18 < pbVar28 == 0) {
                pbVar24 = pbVar28;
              }
              local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar22,pbVar24);
              if (local_2158 != 0) goto LAB_00017c30;
              local_2158 = (uint)(pbVar18 < pbVar28) - (uint)(pbVar28 < pbVar18);
              if (pbVar26 < local_2134) goto LAB_00017d44;
LAB_00017c40:
              if (pbVar31 == (byte *)0x0) goto LAB_00017c48;
LAB_00017d8c:
              iVar23 = (*pcVar11)(pbVar29,local_213c,pbVar26);
              pbVar28 = (byte *)(iVar23 + 1);
              if (local_2150 != (byte *)0x0) {
                piVar32 = (int *)(uint)(pbVar26 < pbVar28);
                goto LAB_00017dc0;
              }
              pbVar18 = (byte *)0x0;
              pbVar22 = pbVar28;
              if (pbVar26 < pbVar28) goto LAB_00017de0;
LAB_00018174:
              pbVar24 = pbVar29;
              if (pbVar26 < pbVar22) goto LAB_00017de0;
            }
            else {
LAB_00017c30:
              if (local_2134 <= pbVar26) goto LAB_00017c40;
LAB_00017d44:
              pbVar26 = (byte *)((uint)((int)pbVar26 * 3) >> 1);
              if (pbVar26 <= local_2134) {
                pbVar26 = local_2134;
              }
              (*(code *)PTR_free_0003e558)(local_214c);
              pbVar29 = (byte *)(*(code *)PTR_malloc_0003e4a4)(pbVar26);
              local_214c = pbVar29;
              if (pbVar29 == (byte *)0x0) {
                pbVar26 = (byte *)0xfa0;
                pbVar29 = local_20ec;
                goto LAB_00017c40;
              }
              if (pbVar31 != (byte *)0x0) goto LAB_00017d8c;
LAB_00017c48:
              pbVar18 = (byte *)0x0;
              if (local_2150 != (byte *)0x0) {
                pbVar28 = (byte *)0x0;
                piVar32 = (int *)0x0;
                goto LAB_00017dc0;
              }
              pbVar28 = (byte *)0x0;
              pbVar24 = pbVar29;
            }
            pbVar22 = pbVar24 + (int)pbVar28;
            if (pbVar31 == (byte *)0x0) {
              if (local_2150 == (byte *)0x0) break;
LAB_0001809c:
              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);
              pbVar27 = pbVar27 + iVar23 + 1;
            }
            else {
              iVar23 = (*(code *)PTR_strlen_0003e488)(local_213c);
              local_213c = local_213c + iVar23 + 1;
              if (local_2150 == (byte *)0x0) goto LAB_00017f2c;
LAB_00017c8c:
              pbVar31 = (byte *)(uint)(local_213c < local_2120);
              iVar23 = (*(code *)PTR_strlen_0003e488)(pbVar27);
              pbVar27 = pbVar27 + iVar23 + 1;
              if (pbVar31 != (byte *)0x0) {
                local_2150 = (byte *)(uint)(pbVar27 < local_211c);
                pbVar29 = pbVar24;
                goto LAB_00017cc8;
              }
            }
            local_2150 = (byte *)(uint)(pbVar27 < local_211c);
            pbVar29 = pbVar24;
            if (local_211c <= pbVar27) break;
          } while( true );
        }
      }
      local_213c = pbVar22;
      local_2150 = pbVar18;
      local_211c = local_20fc;
      local_2120 = local_2100;
      md5_process_bytes(pbVar24,pbVar28,local_2130);
      pbVar26 = abStack_20cc;
      md5_finish_ctx(local_2130,pbVar26);
      md5_process_bytes(local_213c,local_2150,local_2138);
      md5_finish_ctx(local_2138,abStack_20bc);
      uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar26,abStack_20bc,0x10);
      pbVar20 = local_20fc;
      pbVar21 = local_2100;
      pbVar18 = local_2108;
      pbVar22 = pbVar28;
      pbVar29 = pbVar24;
      pbVar30 = local_2104;
      pbVar31 = local_2110;
      pbVar27 = local_210c;
      piVar32 = local_2114;
      local_2134 = abStack_20bc;
      if ((uVar9 == 0) && (uVar9 = local_2158, local_2158 == 0)) {
LAB_00017ff4:
        pbVar26 = (byte *)(uint)(local_2150 < pbVar28);
        pbVar22 = local_2150;
        if (pbVar26 == (byte *)0x0) {
          pbVar22 = pbVar28;
        }
        uVar9 = (*(code *)PTR_memcmp_0003e52c)(pbVar24,local_213c,pbVar22);
        pbVar22 = pbVar28;
        pbVar29 = pbVar24;
        local_2138 = pbVar21;
        local_2134 = pbVar20;
        if (uVar9 == 0) {
          uVar9 = (int)pbVar26 - (uint)(pbVar28 < local_2150);
        }
      }
LAB_00018040:
      local_2158 = uVar9;
      pbVar24 = pbVar31;
      (*(code *)PTR_free_0003e558)(local_214c);
      pbVar28 = pbVar22;
      local_2150 = pbVar21;
      local_213c = pbVar20;
LAB_000175d8:
      if (pbVar20 == (byte *)0x0) goto LAB_00017808;
LAB_000175e4:
      (*(code *)PTR_free_0003e558)(local_2154);
      pbVar27 = pbVar18;
      pbVar31 = pbVar30;
    } while( true );
  }
  pbVar31 = pbVar28;
  if (pbVar20 == (byte *)0x0) {
    pbVar27 = (byte *)(uint)(pbVar28 != (byte *)0x0);
    if (pbVar18 == (byte *)0x0) {
      local_2158 = -(int)pbVar27;
      goto joined_r0x0001782c;
    }
    if (pbVar28 != (byte *)0x0) {
      if (pbVar21 == (byte *)0x0) {
        pbVar24 = pbVar28;
        if (pbVar18 <= pbVar28) {
          pbVar24 = pbVar18;
        }
        local_2158 = (*(code *)PTR_memcmp_0003e52c)(pbVar29,pbVar26,pbVar24);
        local_2150 = pbVar18;
        if (local_2158 != 0) goto LAB_00017838;
      }
      else if ((pbVar29 < pbVar22) && (pbVar26 < pbVar24)) {
        pbVar27 = (byte *)(uint)pbVar21[*pbVar29];
        local_2158 = (int)pbVar27 - (uint)pbVar21[*pbVar26];
        if (local_2158 != 0) goto LAB_00017838;
        pbVar20 = pbVar29 + (int)pbVar28;
        pbVar24 = pbVar26;
        pbVar22 = pbVar29;
        while( true ) {
          pbVar22 = pbVar22 + 1;
          pbVar24 = pbVar24 + 1;
          pbVar29 = pbVar20;
          if ((pbVar24 == pbVar26 + (int)pbVar18) || (pbVar22 == pbVar20)) break;
          local_2158 = (uint)pbVar21[*pbVar22] - (uint)pbVar21[*pbVar24];
          if (local_2158 != 0) goto LAB_00017838;
        }
      }
      if (pbVar18 < pbVar28) {
        local_2158 = 0xffffffff;
        goto LAB_00017838;
      }
      local_2158 = (uint)(pbVar18 != pbVar28);
      goto joined_r0x0001782c;
    }
    local_2158 = 1;
    goto LAB_00017838;
  }
  pbVar18 = pbVar29;
  if (pbVar21 != (byte *)0x0) goto LAB_000174c0;
LAB_000181d0:
  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {
    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);
    pbVar30 = pbVar26;
    if (pbVar24 <= pbVar26) {
      local_2158 = (uint)(pbVar26 < pbVar24);
      goto LAB_00018290;
    }
    while (pbVar26 = pbVar30 + 1, pbVar20[*pbVar30] != 0) {
      pbVar30 = pbVar26;
      if (pbVar24 == pbVar26) goto LAB_00018284;
    }
    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);
    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;
    local_2158 = (uint)*pbVar18 - (uint)*pbVar30;
    if (local_2158 != 0) goto LAB_00017838;
  }
  pbVar18 = pbVar18 + 1;
  goto LAB_000181d0;
LAB_000174c0:
  if ((pbVar22 <= pbVar18) || (pbVar20[*pbVar18] == 0)) {
    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);
    if (pbVar24 <= pbVar26) {
      local_2158 = (uint)(pbVar26 < pbVar24);
      goto LAB_00018290;
    }
    while (pbVar27 = pbVar26 + 1, pbVar20[*pbVar26] != 0) {
      pbVar26 = pbVar27;
      if (pbVar24 == pbVar27) goto LAB_00018284;
    }
    pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);
    pbVar30 = pbVar26;
    if (pbVar27 == (byte *)0x0) goto LAB_0001828c;
    local_2158 = (uint)pbVar21[*pbVar18] - (uint)pbVar21[*pbVar26];
    pbVar26 = pbVar26 + 1;
    if (local_2158 != 0) goto LAB_00017838;
  }
  pbVar18 = pbVar18 + 1;
  goto LAB_000174c0;
LAB_00018284:
  pbVar27 = (byte *)(uint)(pbVar18 < pbVar22);
  pbVar30 = pbVar24;
LAB_0001828c:
  local_2158 = (uint)(pbVar30 < pbVar24);
  pbVar26 = pbVar30;
LAB_00018290:
  local_2158 = (int)pbVar27 - local_2158;
  goto joined_r0x0001782c;
  while (pbVar29 = pbVar22, pbVar18 = pbVar20, pbVar22 != pbVar20) {
LAB_000178dc:
    pbVar20 = pbVar18 + 1;
    pbVar29 = pbVar18;
    if (puVar5[*pbVar18 - 0x15f0] == '\0') break;
  }
LAB_000178f8:
  bVar4 = pbVar29 < pbVar22;
  if (pbVar28 < pbVar24) {
    do {
      bVar4 = pbVar29 < pbVar22;
      pbVar26 = pbVar28;
      if (puVar5[*pbVar28 - 0x15f0] == '\0') break;
      pbVar28 = pbVar28 + 1;
      pbVar26 = pbVar24;
    } while (pbVar24 != pbVar28);
  }
  goto LAB_00017440;
}

