
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,
   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&,
   std::_Ios_Iostate&, tm*, wchar_t const*, wchar_t const*) const */

void std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::get
               (undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,
               undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,
               undefined4 *param_10,undefined4 *param_11)

{
  code *pcVar1;
  int *piVar2;
  undefined4 *puVar3;
  char cVar4;
  char cVar5;
  ctype *pcVar6;
  int iVar7;
  ctype *pcVar8;
  undefined4 uVar9;
  byte bVar10;
  int iVar11;
  char cVar12;
  byte bVar13;
  bool bVar14;
  bool bVar15;
  undefined1 *puVar16;
  int iVar17;
  int aiStackY_a0 [9];
  undefined1 local_6c [4];
  int local_68;
  byte local_64 [4];
  int local_60 [5];
  undefined **local_4c;
  bool local_46;
  byte local_45;
  int local_44 [2];
  undefined **local_3c;
  locale *local_38;
  int local_34 [9];
  
  local_4c = &_GLOBAL_OFFSET_TABLE_;
  local_60[0] = param_4;
  local_68 = param_5;
  local_44[1] = param_6;
  local_38 = (locale *)(param_7 + 0x6c);
  pcVar6 = use_facet<std::ctype<wchar_t>>(local_38);
  puVar16 = local_6c;
  *param_8 = 0;
  if (param_10 != param_11) {
    local_46 = local_44[1] == -1;
    local_3c = local_4c + -0x4e0a4;
    puVar16 = local_6c;
    do {
      puVar16[8] = *(int *)(puVar16 + 0xc) == -1;
      bVar10 = param_3 != (int *)0x0 & puVar16[8];
      if (bVar10 == 0) {
        bVar13 = puVar16[8];
      }
      else {
        if ((int *)param_3[2] < (int *)param_3[3]) {
          iVar11 = *(int *)param_3[2];
        }
        else {
          puVar16[0x27] = bVar10;
          iVar11 = *param_3;
          *(int **)(puVar16 + -0x10) = param_3;
          pcVar1 = *(code **)(iVar11 + 0x24);
          *(undefined4 *)(puVar16 + -0x14) = 0x257826;
          iVar11 = (*pcVar1)();
          bVar10 = puVar16[0x27];
        }
        bVar13 = 0;
        if (iVar11 == -1) {
          param_3 = (int *)0x0;
          bVar13 = bVar10;
        }
      }
      bVar10 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];
      if (bVar10 == 0) {
        if (bVar13 == puVar16[0x26]) {
LAB_002575b3:
          **(undefined4 **)(puVar16 + 0x8c) = 6;
          break;
        }
      }
      else {
        piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);
        if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {
          iVar11 = *piVar2;
        }
        else {
          puVar16[0x28] = bVar10;
          puVar16[0x27] = bVar13;
          iVar11 = **(int **)(puVar16 + 4);
          *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);
          pcVar1 = *(code **)(iVar11 + 0x24);
          *(undefined4 *)(puVar16 + -0x14) = 0x257848;
          iVar11 = (*pcVar1)();
          bVar10 = puVar16[0x28];
          bVar13 = puVar16[0x27];
        }
        uVar9 = 0;
        if (iVar11 != -1) {
          bVar10 = 0;
          uVar9 = *(undefined4 *)(puVar16 + 4);
        }
        *(undefined4 *)(puVar16 + 4) = uVar9;
        if (bVar13 == bVar10) goto LAB_002575b3;
      }
      iVar11 = *(int *)pcVar6;
      *(undefined4 *)(puVar16 + -8) = 0;
      *(undefined4 *)(puVar16 + -0xc) = *param_10;
      *(ctype **)(puVar16 + -0x10) = pcVar6;
      pcVar1 = *(code **)(iVar11 + 0x30);
      *(undefined4 *)(puVar16 + -0x14) = 0x25727f;
      cVar4 = (*pcVar1)();
      if (cVar4 == '%') {
        *(undefined4 **)(puVar16 + 8) = param_10 + 1;
        if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 1) {
LAB_00257861:
          **(undefined4 **)(puVar16 + 0x8c) = 4;
          break;
        }
        iVar11 = *(int *)pcVar6;
        *(undefined4 *)(puVar16 + -8) = 0;
        *(undefined4 *)(puVar16 + -0xc) = param_10[1];
        *(ctype **)(puVar16 + -0x10) = pcVar6;
        pcVar1 = *(code **)(iVar11 + 0x30);
        *(undefined4 *)(puVar16 + -0x14) = 0x2572ad;
        cVar4 = (*pcVar1)();
        if (cVar4 == 'E') {
LAB_00257608:
          *(undefined4 **)(puVar16 + 8) = param_10 + 2;
          if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 2) goto LAB_00257861;
          iVar11 = *(int *)pcVar6;
          *(undefined4 *)(puVar16 + -8) = 0;
          *(undefined4 *)(puVar16 + -0xc) = param_10[2];
          *(ctype **)(puVar16 + -0x10) = pcVar6;
          pcVar1 = *(code **)(iVar11 + 0x30);
          *(undefined4 *)(puVar16 + -0x14) = 0x25762b;
          cVar5 = (*pcVar1)();
          iVar11 = (int)cVar4;
          cVar12 = cVar4;
        }
        else {
          iVar11 = 0;
          cVar12 = '\0';
          cVar5 = cVar4;
          if (cVar4 == 'O') goto LAB_00257608;
        }
        puVar16[0x27] = cVar12;
        iVar17 = (int)cVar5;
        pcVar1 = *(code **)(**(int **)(puVar16 + 0x74) + 0x20);
        if (pcVar1 == *(code **)(puVar16 + 0x30)) {
          *(int *)(puVar16 + 0x28) = iVar11;
          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x34);
          *(undefined4 *)(puVar16 + -0x14) = 0x2572f4;
          pcVar8 = use_facet<std::ctype<wchar_t>>(*(locale **)(puVar16 + -0x10));
          iVar11 = *(int *)pcVar8;
          **(undefined4 **)(puVar16 + 0x8c) = 0;
          *(undefined4 *)(puVar16 + -0xc) = 0x25;
          *(ctype **)(puVar16 + -0x10) = pcVar8;
          pcVar1 = *(code **)(iVar11 + 0x28);
          *(undefined4 *)(puVar16 + -0x14) = 0x25730b;
          uVar9 = (*pcVar1)();
          *(undefined4 *)(puVar16 + 0x40) = uVar9;
          if (puVar16[0x27] == '\0') {
            *(int *)(puVar16 + 0x44) = iVar17;
            *(undefined4 *)(puVar16 + 0x48) = 0;
          }
          else {
            *(undefined4 *)(puVar16 + 0x44) = *(undefined4 *)(puVar16 + 0x28);
            *(int *)(puVar16 + 0x48) = iVar17;
            *(undefined4 *)(puVar16 + 0x4c) = 0;
          }
          *(int **)(puVar16 + 0x10) = param_3;
          *(undefined4 *)(puVar16 + 0x14) = *(undefined4 *)(puVar16 + 0xc);
          *(undefined4 *)(puVar16 + 0x18) = *(undefined4 *)(puVar16 + 4);
          *(undefined4 *)(puVar16 + 0x1c) = *(undefined4 *)(puVar16 + 0x2c);
          *(undefined1 **)(puVar16 + -0xc) = puVar16 + 0x40;
          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);
          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);
          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);
          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x1c);
          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x18);
          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x14);
          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x10);
          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);
          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;
          *(undefined4 *)(puVar16 + -0x34) = 0x25738d;
          _M_extract_via_format();
          iVar11 = *(int *)(puVar16 + 0x3c);
          param_3 = *(int **)(puVar16 + 0x38);
          *(int *)(puVar16 + 0x14) = iVar11;
          *(int *)(puVar16 + 0xc) = iVar11;
          *(int **)(puVar16 + 0x10) = param_3;
          cVar4 = param_3 != (int *)0x0 && iVar11 == -1;
          cVar12 = iVar11 == -1;
          if ((bool)cVar4) {
            if ((int *)param_3[2] < (int *)param_3[3]) {
              iVar11 = *(int *)param_3[2];
            }
            else {
              puVar16[0x27] = cVar4;
              iVar11 = *param_3;
              *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x10);
              pcVar1 = *(code **)(iVar11 + 0x24);
              *(undefined4 *)(puVar16 + -0x14) = 0x2578ab;
              iVar11 = (*pcVar1)();
              cVar4 = puVar16[0x27];
            }
            cVar12 = '\0';
            if (iVar11 == -1) {
              param_3 = (int *)0x0;
              cVar12 = cVar4;
            }
          }
          if ((*(int *)(puVar16 + 4) == 0) || (puVar16[0x26] == '\0')) {
            cVar4 = puVar16[0x26];
          }
          else {
            piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);
            if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {
              iVar11 = *piVar2;
            }
            else {
              iVar11 = **(int **)(puVar16 + 4);
              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);
              pcVar1 = *(code **)(iVar11 + 0x24);
              *(undefined4 *)(puVar16 + -0x14) = 0x257893;
              iVar11 = (*pcVar1)();
            }
            cVar4 = iVar11 == -1;
          }
          if (cVar4 == cVar12) {
            **(uint **)(puVar16 + 0x8c) = **(uint **)(puVar16 + 0x8c) | 2;
          }
        }
        else {
          *(int **)(puVar16 + 0x78) = param_3;
          *(undefined4 *)(puVar16 + 0x7c) = *(undefined4 *)(puVar16 + 0xc);
          *(undefined4 *)(puVar16 + 0x84) = *(undefined4 *)(puVar16 + 0x2c);
          *(undefined4 *)(puVar16 + 0x80) = *(undefined4 *)(puVar16 + 4);
          *(int *)(puVar16 + -8) = iVar11;
          *(int *)(puVar16 + -0xc) = iVar17;
          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);
          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);
          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);
          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x84);
          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x80);
          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x7c);
          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x78);
          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);
          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;
          *(undefined4 *)(puVar16 + -0x34) = 0x257721;
          (*pcVar1)();
          *(undefined4 *)(puVar16 + 0x74) = *(undefined4 *)(puVar16 + 0x34);
          param_3 = *(int **)(puVar16 + 0x74);
          *(undefined4 *)(puVar16 + 0x78) = *(undefined4 *)(puVar16 + 0x38);
          *(undefined4 *)(puVar16 + 8) = *(undefined4 *)(puVar16 + 0x78);
          puVar16 = puVar16 + -4;
        }
        param_10 = (undefined4 *)(*(int *)(puVar16 + 8) + 4);
        if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;
      }
      else {
        iVar11 = *(int *)pcVar6;
        *(undefined4 *)(puVar16 + -8) = *param_10;
        *(undefined4 *)(puVar16 + -0xc) = 0x2000;
        *(ctype **)(puVar16 + -0x10) = pcVar6;
        pcVar1 = *(code **)(iVar11 + 8);
        *(undefined4 *)(puVar16 + -0x14) = 0x257191;
        cVar4 = (*pcVar1)();
        if (cVar4 == '\0') {
          if ((param_3 == (int *)0x0) || (puVar16[8] == '\0')) {
            uVar9 = *(undefined4 *)(puVar16 + 0xc);
LAB_002571af:
            iVar11 = *(int *)pcVar6;
            *(undefined4 *)(puVar16 + -0xc) = uVar9;
            *(ctype **)(puVar16 + -0x10) = pcVar6;
            pcVar1 = *(code **)(iVar11 + 0x20);
            *(undefined4 *)(puVar16 + -0x14) = 0x2571ba;
            iVar17 = (*pcVar1)();
            iVar11 = *(int *)pcVar6;
            *(undefined4 *)(puVar16 + -0xc) = *param_10;
            *(ctype **)(puVar16 + -0x10) = pcVar6;
            pcVar1 = *(code **)(iVar11 + 0x20);
            *(undefined4 *)(puVar16 + -0x14) = 0x2571c7;
            iVar7 = (*pcVar1)();
            iVar11 = *(int *)(puVar16 + 0xc);
            if (iVar7 != iVar17) {
LAB_002571d2:
              iVar17 = *(int *)pcVar6;
              *(int *)(puVar16 + -0xc) = iVar11;
              *(ctype **)(puVar16 + -0x10) = pcVar6;
              pcVar1 = *(code **)(iVar17 + 0x18);
              *(undefined4 *)(puVar16 + -0x14) = 0x2571dd;
              iVar17 = (*pcVar1)();
              iVar11 = *(int *)pcVar6;
              *(undefined4 *)(puVar16 + -0xc) = *param_10;
              *(ctype **)(puVar16 + -0x10) = pcVar6;
              pcVar1 = *(code **)(iVar11 + 0x18);
              *(undefined4 *)(puVar16 + -0x14) = 0x2571ea;
              iVar11 = (*pcVar1)();
              if (iVar11 != iVar17) goto LAB_00257861;
            }
          }
          else {
            if ((int *)param_3[2] < (int *)param_3[3]) {
              iVar11 = *(int *)param_3[2];
            }
            else {
              iVar11 = *param_3;
              *(int **)(puVar16 + -0x10) = param_3;
              pcVar1 = *(code **)(iVar11 + 0x24);
              *(undefined4 *)(puVar16 + -0x14) = 0x25787c;
              iVar11 = (*pcVar1)();
            }
            if (iVar11 == -1) {
              param_3 = (int *)0x0;
              uVar9 = 0xffffffff;
              goto LAB_002571af;
            }
            iVar17 = *(int *)pcVar6;
            *(int *)(puVar16 + -0xc) = iVar11;
            *(ctype **)(puVar16 + -0x10) = pcVar6;
            pcVar1 = *(code **)(iVar17 + 0x20);
            *(undefined4 *)(puVar16 + -0x14) = 0x25767c;
            iVar17 = (*pcVar1)();
            iVar11 = *(int *)pcVar6;
            *(undefined4 *)(puVar16 + -0xc) = *param_10;
            *(ctype **)(puVar16 + -0x10) = pcVar6;
            pcVar1 = *(code **)(iVar11 + 0x20);
            *(undefined4 *)(puVar16 + -0x14) = 0x257689;
            iVar11 = (*pcVar1)();
            if (iVar17 != iVar11) {
              if ((int *)param_3[2] < (int *)param_3[3]) {
                iVar11 = *(int *)param_3[2];
              }
              else {
                iVar11 = *param_3;
                *(int **)(puVar16 + -0x10) = param_3;
                pcVar1 = *(code **)(iVar11 + 0x24);
                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;
                iVar11 = (*pcVar1)();
              }
              if (iVar11 == -1) {
                param_3 = (int *)0x0;
              }
              goto LAB_002571d2;
            }
          }
          if ((uint)param_3[2] < (uint)param_3[3]) {
            param_3[2] = param_3[2] + 4;
          }
          else {
            iVar11 = *param_3;
            *(int **)(puVar16 + -0x10) = param_3;
            pcVar1 = *(code **)(iVar11 + 0x28);
            *(undefined4 *)(puVar16 + -0x14) = 0x257811;
            (*pcVar1)();
          }
          *(undefined4 *)(puVar16 + 0xc) = 0xffffffff;
          param_10 = param_10 + 1;
        }
        else {
          param_10 = param_10 + 1;
          if (*(undefined4 **)(puVar16 + 0x98) != param_10) {
            puVar3 = *(undefined4 **)(puVar16 + 0x98);
            do {
              iVar11 = *(int *)pcVar6;
              *(undefined4 *)(puVar16 + -8) = *param_10;
              *(undefined4 *)(puVar16 + -0xc) = 0x2000;
              *(ctype **)(puVar16 + -0x10) = pcVar6;
              pcVar1 = *(code **)(iVar11 + 8);
              *(undefined4 *)(puVar16 + -0x14) = 0x257440;
              cVar4 = (*pcVar1)();
              if (cVar4 == '\0') break;
              param_10 = param_10 + 1;
            } while (puVar3 != param_10);
          }
          *(undefined4 **)(puVar16 + 0x94) = param_10;
          iVar11 = *(int *)(puVar16 + 0xc);
          *(ctype **)(puVar16 + 8) = pcVar6;
          bVar10 = iVar11 == -1;
          bVar14 = param_3 != (int *)0x0 && (bool)bVar10;
          if (bVar14) goto LAB_002574dc;
LAB_00257468:
          bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];
          bVar15 = (bool)bVar10;
          if (bVar13 != 0) goto LAB_00257510;
          while ((bool)puVar16[0x26] != bVar15) {
            while( true ) {
              iVar17 = iVar11;
              if ((param_3 != (int *)0x0) && (bVar10 != 0)) {
                if ((int *)param_3[2] < (int *)param_3[3]) {
                  iVar17 = *(int *)param_3[2];
                }
                else {
                  iVar17 = *param_3;
                  *(int **)(puVar16 + -0x10) = param_3;
                  pcVar1 = *(code **)(iVar17 + 0x24);
                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;
                  iVar17 = (*pcVar1)();
                }
                if (iVar17 == -1) {
                  param_3 = (int *)0x0;
                }
              }
              iVar7 = **(int **)(puVar16 + 8);
              *(int *)(puVar16 + -8) = iVar17;
              *(undefined4 *)(puVar16 + -0xc) = 0x2000;
              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 8);
              pcVar1 = *(code **)(iVar7 + 8);
              *(undefined4 *)(puVar16 + -0x14) = 0x2574ab;
              cVar4 = (*pcVar1)();
              if (cVar4 == '\0') goto LAB_00257548;
              if ((uint)param_3[2] < (uint)param_3[3]) {
                param_3[2] = param_3[2] + 4;
              }
              else {
                iVar11 = *param_3;
                *(int **)(puVar16 + -0x10) = param_3;
                pcVar1 = *(code **)(iVar11 + 0x28);
                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;
                (*pcVar1)();
              }
              iVar11 = -1;
              bVar10 = true;
              bVar14 = param_3 != (int *)0x0;
              if (!bVar14) goto LAB_00257468;
LAB_002574dc:
              if ((int *)param_3[2] < (int *)param_3[3]) {
                iVar17 = *(int *)param_3[2];
              }
              else {
                puVar16[0xc] = bVar10;
                iVar17 = *param_3;
                *(int **)(puVar16 + -0x10) = param_3;
                pcVar1 = *(code **)(iVar17 + 0x24);
                *(undefined4 *)(puVar16 + -0x14) = 0x257765;
                iVar17 = (*pcVar1)();
                bVar10 = puVar16[0xc];
              }
              bVar15 = false;
              if (iVar17 == -1) {
                param_3 = (int *)0x0;
                bVar15 = bVar14;
              }
              bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];
              if (bVar13 == 0) break;
LAB_00257510:
              piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);
              if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {
                iVar17 = *piVar2;
              }
              else {
                puVar16[0x27] = bVar10;
                puVar16[0xc] = bVar13;
                iVar17 = **(int **)(puVar16 + 4);
                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);
                pcVar1 = *(code **)(iVar17 + 0x24);
                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;
                iVar17 = (*pcVar1)();
                bVar10 = puVar16[0x27];
                bVar13 = puVar16[0xc];
              }
              uVar9 = 0;
              if (iVar17 != -1) {
                bVar13 = 0;
                uVar9 = *(undefined4 *)(puVar16 + 4);
              }
              *(undefined4 *)(puVar16 + 4) = uVar9;
              if ((bool)bVar13 == bVar15) goto LAB_00257548;
            }
          }
LAB_00257548:
          *(int *)(puVar16 + 0xc) = iVar11;
          pcVar6 = *(ctype **)(puVar16 + 8);
          param_10 = *(undefined4 **)(puVar16 + 0x94);
        }
        if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;
      }
    } while (**(int **)(puVar16 + 0x8c) == 0);
  }
  piVar2 = *(int **)(puVar16 + 0x70);
  iVar11 = *(int *)(puVar16 + 0xc);
  *piVar2 = (int)param_3;
  piVar2[1] = iVar11;
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void FUN_002570e0(undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,
                 undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,
                 undefined4 *param_10,undefined4 *param_11)

{
  int *piVar1;
  code *pcVar2;
  undefined4 *puVar3;
  char cVar4;
  char cVar5;
  int *piVar6;
  int iVar7;
  int *piVar8;
  byte bVar9;
  int iVar10;
  char cVar11;
  byte bVar12;
  bool bVar13;
  bool bVar14;
  int *piVar15;
  int *piVar16;
  int iVar17;
  int aiStackY_a0 [9];
  undefined4 local_68;
  byte local_64 [4];
  int local_60 [5];
  undefined4 local_4c;
  bool local_46;
  byte local_45;
  int local_44 [2];
  undefined **local_3c;
  int local_38 [10];
  
  local_4c = &__DT_PLTGOT;
  local_60[0] = param_4;
  local_68 = param_5;
  local_44[1] = param_6;
  local_38[0] = param_7 + 0x6c;
  piVar6 = (int *)FUN_0023c1d0(local_38[0]);
  *param_8 = 0;
  piVar16 = (int *)&stack0xffffff94;
  if (param_10 != param_11) {
    local_46 = local_44[1] == -1;
    local_3c = local_4c + -0x4e0a4;
    piVar16 = (int *)&stack0xffffff94;
    do {
      *(bool *)(piVar16 + 2) = piVar16[3] == -1;
      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);
      if (bVar9 == 0) {
        bVar12 = *(byte *)(piVar16 + 2);
      }
      else {
        if ((int *)param_3[2] < (int *)param_3[3]) {
          iVar10 = *(int *)param_3[2];
        }
        else {
          *(byte *)((int)piVar16 + 0x27) = bVar9;
          iVar10 = *param_3;
          piVar16[-4] = (int)param_3;
          pcVar2 = *(code **)(iVar10 + 0x24);
          piVar16[-5] = 0x257826;
          iVar10 = (*pcVar2)();
          bVar9 = *(byte *)((int)piVar16 + 0x27);
        }
        bVar12 = 0;
        if (iVar10 == -1) {
          param_3 = (int *)0x0;
          bVar12 = bVar9;
        }
      }
      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);
      if (bVar9 == 0) {
        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {
LAB_002575b3:
          *(undefined4 *)piVar16[0x23] = 6;
          break;
        }
      }
      else {
        piVar8 = *(int **)(piVar16[1] + 8);
        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {
          iVar10 = *piVar8;
        }
        else {
          *(byte *)(piVar16 + 10) = bVar9;
          *(byte *)((int)piVar16 + 0x27) = bVar12;
          iVar10 = *(int *)piVar16[1];
          piVar16[-4] = piVar16[1];
          pcVar2 = *(code **)(iVar10 + 0x24);
          piVar16[-5] = 0x257848;
          iVar10 = (*pcVar2)();
          bVar9 = *(byte *)(piVar16 + 10);
          bVar12 = *(byte *)((int)piVar16 + 0x27);
        }
        iVar17 = 0;
        if (iVar10 != -1) {
          bVar9 = 0;
          iVar17 = piVar16[1];
        }
        piVar16[1] = iVar17;
        if (bVar12 == bVar9) goto LAB_002575b3;
      }
      iVar10 = *piVar6;
      piVar16[-2] = 0;
      piVar16[-3] = *param_10;
      piVar16[-4] = (int)piVar6;
      pcVar2 = *(code **)(iVar10 + 0x30);
      piVar16[-5] = 0x25727f;
      cVar4 = (*pcVar2)();
      if (cVar4 == '%') {
        piVar16[2] = (int)(param_10 + 1);
        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {
LAB_00257861:
          *(undefined4 *)piVar16[0x23] = 4;
          break;
        }
        iVar10 = *piVar6;
        piVar16[-2] = 0;
        piVar16[-3] = param_10[1];
        piVar16[-4] = (int)piVar6;
        pcVar2 = *(code **)(iVar10 + 0x30);
        piVar16[-5] = 0x2572ad;
        cVar4 = (*pcVar2)();
        if (cVar4 == 'E') {
LAB_00257608:
          piVar16[2] = (int)(param_10 + 2);
          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;
          iVar10 = *piVar6;
          piVar16[-2] = 0;
          piVar16[-3] = param_10[2];
          piVar16[-4] = (int)piVar6;
          pcVar2 = *(code **)(iVar10 + 0x30);
          piVar16[-5] = 0x25762b;
          cVar5 = (*pcVar2)();
          iVar10 = (int)cVar4;
          cVar11 = cVar4;
        }
        else {
          iVar10 = 0;
          cVar11 = '\0';
          cVar5 = cVar4;
          if (cVar4 == 'O') goto LAB_00257608;
        }
        *(char *)((int)piVar16 + 0x27) = cVar11;
        iVar17 = (int)cVar5;
        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);
        if (pcVar2 == (code *)piVar16[0xc]) {
          piVar16[10] = iVar10;
          piVar16[-4] = piVar16[0xd];
          piVar16[-5] = 0x2572f4;
          piVar8 = (int *)FUN_0023c1d0();
          iVar10 = *piVar8;
          *(undefined4 *)piVar16[0x23] = 0;
          piVar16[-3] = 0x25;
          piVar16[-4] = (int)piVar8;
          pcVar2 = *(code **)(iVar10 + 0x28);
          piVar16[-5] = 0x25730b;
          iVar10 = (*pcVar2)();
          piVar16[0x10] = iVar10;
          if (*(char *)((int)piVar16 + 0x27) == '\0') {
            piVar16[0x11] = iVar17;
            piVar16[0x12] = 0;
          }
          else {
            piVar16[0x11] = piVar16[10];
            piVar16[0x12] = iVar17;
            piVar16[0x13] = 0;
          }
          piVar16[4] = (int)param_3;
          piVar16[5] = piVar16[3];
          piVar16[6] = piVar16[1];
          piVar16[7] = piVar16[0xb];
          piVar16[-3] = (int)(piVar16 + 0x10);
          piVar16[-4] = piVar16[0x24];
          piVar16[-5] = piVar16[0x23];
          piVar16[-6] = piVar16[0x22];
          piVar16[-7] = piVar16[7];
          piVar16[-8] = piVar16[6];
          piVar16[-9] = piVar16[5];
          piVar16[-10] = piVar16[4];
          piVar16[-0xb] = piVar16[0x1d];
          piVar16[-0xc] = (int)(piVar16 + 0xe);
          piVar16[-0xd] = 0x25738d;
          FUN_00255da0();
          iVar10 = piVar16[0xe];
          param_3 = (int *)piVar16[0xd];
          piVar16[4] = iVar10;
          piVar16[2] = iVar10;
          piVar16[3] = (int)param_3;
          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;
          cVar11 = iVar10 == -1;
          if ((bool)cVar4) {
            if ((int *)param_3[2] < (int *)param_3[3]) {
              iVar10 = *(int *)param_3[2];
            }
            else {
              *(char *)((int)piVar16 + 0x23) = cVar4;
              iVar10 = *param_3;
              piVar16[-5] = piVar16[3];
              pcVar2 = *(code **)(iVar10 + 0x24);
              piVar16[-6] = 0x2578ab;
              iVar10 = (*pcVar2)();
              cVar4 = *(char *)((int)piVar16 + 0x23);
            }
            cVar11 = '\0';
            if (iVar10 == -1) {
              param_3 = (int *)0x0;
              cVar11 = cVar4;
            }
          }
          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {
            cVar4 = *(char *)((int)piVar16 + 0x22);
          }
          else {
            piVar8 = *(int **)(*piVar16 + 8);
            if (piVar8 < *(int **)(*piVar16 + 0xc)) {
              iVar10 = *piVar8;
            }
            else {
              iVar10 = *(int *)*piVar16;
              piVar16[-5] = *piVar16;
              pcVar2 = *(code **)(iVar10 + 0x24);
              piVar16[-6] = 0x257893;
              iVar10 = (*pcVar2)();
            }
            cVar4 = iVar10 == -1;
          }
          if (cVar4 == cVar11) {
            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;
          }
        }
        else {
          piVar16[0x1e] = (int)param_3;
          piVar16[0x1f] = piVar16[3];
          piVar16[0x21] = piVar16[0xb];
          piVar16[0x20] = piVar16[1];
          piVar16[-2] = iVar10;
          piVar16[-3] = iVar17;
          piVar16[-4] = piVar16[0x24];
          piVar16[-5] = piVar16[0x23];
          piVar16[-6] = piVar16[0x22];
          piVar16[-7] = piVar16[0x21];
          piVar16[-8] = piVar16[0x20];
          piVar16[-9] = piVar16[0x1f];
          piVar16[-10] = piVar16[0x1e];
          piVar16[-0xb] = piVar16[0x1d];
          piVar16[-0xc] = (int)(piVar16 + 0xe);
          piVar16[-0xd] = 0x257721;
          (*pcVar2)();
          piVar16[0x1d] = piVar16[0xd];
          param_3 = (int *)piVar16[0x1d];
          piVar16[0x1e] = piVar16[0xe];
          piVar16[2] = piVar16[0x1e];
        }
        piVar15 = piVar16 + -1;
        param_10 = (undefined4 *)(piVar16[1] + 4);
        piVar1 = piVar16 + 0x25;
        piVar16 = piVar16 + -1;
        piVar8 = piVar15;
        if (param_10 == (undefined4 *)*piVar1) break;
      }
      else {
        iVar10 = *piVar6;
        piVar16[-2] = *param_10;
        piVar16[-3] = 0x2000;
        piVar16[-4] = (int)piVar6;
        pcVar2 = *(code **)(iVar10 + 8);
        piVar16[-5] = 0x257191;
        cVar4 = (*pcVar2)();
        if (cVar4 == '\0') {
          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {
            iVar10 = piVar16[3];
LAB_002571af:
            iVar17 = *piVar6;
            piVar16[-3] = iVar10;
            piVar16[-4] = (int)piVar6;
            pcVar2 = *(code **)(iVar17 + 0x20);
            piVar16[-5] = 0x2571ba;
            iVar17 = (*pcVar2)();
            iVar10 = *piVar6;
            piVar16[-3] = *param_10;
            piVar16[-4] = (int)piVar6;
            pcVar2 = *(code **)(iVar10 + 0x20);
            piVar16[-5] = 0x2571c7;
            iVar7 = (*pcVar2)();
            iVar10 = piVar16[3];
            if (iVar7 != iVar17) {
LAB_002571d2:
              iVar17 = *piVar6;
              piVar16[-3] = iVar10;
              piVar16[-4] = (int)piVar6;
              pcVar2 = *(code **)(iVar17 + 0x18);
              piVar16[-5] = 0x2571dd;
              iVar17 = (*pcVar2)();
              iVar10 = *piVar6;
              piVar16[-3] = *param_10;
              piVar16[-4] = (int)piVar6;
              pcVar2 = *(code **)(iVar10 + 0x18);
              piVar16[-5] = 0x2571ea;
              iVar10 = (*pcVar2)();
              if (iVar10 != iVar17) goto LAB_00257861;
            }
          }
          else {
            if ((int *)param_3[2] < (int *)param_3[3]) {
              iVar10 = *(int *)param_3[2];
            }
            else {
              iVar10 = *param_3;
              piVar16[-4] = (int)param_3;
              pcVar2 = *(code **)(iVar10 + 0x24);
              piVar16[-5] = 0x25787c;
              iVar10 = (*pcVar2)();
            }
            if (iVar10 == -1) {
              param_3 = (int *)0x0;
              iVar10 = -1;
              goto LAB_002571af;
            }
            iVar17 = *piVar6;
            piVar16[-3] = iVar10;
            piVar16[-4] = (int)piVar6;
            pcVar2 = *(code **)(iVar17 + 0x20);
            piVar16[-5] = 0x25767c;
            iVar17 = (*pcVar2)();
            iVar10 = *piVar6;
            piVar16[-3] = *param_10;
            piVar16[-4] = (int)piVar6;
            pcVar2 = *(code **)(iVar10 + 0x20);
            piVar16[-5] = 0x257689;
            iVar10 = (*pcVar2)();
            if (iVar17 != iVar10) {
              if ((int *)param_3[2] < (int *)param_3[3]) {
                iVar10 = *(int *)param_3[2];
              }
              else {
                iVar10 = *param_3;
                piVar16[-4] = (int)param_3;
                pcVar2 = *(code **)(iVar10 + 0x24);
                piVar16[-5] = 0x2578c1;
                iVar10 = (*pcVar2)();
              }
              if (iVar10 == -1) {
                param_3 = (int *)0x0;
              }
              goto LAB_002571d2;
            }
          }
          if ((uint)param_3[2] < (uint)param_3[3]) {
            param_3[2] = param_3[2] + 4;
          }
          else {
            iVar10 = *param_3;
            piVar16[-4] = (int)param_3;
            pcVar2 = *(code **)(iVar10 + 0x28);
            piVar16[-5] = 0x257811;
            (*pcVar2)();
          }
          piVar16[3] = -1;
          param_10 = param_10 + 1;
        }
        else {
          param_10 = param_10 + 1;
          if ((undefined4 *)piVar16[0x26] != param_10) {
            puVar3 = (undefined4 *)piVar16[0x26];
            do {
              iVar10 = *piVar6;
              piVar16[-2] = *param_10;
              piVar16[-3] = 0x2000;
              piVar16[-4] = (int)piVar6;
              pcVar2 = *(code **)(iVar10 + 8);
              piVar16[-5] = 0x257440;
              cVar4 = (*pcVar2)();
              if (cVar4 == '\0') break;
              param_10 = param_10 + 1;
            } while (puVar3 != param_10);
          }
          piVar16[0x25] = (int)param_10;
          iVar10 = piVar16[3];
          piVar16[2] = (int)piVar6;
          bVar9 = iVar10 == -1;
          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;
          if (bVar13) goto LAB_002574dc;
LAB_00257468:
          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);
          bVar14 = (bool)bVar9;
          if (bVar12 != 0) goto LAB_00257510;
          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {
            while( true ) {
              iVar17 = iVar10;
              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {
                if ((int *)param_3[2] < (int *)param_3[3]) {
                  iVar17 = *(int *)param_3[2];
                }
                else {
                  iVar17 = *param_3;
                  piVar16[-4] = (int)param_3;
                  pcVar2 = *(code **)(iVar17 + 0x24);
                  piVar16[-5] = 0x2577f9;
                  iVar17 = (*pcVar2)();
                }
                if (iVar17 == -1) {
                  param_3 = (int *)0x0;
                }
              }
              iVar7 = *(int *)piVar16[2];
              piVar16[-2] = iVar17;
              piVar16[-3] = 0x2000;
              piVar16[-4] = piVar16[2];
              pcVar2 = *(code **)(iVar7 + 8);
              piVar16[-5] = 0x2574ab;
              cVar4 = (*pcVar2)();
              if (cVar4 == '\0') goto LAB_00257548;
              if ((uint)param_3[2] < (uint)param_3[3]) {
                param_3[2] = param_3[2] + 4;
              }
              else {
                iVar10 = *param_3;
                piVar16[-4] = (int)param_3;
                pcVar2 = *(code **)(iVar10 + 0x28);
                piVar16[-5] = 0x2575f9;
                (*pcVar2)();
              }
              iVar10 = -1;
              bVar9 = true;
              bVar13 = param_3 != (int *)0x0;
              if (!bVar13) goto LAB_00257468;
LAB_002574dc:
              if ((int *)param_3[2] < (int *)param_3[3]) {
                iVar17 = *(int *)param_3[2];
              }
              else {
                *(byte *)(piVar16 + 3) = bVar9;
                iVar17 = *param_3;
                piVar16[-4] = (int)param_3;
                pcVar2 = *(code **)(iVar17 + 0x24);
                piVar16[-5] = 0x257765;
                iVar17 = (*pcVar2)();
                bVar9 = *(byte *)(piVar16 + 3);
              }
              bVar14 = false;
              if (iVar17 == -1) {
                param_3 = (int *)0x0;
                bVar14 = bVar13;
              }
              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);
              if (bVar12 == 0) break;
LAB_00257510:
              piVar6 = *(int **)(piVar16[1] + 8);
              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {
                iVar17 = *piVar6;
              }
              else {
                *(byte *)((int)piVar16 + 0x27) = bVar9;
                *(byte *)(piVar16 + 3) = bVar12;
                iVar17 = *(int *)piVar16[1];
                piVar16[-4] = piVar16[1];
                pcVar2 = *(code **)(iVar17 + 0x24);
                piVar16[-5] = 0x25778d;
                iVar17 = (*pcVar2)();
                bVar9 = *(byte *)((int)piVar16 + 0x27);
                bVar12 = *(byte *)(piVar16 + 3);
              }
              iVar7 = 0;
              if (iVar17 != -1) {
                bVar12 = 0;
                iVar7 = piVar16[1];
              }
              piVar16[1] = iVar7;
              if ((bool)bVar12 == bVar14) goto LAB_00257548;
            }
          }
LAB_00257548:
          piVar16[3] = iVar10;
          piVar6 = (int *)piVar16[2];
          param_10 = (undefined4 *)piVar16[0x25];
        }
        piVar8 = piVar16;
        if (param_10 == (undefined4 *)piVar16[0x26]) break;
      }
      piVar16 = piVar8;
    } while (**(int **)((int)piVar16 + 0x8c) == 0);
  }
  piVar6 = *(int **)((int)piVar16 + 0x70);
  iVar10 = *(int *)((int)piVar16 + 0xc);
  *piVar6 = (int)param_3;
  piVar6[1] = iVar10;
  return;
}


CALL 0x000559e6
ADD EAX,0x137f1b
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x68
MOV ECX,dword ptr [ESP + 0x88]
MOV EBX,dword ptr [ESP + 0x94]
MOV dword ptr [ESP + 0x2c],EAX
MOV EDI,dword ptr [ESP + 0xa0]
MOV ESI,dword ptr [ESP + 0x84]
MOV dword ptr [ESP + 0x18],ECX
MOV ECX,dword ptr [ESP + 0x8c]
MOV dword ptr [ESP + 0x10],ECX
MOV ECX,dword ptr [ESP + 0x90]
MOV dword ptr [ESP + 0x38],ECX
LEA ECX,[EBX + 0x6c]
MOV EBX,EAX
MOV dword ptr [ESP + 0x40],ECX
PUSH ECX
MOV dword ptr [ESP + 0x30],EAX
CALL 0x0023c1d0
MOV EBX,dword ptr [ESP + 0x9c]
ADD ESP,0x10
MOV dword ptr [EBX],0x0
CMP EDI,dword ptr [ESP + 0x98]
JZ 0x002573f3
MOV EBP,EAX
MOV EAX,dword ptr [ESP + 0x20]
CMP dword ptr [ESP + 0x2c],-0x1
SETZ byte ptr [ESP + 0x26]
LEA EAX,[EAX + 0xffec7d70]
MOV dword ptr [ESP + 0x30],EAX
JMP 0x00257230
SUB ESP,0x4
MOV EAX,dword ptr [EBP]
PUSH dword ptr [EDI]
PUSH 0x2000
PUSH EBP
CALL dword ptr [EAX + 0x8]
ADD ESP,0x10
TEST AL,AL
JNZ 0x00257410
TEST ESI,ESI
JZ 0x002571ab
CMP byte ptr [ESP + 0x8],0x0
JNZ 0x00257658
MOV EDX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EBP]
SUB ESP,0x8
PUSH EDX
PUSH EBP
CALL dword ptr [EAX + 0x20]
POP ECX
MOV EBX,EAX
POP EAX
MOV EAX,dword ptr [EBP]
PUSH dword ptr [EDI]
PUSH EBP
CALL dword ptr [EAX + 0x20]
MOV EDX,dword ptr [ESP + 0x1c]
ADD ESP,0x10
CMP EAX,EBX
JZ 0x002571f5
MOV EAX,dword ptr [EBP]
SUB ESP,0x8
PUSH EDX
PUSH EBP
CALL dword ptr [EAX + 0x18]
MOV EBX,EAX
POP EAX
MOV EAX,dword ptr [EBP]
POP EDX
PUSH dword ptr [EDI]
PUSH EBP
CALL dword ptr [EAX + 0x18]
ADD ESP,0x10
CMP EAX,EBX
JNZ 0x00257861
MOV EAX,dword ptr [ESI + 0x8]
CMP EAX,dword ptr [ESI + 0xc]
JNC 0x00257808
ADD EAX,0x4
MOV dword ptr [ESI + 0x8],EAX
MOV dword ptr [ESP + 0xc],0xffffffff
ADD EDI,0x4
CMP EDI,dword ptr [ESP + 0x98]
JZ 0x002573f3
MOV EAX,dword ptr [ESP + 0x8c]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JNZ 0x002573f3
CMP dword ptr [ESP + 0xc],-0x1
SETZ byte ptr [ESP + 0x8]
TEST ESI,ESI
MOVZX EAX,byte ptr [ESP + 0x8]
SETNZ CL
AND CL,AL
JNZ 0x002575c8
MOVZX ECX,byte ptr [ESP + 0x8]
MOV EBX,dword ptr [ESP + 0x4]
TEST EBX,EBX
SETNZ DL
AND DL,byte ptr [ESP + 0x26]
JNZ 0x00257580
MOVZX EDX,byte ptr [ESP + 0x26]
CMP CL,DL
JZ 0x002575b3
SUB ESP,0x4
MOV EAX,dword ptr [EBP]
PUSH 0x0
PUSH dword ptr [EDI]
PUSH EBP
CALL dword ptr [EAX + 0x30]
ADD ESP,0x10
CMP AL,0x25
JNZ 0x00257180
LEA EAX,[EDI + 0x4]
MOV dword ptr [ESP + 0x8],EAX
CMP dword ptr [ESP + 0x98],EAX
JZ 0x00257861
SUB ESP,0x4
MOV EAX,dword ptr [EBP]
PUSH 0x0
PUSH dword ptr [EDI + 0x4]
PUSH EBP
CALL dword ptr [EAX + 0x30]
MOV EBX,EAX
ADD ESP,0x10
CMP AL,0x45
JZ 0x00257608
XOR ECX,ECX
XOR EDX,EDX
CMP AL,0x4f
JZ 0x00257608
MOV EAX,dword ptr [ESP + 0x74]
MOV byte ptr [ESP + 0x27],DL
MOVSX EDI,BL
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x20]
CMP EAX,dword ptr [ESP + 0x30]
JNZ 0x002576b8
MOV dword ptr [ESP + 0x28],ECX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x40]
MOV EBX,dword ptr [ESP + 0x30]
CALL 0x0023c1d0
MOV ECX,dword ptr [ESP + 0x9c]
MOV EBX,dword ptr [EAX]
MOV dword ptr [ECX],0x0
POP EDX
POP ECX
PUSH 0x25
PUSH EAX
CALL dword ptr [EBX + 0x28]
MOV dword ptr [ESP + 0x50],EAX
ADD ESP,0x10
MOVZX EDX,byte ptr [ESP + 0x27]
MOV ECX,dword ptr [ESP + 0x28]
TEST DL,DL
JNZ 0x00257640
MOV dword ptr [ESP + 0x44],EDI
MOV dword ptr [ESP + 0x48],0x0
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x10],ESI
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,dword ptr [ESP + 0x4]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[ESP + 0x38]
SUB ESP,0x8
LEA EDX,[ESP + 0x48]
PUSH EDX
PUSH dword ptr [ESP + 0x9c]
PUSH dword ptr [ESP + 0x9c]
PUSH dword ptr [ESP + 0x9c]
PUSH dword ptr [ESP + 0x34]
PUSH dword ptr [ESP + 0x34]
PUSH dword ptr [ESP + 0x34]
PUSH dword ptr [ESP + 0x34]
PUSH dword ptr [ESP + 0x9c]
PUSH EAX
MOV EBX,dword ptr [ESP + 0x50]
CALL 0x00255da0
MOV EDX,dword ptr [ESP + 0x68]
MOV EAX,dword ptr [ESP + 0x64]
MOV dword ptr [ESP + 0x40],EDX
MOV ESI,EAX
MOV dword ptr [ESP + 0x38],EDX
MOV dword ptr [ESP + 0x3c],EAX
ADD ESP,0x2c
CMP EDX,-0x1
SETZ BL
TEST ESI,ESI
SETNZ DL
AND DL,BL
JNZ 0x002577a0
MOV EAX,dword ptr [ESP + 0x4]
TEST EAX,EAX
JZ 0x002573cc
CMP byte ptr [ESP + 0x26],0x0
JNZ 0x002577d0
MOVZX EAX,byte ptr [ESP + 0x26]
CMP AL,BL
JNZ 0x002573df
MOV EAX,dword ptr [ESP + 0x8c]
OR dword ptr [EAX],0x2
MOV EDI,dword ptr [ESP + 0x8]
ADD EDI,0x4
CMP EDI,dword ptr [ESP + 0x98]
JNZ 0x0025721f
MOV EAX,dword ptr [ESP + 0x70]
MOV ECX,dword ptr [ESP + 0xc]
MOV dword ptr [EAX],ESI
MOV dword ptr [EAX + 0x4],ECX
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET 0x4
ADD EDI,0x4
CMP dword ptr [ESP + 0x98],EDI
JZ 0x00257447
MOV EBX,dword ptr [ESP + 0x98]
JMP 0x0025742f
ADD EDI,0x4
CMP EBX,EDI
JZ 0x00257447
SUB ESP,0x4
MOV EAX,dword ptr [EBP]
PUSH dword ptr [EDI]
PUSH 0x2000
PUSH EBP
CALL dword ptr [EAX + 0x8]
ADD ESP,0x10
TEST AL,AL
JNZ 0x00257428
MOV dword ptr [ESP + 0x94],EDI
MOV EDI,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x8],EBP
CMP EDI,-0x1
SETZ CL
TEST ESI,ESI
SETNZ BL
AND BL,CL
JNZ 0x002574dc
LEA ESI,[ESI]
MOV EBP,dword ptr [ESP + 0x4]
MOV EBX,ECX
TEST EBP,EBP
SETNZ DL
AND DL,byte ptr [ESP + 0x26]
JNZ 0x00257510
MOVZX EDX,byte ptr [ESP + 0x26]
CMP DL,BL
JZ 0x00257548
TEST ESI,ESI
JZ 0x00257496
TEST CL,CL
JNZ 0x00257560
MOV EDX,EDI
SUB ESP,0x4
MOV ECX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ECX]
PUSH EDX
PUSH 0x2000
PUSH ECX
CALL dword ptr [EAX + 0x8]
ADD ESP,0x10
TEST AL,AL
JZ 0x00257548
MOV EAX,dword ptr [ESI + 0x8]
CMP EAX,dword ptr [ESI + 0xc]
JNC 0x002575f0
ADD EAX,0x4
MOV dword ptr [ESI + 0x8],EAX
MOV EDI,0xffffffff
CMP EDI,-0x1
SETZ CL
TEST ESI,ESI
SETNZ BL
AND BL,CL
JZ 0x00257468
MOV EAX,dword ptr [ESI + 0x8]
CMP EAX,dword ptr [ESI + 0xc]
JNC 0x00257758
MOV EAX,dword ptr [EAX]
MOV EBP,dword ptr [ESP + 0x4]
CMP EAX,-0x1
MOV EDX,0x0
MOV EAX,0x0
CMOVZ ESI,EDX
CMOVNZ EBX,EAX
TEST EBP,EBP
SETNZ DL
AND DL,byte ptr [ESP + 0x26]
JZ 0x0025747d
MOV EBP,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [EBP + 0x8]
CMP EAX,dword ptr [EBP + 0xc]
JNC 0x00257778
MOV EAX,dword ptr [EAX]
CMP EAX,-0x1
MOV EAX,0x0
MOV EBP,0x0
CMOVNZ EBP,dword ptr [ESP + 0x4]
CMOVNZ EDX,EAX
MOV dword ptr [ESP + 0x4],EBP
CMP DL,BL
JNZ 0x0025748a
LEA ESI,[ESI]
NOP
MOV dword ptr [ESP + 0xc],EDI
MOV EBP,dword ptr [ESP + 0x8]
MOV EDI,dword ptr [ESP + 0x94]
JMP 0x00257212
MOV EAX,dword ptr [ESI + 0x8]
CMP EAX,dword ptr [ESI + 0xc]
JNC 0x002577f0
MOV EDX,dword ptr [EAX]
MOV EAX,EDX
CMP EAX,-0x1
MOV EAX,0x0
CMOVZ ESI,EAX
JMP 0x00257498
MOV EBX,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [EBX + 0x8]
CMP EAX,dword ptr [EBX + 0xc]
JNC 0x00257833
MOV EAX,dword ptr [EAX]
CMP EAX,-0x1
MOV EAX,0x0
MOV EBX,0x0
CMOVNZ EBX,dword ptr [ESP + 0x4]
CMOVNZ EDX,EAX
MOV dword ptr [ESP + 0x4],EBX
CMP CL,DL
JNZ 0x00257271
MOV EAX,dword ptr [ESP + 0x8c]
MOV dword ptr [EAX],0x6
JMP 0x002573f3
MOV EAX,dword ptr [ESI + 0x8]
CMP EAX,dword ptr [ESI + 0xc]
JNC 0x00257819
MOV EAX,dword ptr [EAX]
CMP EAX,-0x1
MOV EBX,0x0
MOV EAX,0x0
CMOVZ ESI,EBX
CMOVNZ ECX,EAX
JMP 0x00257251
SUB ESP,0xc
MOV EAX,dword ptr [ESI]
PUSH ESI
CALL dword ptr [EAX + 0x28]
ADD ESP,0x10
JMP 0x002574c8
LEA EAX,[EDI + 0x8]
MOV dword ptr [ESP + 0x8],EAX
CMP dword ptr [ESP + 0x98],EAX
JZ 0x00257861
SUB ESP,0x4
MOV EAX,dword ptr [EBP]
PUSH 0x0
PUSH dword ptr [EDI + 0x8]
PUSH EBP
CALL dword ptr [EAX + 0x30]
MOVSX ECX,BL
MOV EDX,EBX
MOV EBX,EAX
ADD ESP,0x10
JMP 0x002572c6
MOV dword ptr [ESP + 0x44],ECX
MOV dword ptr [ESP + 0x48],EDI
MOV dword ptr [ESP + 0x4c],0x0
JMP 0x0025732f
MOV EAX,dword ptr [ESI + 0x8]
CMP EAX,dword ptr [ESI + 0xc]
JNC 0x00257873
MOV EDX,dword ptr [EAX]
MOV EAX,EDX
CMP EAX,-0x1
JZ 0x0025785a
MOV EAX,dword ptr [EBP]
SUB ESP,0x8
PUSH EDX
PUSH EBP
CALL dword ptr [EAX + 0x20]
MOV EBX,EAX
POP EAX
MOV EAX,dword ptr [EBP]
POP EDX
PUSH dword ptr [EDI]
PUSH EBP
CALL dword ptr [EAX + 0x20]
ADD ESP,0x10
CMP EBX,EAX
JZ 0x002571f5
MOV EAX,dword ptr [ESI + 0x8]
CMP EAX,dword ptr [ESI + 0xc]
JNC 0x002578b8
MOV EDX,dword ptr [EAX]
MOV EAX,EDX
CMP EAX,-0x1
MOV EAX,0x0
CMOVZ ESI,EAX
JMP 0x002571d2
MOV EBX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x78],ESI
LEA EDX,[ESP + 0x38]
SUB ESP,0x4
MOV ESI,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x80],EBX
MOV EBX,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x88],ESI
MOV dword ptr [ESP + 0x84],EBX
PUSH ECX
PUSH EDI
PUSH dword ptr [ESP + 0x9c]
PUSH dword ptr [ESP + 0x9c]
PUSH dword ptr [ESP + 0x9c]
PUSH dword ptr [ESP + 0x9c]
PUSH dword ptr [ESP + 0x9c]
PUSH dword ptr [ESP + 0x9c]
PUSH dword ptr [ESP + 0x9c]
PUSH dword ptr [ESP + 0x9c]
PUSH EDX
CALL EAX
MOV EAX,dword ptr [ESP + 0x64]
MOV EDX,dword ptr [ESP + 0x68]
MOV dword ptr [ESP + 0xa4],EAX
MOV ESI,dword ptr [ESP + 0xa4]
MOV dword ptr [ESP + 0xa8],EDX
MOV EAX,dword ptr [ESP + 0xa8]
MOV dword ptr [ESP + 0x38],EAX
ADD ESP,0x2c
JMP 0x002573df
MOV byte ptr [ESP + 0xc],CL
SUB ESP,0xc
MOV EAX,dword ptr [ESI]
PUSH ESI
CALL dword ptr [EAX + 0x24]
MOVZX ECX,byte ptr [ESP + 0x1c]
ADD ESP,0x10
JMP 0x002574ea
MOV byte ptr [ESP + 0x27],CL
SUB ESP,0xc
MOV byte ptr [ESP + 0x18],DL
MOV ECX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ECX]
PUSH ECX
CALL dword ptr [EAX + 0x24]
MOVZX ECX,byte ptr [ESP + 0x37]
MOVZX EDX,byte ptr [ESP + 0x1c]
ADD ESP,0x10
JMP 0x00257522
MOV EAX,dword ptr [ESI + 0x8]
CMP EAX,dword ptr [ESI + 0xc]
JNC 0x0025789b
MOV EAX,dword ptr [EAX]
CMP EAX,-0x1
MOV EBX,0x0
MOV EAX,0x0
CMOVZ EBX,EDX
CMOVZ ESI,EAX
JMP 0x002573b9
MOV ECX,dword ptr [ESP + 0x4]
MOV EAX,dword ptr [ECX + 0x8]
CMP EAX,dword ptr [ECX + 0xc]
JNC 0x00257886
MOV EAX,dword ptr [EAX]
CMP EAX,-0x1
SETZ AL
JMP 0x002573d1
SUB ESP,0xc
MOV EAX,dword ptr [ESI]
PUSH ESI
CALL dword ptr [EAX + 0x24]
MOV EDX,EAX
ADD ESP,0x10
JMP 0x00257570
SUB ESP,0xc
MOV EAX,dword ptr [ESI]
PUSH ESI
CALL dword ptr [EAX + 0x28]
ADD ESP,0x10
JMP 0x00257207
MOV byte ptr [ESP + 0x27],CL
SUB ESP,0xc
MOV EAX,dword ptr [ESI]
PUSH ESI
CALL dword ptr [EAX + 0x24]
MOVZX ECX,byte ptr [ESP + 0x37]
ADD ESP,0x10
JMP 0x002575d6
MOV byte ptr [ESP + 0x28],DL
SUB ESP,0xc
MOV byte ptr [ESP + 0x33],CL
MOV ECX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ECX]
PUSH ECX
CALL dword ptr [EAX + 0x24]
MOVZX EDX,byte ptr [ESP + 0x38]
MOVZX ECX,byte ptr [ESP + 0x37]
ADD ESP,0x10
JMP 0x00257592
XOR ESI,ESI
JMP 0x002571af
MOV EAX,dword ptr [ESP + 0x8c]
MOV dword ptr [EAX],0x4
JMP 0x002573f3
SUB ESP,0xc
MOV EAX,dword ptr [ESI]
PUSH ESI
CALL dword ptr [EAX + 0x24]
MOV EDX,EAX
ADD ESP,0x10
JMP 0x00257668
SUB ESP,0xc
MOV ECX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ECX]
PUSH ECX
CALL dword ptr [EAX + 0x24]
ADD ESP,0x10
JMP 0x002577e2
MOV byte ptr [ESP + 0x27],DL
SUB ESP,0xc
MOV EAX,dword ptr [ESI]
PUSH dword ptr [ESP + 0x1c]
CALL dword ptr [EAX + 0x24]
MOVZX EDX,byte ptr [ESP + 0x37]
ADD ESP,0x10
JMP 0x002577ae
SUB ESP,0xc
MOV EAX,dword ptr [ESI]
PUSH ESI
CALL dword ptr [EAX + 0x24]
MOV EDX,EAX
ADD ESP,0x10
JMP 0x002576a4
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_002570e0(undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,\n                 undefined4 *param_10,undefined4 *param_11)\n\n{\n  int *piVar1;\n  code *pcVar2;\n  undefined4 *puVar3;\n  char cVar4;\n  char cVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  byte bVar9;\n  int iVar10;\n  char cVar11;\n  byte bVar12;\n  bool bVar13;\n  bool bVar14;\n  int *piVar15;\n  int *piVar16;\n  int iVar17;\n  int aiStackY_a0 [9];\n  undefined4 local_68;\n  byte local_64 [4];\n  int local_60 [5];\n  undefined4 local_4c;\n  bool local_46;\n  byte local_45;\n  int local_44 [2];\n  undefined **local_3c;\n  int local_38 [10];\n  \n  local_4c = &__DT_PLTGOT;\n  local_60[0] = param_4;\n  local_68 = param_5;\n  local_44[1] = param_6;\n  local_38[0] = param_7 + 0x6c;\n  piVar6 = (int *)FUN_0023c1d0(local_38[0]);\n  *param_8 = 0;\n  piVar16 = (int *)&stack0xffffff94;\n  if (param_10 != param_11) {\n    local_46 = local_44[1] == -1;\n    local_3c = local_4c + -0x4e0a4;\n    piVar16 = (int *)&stack0xffffff94;\n    do {\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    } while (**(int **)((int)piVar16 + 0x8c) == 0);\n  }\n  piVar6 = *(int **)((int)piVar16 + 0x70);\n  iVar10 = *(int *)((int)piVar16 + 0xc);\n  *piVar6 = (int)param_3;\n  piVar6[1] = iVar10;\n  return;\n}\n\n" comment (function_definition "void FUN_002570e0(undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,\n                 undefined4 *param_10,undefined4 *param_11)\n\n{\n  int *piVar1;\n  code *pcVar2;\n  undefined4 *puVar3;\n  char cVar4;\n  char cVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  byte bVar9;\n  int iVar10;\n  char cVar11;\n  byte bVar12;\n  bool bVar13;\n  bool bVar14;\n  int *piVar15;\n  int *piVar16;\n  int iVar17;\n  int aiStackY_a0 [9];\n  undefined4 local_68;\n  byte local_64 [4];\n  int local_60 [5];\n  undefined4 local_4c;\n  bool local_46;\n  byte local_45;\n  int local_44 [2];\n  undefined **local_3c;\n  int local_38 [10];\n  \n  local_4c = &__DT_PLTGOT;\n  local_60[0] = param_4;\n  local_68 = param_5;\n  local_44[1] = param_6;\n  local_38[0] = param_7 + 0x6c;\n  piVar6 = (int *)FUN_0023c1d0(local_38[0]);\n  *param_8 = 0;\n  piVar16 = (int *)&stack0xffffff94;\n  if (param_10 != param_11) {\n    local_46 = local_44[1] == -1;\n    local_3c = local_4c + -0x4e0a4;\n    piVar16 = (int *)&stack0xffffff94;\n    do {\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    } while (**(int **)((int)piVar16 + 0x8c) == 0);\n  }\n  piVar6 = *(int **)((int)piVar16 + 0x70);\n  iVar10 = *(int *)((int)piVar16 + 0xc);\n  *piVar6 = (int)param_3;\n  piVar6[1] = iVar10;\n  return;\n}" primitive_type (function_declarator "FUN_002570e0(undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,\n                 undefined4 *param_10,undefined4 *param_11)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,\n                 undefined4 *param_10,undefined4 *param_11)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "undefined4 *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "undefined4 param_9" type_identifier identifier) , (parameter_declaration "undefined4 *param_10" type_identifier (pointer_declarator "*param_10" * identifier)) , (parameter_declaration "undefined4 *param_11" type_identifier (pointer_declarator "*param_11" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  code *pcVar2;\n  undefined4 *puVar3;\n  char cVar4;\n  char cVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  byte bVar9;\n  int iVar10;\n  char cVar11;\n  byte bVar12;\n  bool bVar13;\n  bool bVar14;\n  int *piVar15;\n  int *piVar16;\n  int iVar17;\n  int aiStackY_a0 [9];\n  undefined4 local_68;\n  byte local_64 [4];\n  int local_60 [5];\n  undefined4 local_4c;\n  bool local_46;\n  byte local_45;\n  int local_44 [2];\n  undefined **local_3c;\n  int local_38 [10];\n  \n  local_4c = &__DT_PLTGOT;\n  local_60[0] = param_4;\n  local_68 = param_5;\n  local_44[1] = param_6;\n  local_38[0] = param_7 + 0x6c;\n  piVar6 = (int *)FUN_0023c1d0(local_38[0]);\n  *param_8 = 0;\n  piVar16 = (int *)&stack0xffffff94;\n  if (param_10 != param_11) {\n    local_46 = local_44[1] == -1;\n    local_3c = local_4c + -0x4e0a4;\n    piVar16 = (int *)&stack0xffffff94;\n    do {\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    } while (**(int **)((int)piVar16 + 0x8c) == 0);\n  }\n  piVar6 = *(int **)((int)piVar16 + 0x70);\n  iVar10 = *(int *)((int)piVar16 + 0xc);\n  *piVar6 = (int)param_3;\n  piVar6[1] = iVar10;\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int aiStackY_a0 [9];" primitive_type (array_declarator "aiStackY_a0 [9]" identifier [ number_literal ]) ;) (declaration "undefined4 local_68;" type_identifier identifier ;) (declaration "byte local_64 [4];" type_identifier (array_declarator "local_64 [4]" identifier [ number_literal ]) ;) (declaration "int local_60 [5];" primitive_type (array_declarator "local_60 [5]" identifier [ number_literal ]) ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "bool local_46;" primitive_type identifier ;) (declaration "byte local_45;" type_identifier identifier ;) (declaration "int local_44 [2];" primitive_type (array_declarator "local_44 [2]" identifier [ number_literal ]) ;) (declaration "undefined **local_3c;" type_identifier (pointer_declarator "**local_3c" * (pointer_declarator "*local_3c" * identifier)) ;) (declaration "int local_38 [10];" primitive_type (array_declarator "local_38 [10]" identifier [ number_literal ]) ;) (expression_statement "local_4c = &__DT_PLTGOT;" (assignment_expression "local_4c = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_60[0] = param_4;" (assignment_expression "local_60[0] = param_4" (subscript_expression "local_60[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_68 = param_5;" (assignment_expression "local_68 = param_5" identifier = identifier) ;) (expression_statement "local_44[1] = param_6;" (assignment_expression "local_44[1] = param_6" (subscript_expression "local_44[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_38[0] = param_7 + 0x6c;" (assignment_expression "local_38[0] = param_7 + 0x6c" (subscript_expression "local_38[0]" identifier [ number_literal ]) = (binary_expression "param_7 + 0x6c" identifier + number_literal)) ;) (expression_statement "piVar6 = (int *)FUN_0023c1d0(local_38[0]);" (assignment_expression "piVar6 = (int *)FUN_0023c1d0(local_38[0])" identifier = (cast_expression "(int *)FUN_0023c1d0(local_38[0])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0023c1d0(local_38[0])" identifier (argument_list "(local_38[0])" ( (subscript_expression "local_38[0]" identifier [ number_literal ]) ))))) ;) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "piVar16 = (int *)&stack0xffffff94;" (assignment_expression "piVar16 = (int *)&stack0xffffff94" identifier = (cast_expression "(int *)&stack0xffffff94" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffff94" & identifier))) ;) (if_statement "if (param_10 != param_11) {\n    local_46 = local_44[1] == -1;\n    local_3c = local_4c + -0x4e0a4;\n    piVar16 = (int *)&stack0xffffff94;\n    do {\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    } while (**(int **)((int)piVar16 + 0x8c) == 0);\n  }" if (parenthesized_expression "(param_10 != param_11)" ( (binary_expression "param_10 != param_11" identifier != identifier) )) (compound_statement "{\n    local_46 = local_44[1] == -1;\n    local_3c = local_4c + -0x4e0a4;\n    piVar16 = (int *)&stack0xffffff94;\n    do {\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    } while (**(int **)((int)piVar16 + 0x8c) == 0);\n  }" { (expression_statement "local_46 = local_44[1] == -1;" (assignment_expression "local_46 = local_44[1] == -1" identifier = (binary_expression "local_44[1] == -1" (subscript_expression "local_44[1]" identifier [ number_literal ]) == number_literal)) ;) (expression_statement "local_3c = local_4c + -0x4e0a4;" (assignment_expression "local_3c = local_4c + -0x4e0a4" identifier = (binary_expression "local_4c + -0x4e0a4" identifier + number_literal)) ;) (expression_statement "piVar16 = (int *)&stack0xffffff94;" (assignment_expression "piVar16 = (int *)&stack0xffffff94" identifier = (cast_expression "(int *)&stack0xffffff94" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffff94" & identifier))) ;) (do_statement "do {\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    } while (**(int **)((int)piVar16 + 0x8c) == 0);" do (compound_statement "{\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    }" { (expression_statement "*(bool *)(piVar16 + 2) = piVar16[3] == -1;" (assignment_expression "*(bool *)(piVar16 + 2) = piVar16[3] == -1" (pointer_expression "*(bool *)(piVar16 + 2)" * (cast_expression "(bool *)(piVar16 + 2)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 2)" ( (binary_expression "piVar16 + 2" identifier + number_literal) )))) = (binary_expression "piVar16[3] == -1" (subscript_expression "piVar16[3]" identifier [ number_literal ]) == number_literal)) ;) (expression_statement "bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);" (assignment_expression "bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2)" identifier = (binary_expression "param_3 != (int *)0x0 & *(byte *)(piVar16 + 2)" (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) & (pointer_expression "*(byte *)(piVar16 + 2)" * (cast_expression "(byte *)(piVar16 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 2)" ( (binary_expression "piVar16 + 2" identifier + number_literal) )))))) ;) (if_statement "if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar12 = *(byte *)(piVar16 + 2);\n      }" { (expression_statement "bVar12 = *(byte *)(piVar16 + 2);" (assignment_expression "bVar12 = *(byte *)(piVar16 + 2)" identifier = (pointer_expression "*(byte *)(piVar16 + 2)" * (cast_expression "(byte *)(piVar16 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 2)" ( (binary_expression "piVar16 + 2" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }" else (compound_statement "{\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar10 = *(int *)param_3[2];\n        }" { (expression_statement "iVar10 = *(int *)param_3[2];" (assignment_expression "iVar10 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }" else (compound_statement "{\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }" { (expression_statement "*(byte *)((int)piVar16 + 0x27) = bVar9;" (assignment_expression "*(byte *)((int)piVar16 + 0x27) = bVar9" (pointer_expression "*(byte *)((int)piVar16 + 0x27)" * (cast_expression "(byte *)((int)piVar16 + 0x27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x27)" ( (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar10 = *param_3;" (assignment_expression "iVar10 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x24)" identifier = (pointer_expression "*(code **)(iVar10 + 0x24)" * (cast_expression "(code **)(iVar10 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x24)" ( (binary_expression "iVar10 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x257826;" (assignment_expression "piVar16[-5] = 0x257826" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "bVar9 = *(byte *)((int)piVar16 + 0x27);" (assignment_expression "bVar9 = *(byte *)((int)piVar16 + 0x27)" identifier = (pointer_expression "*(byte *)((int)piVar16 + 0x27)" * (cast_expression "(byte *)((int)piVar16 + 0x27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x27)" ( (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (if_statement "if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }" if (parenthesized_expression "(iVar10 == -1)" ( (binary_expression "iVar10 == -1" identifier == number_literal) )) (compound_statement "{\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar12 = bVar9;" (assignment_expression "bVar12 = bVar9" identifier = identifier) ;) })) }))) (expression_statement "bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);" (assignment_expression "bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26)" identifier = (binary_expression "piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26)" (binary_expression "piVar16[1] != 0" (subscript_expression "piVar16[1]" identifier [ number_literal ]) != number_literal) & (pointer_expression "*(byte *)((int)piVar16 + 0x26)" * (cast_expression "(byte *)((int)piVar16 + 0x26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x26)" ( (binary_expression "(int)piVar16 + 0x26" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }" { (if_statement "if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }" if (parenthesized_expression "(bVar12 == *(byte *)((int)piVar16 + 0x26))" ( (binary_expression "bVar12 == *(byte *)((int)piVar16 + 0x26)" identifier == (pointer_expression "*(byte *)((int)piVar16 + 0x26)" * (cast_expression "(byte *)((int)piVar16 + 0x26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x26)" ( (binary_expression "(int)piVar16 + 0x26" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }" { (labeled_statement "LAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;" statement_identifier : (expression_statement "*(undefined4 *)piVar16[0x23] = 6;" (assignment_expression "*(undefined4 *)piVar16[0x23] = 6" (pointer_expression "*(undefined4 *)piVar16[0x23]" * (cast_expression "(undefined4 *)piVar16[0x23]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x23]" identifier [ number_literal ]))) = number_literal) ;)) (break_statement "break;" break ;) })) }) (else_clause "else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }" else (compound_statement "{\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }" { (expression_statement "piVar8 = *(int **)(piVar16[1] + 8);" (assignment_expression "piVar8 = *(int **)(piVar16[1] + 8)" identifier = (pointer_expression "*(int **)(piVar16[1] + 8)" * (cast_expression "(int **)(piVar16[1] + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar16[1] + 8)" ( (binary_expression "piVar16[1] + 8" (subscript_expression "piVar16[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }" if (parenthesized_expression "(piVar8 < *(int **)(piVar16[1] + 0xc))" ( (binary_expression "piVar8 < *(int **)(piVar16[1] + 0xc)" identifier < (pointer_expression "*(int **)(piVar16[1] + 0xc)" * (cast_expression "(int **)(piVar16[1] + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar16[1] + 0xc)" ( (binary_expression "piVar16[1] + 0xc" (subscript_expression "piVar16[1]" identifier [ number_literal ]) + number_literal) ))))) )) (compound_statement "{\n          iVar10 = *piVar8;\n        }" { (expression_statement "iVar10 = *piVar8;" (assignment_expression "iVar10 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) }) (else_clause "else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }" else (compound_statement "{\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }" { (expression_statement "*(byte *)(piVar16 + 10) = bVar9;" (assignment_expression "*(byte *)(piVar16 + 10) = bVar9" (pointer_expression "*(byte *)(piVar16 + 10)" * (cast_expression "(byte *)(piVar16 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 10)" ( (binary_expression "piVar16 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)((int)piVar16 + 0x27) = bVar12;" (assignment_expression "*(byte *)((int)piVar16 + 0x27) = bVar12" (pointer_expression "*(byte *)((int)piVar16 + 0x27)" * (cast_expression "(byte *)((int)piVar16 + 0x27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x27)" ( (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar10 = *(int *)piVar16[1];" (assignment_expression "iVar10 = *(int *)piVar16[1]" identifier = (pointer_expression "*(int *)piVar16[1]" * (cast_expression "(int *)piVar16[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[1]" identifier [ number_literal ])))) ;) (expression_statement "piVar16[-4] = piVar16[1];" (assignment_expression "piVar16[-4] = piVar16[1]" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (subscript_expression "piVar16[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x24)" identifier = (pointer_expression "*(code **)(iVar10 + 0x24)" * (cast_expression "(code **)(iVar10 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x24)" ( (binary_expression "iVar10 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x257848;" (assignment_expression "piVar16[-5] = 0x257848" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "bVar9 = *(byte *)(piVar16 + 10);" (assignment_expression "bVar9 = *(byte *)(piVar16 + 10)" identifier = (pointer_expression "*(byte *)(piVar16 + 10)" * (cast_expression "(byte *)(piVar16 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 10)" ( (binary_expression "piVar16 + 10" identifier + number_literal) ))))) ;) (expression_statement "bVar12 = *(byte *)((int)piVar16 + 0x27);" (assignment_expression "bVar12 = *(byte *)((int)piVar16 + 0x27)" identifier = (pointer_expression "*(byte *)((int)piVar16 + 0x27)" * (cast_expression "(byte *)((int)piVar16 + 0x27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x27)" ( (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (if_statement "if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }" if (parenthesized_expression "(iVar10 != -1)" ( (binary_expression "iVar10 != -1" identifier != number_literal) )) (compound_statement "{\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }" { (expression_statement "bVar9 = 0;" (assignment_expression "bVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = piVar16[1];" (assignment_expression "iVar17 = piVar16[1]" identifier = (subscript_expression "piVar16[1]" identifier [ number_literal ])) ;) })) (expression_statement "piVar16[1] = iVar17;" (assignment_expression "piVar16[1] = iVar17" (subscript_expression "piVar16[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (bVar12 == bVar9) goto LAB_002575b3;" if (parenthesized_expression "(bVar12 == bVar9)" ( (binary_expression "bVar12 == bVar9" identifier == identifier) )) (goto_statement "goto LAB_002575b3;" goto statement_identifier ;)) }))) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar16[-2] = 0;" (assignment_expression "piVar16[-2] = 0" (subscript_expression "piVar16[-2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar16[-3] = *param_10;" (assignment_expression "piVar16[-3] = *param_10" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = (pointer_expression "*param_10" * identifier)) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x30);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x30)" identifier = (pointer_expression "*(code **)(iVar10 + 0x30)" * (cast_expression "(code **)(iVar10 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x25727f;" (assignment_expression "piVar16[-5] = 0x25727f" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar4 = (*pcVar2)();" (assignment_expression "cVar4 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }" if (parenthesized_expression "(cVar4 == '%')" ( (binary_expression "cVar4 == '%'" identifier == (char_literal "'%'" ' character ')) )) (compound_statement "{\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }" { (expression_statement "piVar16[2] = (int)(param_10 + 1);" (assignment_expression "piVar16[2] = (int)(param_10 + 1)" (subscript_expression "piVar16[2]" identifier [ number_literal ]) = (cast_expression "(int)(param_10 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_10 + 1)" ( (binary_expression "param_10 + 1" identifier + number_literal) )))) ;) (if_statement "if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }" if (parenthesized_expression "((undefined4 *)piVar16[0x26] == param_10 + 1)" ( (binary_expression "(undefined4 *)piVar16[0x26] == param_10 + 1" (cast_expression "(undefined4 *)piVar16[0x26]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x26]" identifier [ number_literal ])) == (binary_expression "param_10 + 1" identifier + number_literal)) )) (compound_statement "{\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }" { (labeled_statement "LAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;" statement_identifier : (expression_statement "*(undefined4 *)piVar16[0x23] = 4;" (assignment_expression "*(undefined4 *)piVar16[0x23] = 4" (pointer_expression "*(undefined4 *)piVar16[0x23]" * (cast_expression "(undefined4 *)piVar16[0x23]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x23]" identifier [ number_literal ]))) = number_literal) ;)) (break_statement "break;" break ;) })) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar16[-2] = 0;" (assignment_expression "piVar16[-2] = 0" (subscript_expression "piVar16[-2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar16[-3] = param_10[1];" (assignment_expression "piVar16[-3] = param_10[1]" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = (subscript_expression "param_10[1]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x30);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x30)" identifier = (pointer_expression "*(code **)(iVar10 + 0x30)" * (cast_expression "(code **)(iVar10 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x2572ad;" (assignment_expression "piVar16[-5] = 0x2572ad" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar4 = (*pcVar2)();" (assignment_expression "cVar4 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }" if (parenthesized_expression "(cVar4 == 'E')" ( (binary_expression "cVar4 == 'E'" identifier == (char_literal "'E'" ' character ')) )) (compound_statement "{\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }" { (labeled_statement "LAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);" statement_identifier : (expression_statement "piVar16[2] = (int)(param_10 + 2);" (assignment_expression "piVar16[2] = (int)(param_10 + 2)" (subscript_expression "piVar16[2]" identifier [ number_literal ]) = (cast_expression "(int)(param_10 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_10 + 2)" ( (binary_expression "param_10 + 2" identifier + number_literal) )))) ;)) (if_statement "if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;" if (parenthesized_expression "((undefined4 *)piVar16[0x26] == param_10 + 2)" ( (binary_expression "(undefined4 *)piVar16[0x26] == param_10 + 2" (cast_expression "(undefined4 *)piVar16[0x26]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x26]" identifier [ number_literal ])) == (binary_expression "param_10 + 2" identifier + number_literal)) )) (goto_statement "goto LAB_00257861;" goto statement_identifier ;)) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar16[-2] = 0;" (assignment_expression "piVar16[-2] = 0" (subscript_expression "piVar16[-2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar16[-3] = param_10[2];" (assignment_expression "piVar16[-3] = param_10[2]" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = (subscript_expression "param_10[2]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x30);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x30)" identifier = (pointer_expression "*(code **)(iVar10 + 0x30)" * (cast_expression "(code **)(iVar10 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x25762b;" (assignment_expression "piVar16[-5] = 0x25762b" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar5 = (*pcVar2)();" (assignment_expression "cVar5 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar10 = (int)cVar4;" (assignment_expression "iVar10 = (int)cVar4" identifier = (cast_expression "(int)cVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar11 = cVar4;" (assignment_expression "cVar11 = cVar4" identifier = identifier) ;) }) (else_clause "else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }" else (compound_statement "{\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "cVar11 = '\0';" (assignment_expression "cVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar5 = cVar4;" (assignment_expression "cVar5 = cVar4" identifier = identifier) ;) (if_statement "if (cVar4 == 'O') goto LAB_00257608;" if (parenthesized_expression "(cVar4 == 'O')" ( (binary_expression "cVar4 == 'O'" identifier == (char_literal "'O'" ' character ')) )) (goto_statement "goto LAB_00257608;" goto statement_identifier ;)) }))) (expression_statement "*(char *)((int)piVar16 + 0x27) = cVar11;" (assignment_expression "*(char *)((int)piVar16 + 0x27) = cVar11" (pointer_expression "*(char *)((int)piVar16 + 0x27)" * (cast_expression "(char *)((int)piVar16 + 0x27)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x27)" ( (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar17 = (int)cVar5;" (assignment_expression "iVar17 = (int)cVar5" identifier = (cast_expression "(int)cVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);" (assignment_expression "pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20)" identifier = (pointer_expression "*(code **)(*(int *)piVar16[0x1d] + 0x20)" * (cast_expression "(code **)(*(int *)piVar16[0x1d] + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)piVar16[0x1d] + 0x20)" ( (binary_expression "*(int *)piVar16[0x1d] + 0x20" (pointer_expression "*(int *)piVar16[0x1d]" * (cast_expression "(int *)piVar16[0x1d]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x1d]" identifier [ number_literal ]))) + number_literal) ))))) ;) (if_statement "if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }" if (parenthesized_expression "(pcVar2 == (code *)piVar16[0xc])" ( (binary_expression "pcVar2 == (code *)piVar16[0xc]" identifier == (cast_expression "(code *)piVar16[0xc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0xc]" identifier [ number_literal ]))) )) (compound_statement "{\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }" { (expression_statement "piVar16[10] = iVar10;" (assignment_expression "piVar16[10] = iVar10" (subscript_expression "piVar16[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[-4] = piVar16[0xd];" (assignment_expression "piVar16[-4] = piVar16[0xd]" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (subscript_expression "piVar16[0xd]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-5] = 0x2572f4;" (assignment_expression "piVar16[-5] = 0x2572f4" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8 = (int *)FUN_0023c1d0();" (assignment_expression "piVar8 = (int *)FUN_0023c1d0()" identifier = (cast_expression "(int *)FUN_0023c1d0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0023c1d0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar10 = *piVar8;" (assignment_expression "iVar10 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "*(undefined4 *)piVar16[0x23] = 0;" (assignment_expression "*(undefined4 *)piVar16[0x23] = 0" (pointer_expression "*(undefined4 *)piVar16[0x23]" * (cast_expression "(undefined4 *)piVar16[0x23]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x23]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "piVar16[-3] = 0x25;" (assignment_expression "piVar16[-3] = 0x25" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar16[-4] = (int)piVar8;" (assignment_expression "piVar16[-4] = (int)piVar8" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x28);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x28)" identifier = (pointer_expression "*(code **)(iVar10 + 0x28)" * (cast_expression "(code **)(iVar10 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x25730b;" (assignment_expression "piVar16[-5] = 0x25730b" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "piVar16[0x10] = iVar10;" (assignment_expression "piVar16[0x10] = iVar10" (subscript_expression "piVar16[0x10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }" if (parenthesized_expression "(*(char *)((int)piVar16 + 0x27) == '\0')" ( (binary_expression "*(char *)((int)piVar16 + 0x27) == '\0'" (pointer_expression "*(char *)((int)piVar16 + 0x27)" * (cast_expression "(char *)((int)piVar16 + 0x27)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x27)" ( (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }" { (expression_statement "piVar16[0x11] = iVar17;" (assignment_expression "piVar16[0x11] = iVar17" (subscript_expression "piVar16[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[0x12] = 0;" (assignment_expression "piVar16[0x12] = 0" (subscript_expression "piVar16[0x12]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }" else (compound_statement "{\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }" { (expression_statement "piVar16[0x11] = piVar16[10];" (assignment_expression "piVar16[0x11] = piVar16[10]" (subscript_expression "piVar16[0x11]" identifier [ number_literal ]) = (subscript_expression "piVar16[10]" identifier [ number_literal ])) ;) (expression_statement "piVar16[0x12] = iVar17;" (assignment_expression "piVar16[0x12] = iVar17" (subscript_expression "piVar16[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[0x13] = 0;" (assignment_expression "piVar16[0x13] = 0" (subscript_expression "piVar16[0x13]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "piVar16[4] = (int)param_3;" (assignment_expression "piVar16[4] = (int)param_3" (subscript_expression "piVar16[4]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar16[5] = piVar16[3];" (assignment_expression "piVar16[5] = piVar16[3]" (subscript_expression "piVar16[5]" identifier [ number_literal ]) = (subscript_expression "piVar16[3]" identifier [ number_literal ])) ;) (expression_statement "piVar16[6] = piVar16[1];" (assignment_expression "piVar16[6] = piVar16[1]" (subscript_expression "piVar16[6]" identifier [ number_literal ]) = (subscript_expression "piVar16[1]" identifier [ number_literal ])) ;) (expression_statement "piVar16[7] = piVar16[0xb];" (assignment_expression "piVar16[7] = piVar16[0xb]" (subscript_expression "piVar16[7]" identifier [ number_literal ]) = (subscript_expression "piVar16[0xb]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-3] = (int)(piVar16 + 0x10);" (assignment_expression "piVar16[-3] = (int)(piVar16 + 0x10)" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = (cast_expression "(int)(piVar16 + 0x10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar16 + 0x10)" ( (binary_expression "piVar16 + 0x10" identifier + number_literal) )))) ;) (expression_statement "piVar16[-4] = piVar16[0x24];" (assignment_expression "piVar16[-4] = piVar16[0x24]" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x24]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-5] = piVar16[0x23];" (assignment_expression "piVar16[-5] = piVar16[0x23]" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x23]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-6] = piVar16[0x22];" (assignment_expression "piVar16[-6] = piVar16[0x22]" (subscript_expression "piVar16[-6]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x22]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-7] = piVar16[7];" (assignment_expression "piVar16[-7] = piVar16[7]" (subscript_expression "piVar16[-7]" identifier [ number_literal ]) = (subscript_expression "piVar16[7]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-8] = piVar16[6];" (assignment_expression "piVar16[-8] = piVar16[6]" (subscript_expression "piVar16[-8]" identifier [ number_literal ]) = (subscript_expression "piVar16[6]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-9] = piVar16[5];" (assignment_expression "piVar16[-9] = piVar16[5]" (subscript_expression "piVar16[-9]" identifier [ number_literal ]) = (subscript_expression "piVar16[5]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-10] = piVar16[4];" (assignment_expression "piVar16[-10] = piVar16[4]" (subscript_expression "piVar16[-10]" identifier [ number_literal ]) = (subscript_expression "piVar16[4]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-0xb] = piVar16[0x1d];" (assignment_expression "piVar16[-0xb] = piVar16[0x1d]" (subscript_expression "piVar16[-0xb]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x1d]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-0xc] = (int)(piVar16 + 0xe);" (assignment_expression "piVar16[-0xc] = (int)(piVar16 + 0xe)" (subscript_expression "piVar16[-0xc]" identifier [ number_literal ]) = (cast_expression "(int)(piVar16 + 0xe)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar16 + 0xe)" ( (binary_expression "piVar16 + 0xe" identifier + number_literal) )))) ;) (expression_statement "piVar16[-0xd] = 0x25738d;" (assignment_expression "piVar16[-0xd] = 0x25738d" (subscript_expression "piVar16[-0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00255da0();" (call_expression "FUN_00255da0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = piVar16[0xe];" (assignment_expression "iVar10 = piVar16[0xe]" identifier = (subscript_expression "piVar16[0xe]" identifier [ number_literal ])) ;) (expression_statement "param_3 = (int *)piVar16[0xd];" (assignment_expression "param_3 = (int *)piVar16[0xd]" identifier = (cast_expression "(int *)piVar16[0xd]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0xd]" identifier [ number_literal ]))) ;) (expression_statement "piVar16[4] = iVar10;" (assignment_expression "piVar16[4] = iVar10" (subscript_expression "piVar16[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[2] = iVar10;" (assignment_expression "piVar16[2] = iVar10" (subscript_expression "piVar16[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[3] = (int)param_3;" (assignment_expression "piVar16[3] = (int)param_3" (subscript_expression "piVar16[3]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar4 = param_3 != (int *)0x0 && iVar10 == -1;" (assignment_expression "cVar4 = param_3 != (int *)0x0 && iVar10 == -1" identifier = (binary_expression "param_3 != (int *)0x0 && iVar10 == -1" (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "iVar10 == -1" identifier == number_literal))) ;) (expression_statement "cVar11 = iVar10 == -1;" (assignment_expression "cVar11 = iVar10 == -1" identifier = (binary_expression "iVar10 == -1" identifier == number_literal)) ;) (if_statement "if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }" if (parenthesized_expression "((bool)cVar4)" ( (cast_expression "(bool)cVar4" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n              iVar10 = *(int *)param_3[2];\n            }" { (expression_statement "iVar10 = *(int *)param_3[2];" (assignment_expression "iVar10 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }" else (compound_statement "{\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }" { (expression_statement "*(char *)((int)piVar16 + 0x23) = cVar4;" (assignment_expression "*(char *)((int)piVar16 + 0x23) = cVar4" (pointer_expression "*(char *)((int)piVar16 + 0x23)" * (cast_expression "(char *)((int)piVar16 + 0x23)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x23)" ( (binary_expression "(int)piVar16 + 0x23" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar10 = *param_3;" (assignment_expression "iVar10 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "piVar16[-5] = piVar16[3];" (assignment_expression "piVar16[-5] = piVar16[3]" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = (subscript_expression "piVar16[3]" identifier [ number_literal ])) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x24)" identifier = (pointer_expression "*(code **)(iVar10 + 0x24)" * (cast_expression "(code **)(iVar10 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x24)" ( (binary_expression "iVar10 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-6] = 0x2578ab;" (assignment_expression "piVar16[-6] = 0x2578ab" (subscript_expression "piVar16[-6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "cVar4 = *(char *)((int)piVar16 + 0x23);" (assignment_expression "cVar4 = *(char *)((int)piVar16 + 0x23)" identifier = (pointer_expression "*(char *)((int)piVar16 + 0x23)" * (cast_expression "(char *)((int)piVar16 + 0x23)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x23)" ( (binary_expression "(int)piVar16 + 0x23" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (expression_statement "cVar11 = '\0';" (assignment_expression "cVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }" if (parenthesized_expression "(iVar10 == -1)" ( (binary_expression "iVar10 == -1" identifier == number_literal) )) (compound_statement "{\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "cVar11 = cVar4;" (assignment_expression "cVar11 = cVar4" identifier = identifier) ;) })) })) (if_statement "if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }" if (parenthesized_expression "((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0'))" ( (binary_expression "(*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')" (parenthesized_expression "(*piVar16 == 0)" ( (binary_expression "*piVar16 == 0" (pointer_expression "*piVar16" * identifier) == number_literal) )) || (parenthesized_expression "(*(char *)((int)piVar16 + 0x22) == '\0')" ( (binary_expression "*(char *)((int)piVar16 + 0x22) == '\0'" (pointer_expression "*(char *)((int)piVar16 + 0x22)" * (cast_expression "(char *)((int)piVar16 + 0x22)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x22)" ( (binary_expression "(int)piVar16 + 0x22" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }" { (expression_statement "cVar4 = *(char *)((int)piVar16 + 0x22);" (assignment_expression "cVar4 = *(char *)((int)piVar16 + 0x22)" identifier = (pointer_expression "*(char *)((int)piVar16 + 0x22)" * (cast_expression "(char *)((int)piVar16 + 0x22)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x22)" ( (binary_expression "(int)piVar16 + 0x22" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }" else (compound_statement "{\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }" { (expression_statement "piVar8 = *(int **)(*piVar16 + 8);" (assignment_expression "piVar8 = *(int **)(*piVar16 + 8)" identifier = (pointer_expression "*(int **)(*piVar16 + 8)" * (cast_expression "(int **)(*piVar16 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar16 + 8)" ( (binary_expression "*piVar16 + 8" (pointer_expression "*piVar16" * identifier) + number_literal) ))))) ;) (if_statement "if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }" if (parenthesized_expression "(piVar8 < *(int **)(*piVar16 + 0xc))" ( (binary_expression "piVar8 < *(int **)(*piVar16 + 0xc)" identifier < (pointer_expression "*(int **)(*piVar16 + 0xc)" * (cast_expression "(int **)(*piVar16 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar16 + 0xc)" ( (binary_expression "*piVar16 + 0xc" (pointer_expression "*piVar16" * identifier) + number_literal) ))))) )) (compound_statement "{\n              iVar10 = *piVar8;\n            }" { (expression_statement "iVar10 = *piVar8;" (assignment_expression "iVar10 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) }) (else_clause "else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }" else (compound_statement "{\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }" { (expression_statement "iVar10 = *(int *)*piVar16;" (assignment_expression "iVar10 = *(int *)*piVar16" identifier = (pointer_expression "*(int *)*piVar16" * (cast_expression "(int *)*piVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar16" * identifier)))) ;) (expression_statement "piVar16[-5] = *piVar16;" (assignment_expression "piVar16[-5] = *piVar16" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x24)" identifier = (pointer_expression "*(code **)(iVar10 + 0x24)" * (cast_expression "(code **)(iVar10 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x24)" ( (binary_expression "iVar10 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-6] = 0x257893;" (assignment_expression "piVar16[-6] = 0x257893" (subscript_expression "piVar16[-6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "cVar4 = iVar10 == -1;" (assignment_expression "cVar4 = iVar10 == -1" identifier = (binary_expression "iVar10 == -1" identifier == number_literal)) ;) }))) (if_statement "if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }" if (parenthesized_expression "(cVar4 == cVar11)" ( (binary_expression "cVar4 == cVar11" identifier == identifier) )) (compound_statement "{\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }" { (expression_statement "*(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;" (assignment_expression "*(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2" (pointer_expression "*(uint *)piVar16[0x22]" * (cast_expression "(uint *)piVar16[0x22]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x22]" identifier [ number_literal ]))) = (binary_expression "*(uint *)piVar16[0x22] | 2" (pointer_expression "*(uint *)piVar16[0x22]" * (cast_expression "(uint *)piVar16[0x22]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x22]" identifier [ number_literal ]))) | number_literal)) ;) })) }) (else_clause "else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }" else (compound_statement "{\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }" { (expression_statement "piVar16[0x1e] = (int)param_3;" (assignment_expression "piVar16[0x1e] = (int)param_3" (subscript_expression "piVar16[0x1e]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar16[0x1f] = piVar16[3];" (assignment_expression "piVar16[0x1f] = piVar16[3]" (subscript_expression "piVar16[0x1f]" identifier [ number_literal ]) = (subscript_expression "piVar16[3]" identifier [ number_literal ])) ;) (expression_statement "piVar16[0x21] = piVar16[0xb];" (assignment_expression "piVar16[0x21] = piVar16[0xb]" (subscript_expression "piVar16[0x21]" identifier [ number_literal ]) = (subscript_expression "piVar16[0xb]" identifier [ number_literal ])) ;) (expression_statement "piVar16[0x20] = piVar16[1];" (assignment_expression "piVar16[0x20] = piVar16[1]" (subscript_expression "piVar16[0x20]" identifier [ number_literal ]) = (subscript_expression "piVar16[1]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-2] = iVar10;" (assignment_expression "piVar16[-2] = iVar10" (subscript_expression "piVar16[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[-3] = iVar17;" (assignment_expression "piVar16[-3] = iVar17" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[-4] = piVar16[0x24];" (assignment_expression "piVar16[-4] = piVar16[0x24]" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x24]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-5] = piVar16[0x23];" (assignment_expression "piVar16[-5] = piVar16[0x23]" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x23]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-6] = piVar16[0x22];" (assignment_expression "piVar16[-6] = piVar16[0x22]" (subscript_expression "piVar16[-6]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x22]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-7] = piVar16[0x21];" (assignment_expression "piVar16[-7] = piVar16[0x21]" (subscript_expression "piVar16[-7]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x21]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-8] = piVar16[0x20];" (assignment_expression "piVar16[-8] = piVar16[0x20]" (subscript_expression "piVar16[-8]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x20]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-9] = piVar16[0x1f];" (assignment_expression "piVar16[-9] = piVar16[0x1f]" (subscript_expression "piVar16[-9]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x1f]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-10] = piVar16[0x1e];" (assignment_expression "piVar16[-10] = piVar16[0x1e]" (subscript_expression "piVar16[-10]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x1e]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-0xb] = piVar16[0x1d];" (assignment_expression "piVar16[-0xb] = piVar16[0x1d]" (subscript_expression "piVar16[-0xb]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x1d]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-0xc] = (int)(piVar16 + 0xe);" (assignment_expression "piVar16[-0xc] = (int)(piVar16 + 0xe)" (subscript_expression "piVar16[-0xc]" identifier [ number_literal ]) = (cast_expression "(int)(piVar16 + 0xe)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar16 + 0xe)" ( (binary_expression "piVar16 + 0xe" identifier + number_literal) )))) ;) (expression_statement "piVar16[-0xd] = 0x257721;" (assignment_expression "piVar16[-0xd] = 0x257721" (subscript_expression "piVar16[-0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar16[0x1d] = piVar16[0xd];" (assignment_expression "piVar16[0x1d] = piVar16[0xd]" (subscript_expression "piVar16[0x1d]" identifier [ number_literal ]) = (subscript_expression "piVar16[0xd]" identifier [ number_literal ])) ;) (expression_statement "param_3 = (int *)piVar16[0x1d];" (assignment_expression "param_3 = (int *)piVar16[0x1d]" identifier = (cast_expression "(int *)piVar16[0x1d]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x1d]" identifier [ number_literal ]))) ;) (expression_statement "piVar16[0x1e] = piVar16[0xe];" (assignment_expression "piVar16[0x1e] = piVar16[0xe]" (subscript_expression "piVar16[0x1e]" identifier [ number_literal ]) = (subscript_expression "piVar16[0xe]" identifier [ number_literal ])) ;) (expression_statement "piVar16[2] = piVar16[0x1e];" (assignment_expression "piVar16[2] = piVar16[0x1e]" (subscript_expression "piVar16[2]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x1e]" identifier [ number_literal ])) ;) }))) (expression_statement "piVar15 = piVar16 + -1;" (assignment_expression "piVar15 = piVar16 + -1" identifier = (binary_expression "piVar16 + -1" identifier + number_literal)) ;) (expression_statement "param_10 = (undefined4 *)(piVar16[1] + 4);" (assignment_expression "param_10 = (undefined4 *)(piVar16[1] + 4)" identifier = (cast_expression "(undefined4 *)(piVar16[1] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16[1] + 4)" ( (binary_expression "piVar16[1] + 4" (subscript_expression "piVar16[1]" identifier [ number_literal ]) + number_literal) )))) ;) (expression_statement "piVar1 = piVar16 + 0x25;" (assignment_expression "piVar1 = piVar16 + 0x25" identifier = (binary_expression "piVar16 + 0x25" identifier + number_literal)) ;) (expression_statement "piVar16 = piVar16 + -1;" (assignment_expression "piVar16 = piVar16 + -1" identifier = (binary_expression "piVar16 + -1" identifier + number_literal)) ;) (expression_statement "piVar8 = piVar15;" (assignment_expression "piVar8 = piVar15" identifier = identifier) ;) (if_statement "if (param_10 == (undefined4 *)*piVar1) break;" if (parenthesized_expression "(param_10 == (undefined4 *)*piVar1)" ( (binary_expression "param_10 == (undefined4 *)*piVar1" identifier == (cast_expression "(undefined4 *)*piVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) )) (break_statement "break;" break ;)) }) (else_clause "else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }" else (compound_statement "{\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }" { (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar16[-2] = *param_10;" (assignment_expression "piVar16[-2] = *param_10" (subscript_expression "piVar16[-2]" identifier [ number_literal ]) = (pointer_expression "*param_10" * identifier)) ;) (expression_statement "piVar16[-3] = 0x2000;" (assignment_expression "piVar16[-3] = 0x2000" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 8);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 8)" identifier = (pointer_expression "*(code **)(iVar10 + 8)" * (cast_expression "(code **)(iVar10 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x257191;" (assignment_expression "piVar16[-5] = 0x257191" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar4 = (*pcVar2)();" (assignment_expression "cVar4 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }" { (if_statement "if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }" if (parenthesized_expression "((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0'))" ( (binary_expression "(param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')" (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((char)piVar16[2] == '\0')" ( (binary_expression "(char)piVar16[2] == '\0'" (cast_expression "(char)piVar16[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar16[2]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }" { (expression_statement "iVar10 = piVar16[3];" (assignment_expression "iVar10 = piVar16[3]" identifier = (subscript_expression "piVar16[3]" identifier [ number_literal ])) ;) (labeled_statement "LAB_002571af:\n            iVar17 = *piVar6;" statement_identifier : (expression_statement "iVar17 = *piVar6;" (assignment_expression "iVar17 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;)) (expression_statement "piVar16[-3] = iVar10;" (assignment_expression "piVar16[-3] = iVar10" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar17 + 0x20);" (assignment_expression "pcVar2 = *(code **)(iVar17 + 0x20)" identifier = (pointer_expression "*(code **)(iVar17 + 0x20)" * (cast_expression "(code **)(iVar17 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x20)" ( (binary_expression "iVar17 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x2571ba;" (assignment_expression "piVar16[-5] = 0x2571ba" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar17 = (*pcVar2)();" (assignment_expression "iVar17 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar16[-3] = *param_10;" (assignment_expression "piVar16[-3] = *param_10" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = (pointer_expression "*param_10" * identifier)) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x20);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x20)" identifier = (pointer_expression "*(code **)(iVar10 + 0x20)" * (cast_expression "(code **)(iVar10 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x2571c7;" (assignment_expression "piVar16[-5] = 0x2571c7" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = (*pcVar2)();" (assignment_expression "iVar7 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar10 = piVar16[3];" (assignment_expression "iVar10 = piVar16[3]" identifier = (subscript_expression "piVar16[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }" if (parenthesized_expression "(iVar7 != iVar17)" ( (binary_expression "iVar7 != iVar17" identifier != identifier) )) (compound_statement "{\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }" { (labeled_statement "LAB_002571d2:\n              iVar17 = *piVar6;" statement_identifier : (expression_statement "iVar17 = *piVar6;" (assignment_expression "iVar17 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;)) (expression_statement "piVar16[-3] = iVar10;" (assignment_expression "piVar16[-3] = iVar10" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar17 + 0x18);" (assignment_expression "pcVar2 = *(code **)(iVar17 + 0x18)" identifier = (pointer_expression "*(code **)(iVar17 + 0x18)" * (cast_expression "(code **)(iVar17 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x2571dd;" (assignment_expression "piVar16[-5] = 0x2571dd" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar17 = (*pcVar2)();" (assignment_expression "iVar17 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar16[-3] = *param_10;" (assignment_expression "piVar16[-3] = *param_10" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = (pointer_expression "*param_10" * identifier)) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x18);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x18)" identifier = (pointer_expression "*(code **)(iVar10 + 0x18)" * (cast_expression "(code **)(iVar10 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x2571ea;" (assignment_expression "piVar16[-5] = 0x2571ea" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar10 != iVar17) goto LAB_00257861;" if (parenthesized_expression "(iVar10 != iVar17)" ( (binary_expression "iVar10 != iVar17" identifier != identifier) )) (goto_statement "goto LAB_00257861;" goto statement_identifier ;)) })) }) (else_clause "else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }" else (compound_statement "{\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n              iVar10 = *(int *)param_3[2];\n            }" { (expression_statement "iVar10 = *(int *)param_3[2];" (assignment_expression "iVar10 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }" else (compound_statement "{\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }" { (expression_statement "iVar10 = *param_3;" (assignment_expression "iVar10 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x24)" identifier = (pointer_expression "*(code **)(iVar10 + 0x24)" * (cast_expression "(code **)(iVar10 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x24)" ( (binary_expression "iVar10 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x25787c;" (assignment_expression "piVar16[-5] = 0x25787c" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }" if (parenthesized_expression "(iVar10 == -1)" ( (binary_expression "iVar10 == -1" identifier == number_literal) )) (compound_statement "{\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar10 = -1;" (assignment_expression "iVar10 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_002571af;" goto statement_identifier ;) })) (expression_statement "iVar17 = *piVar6;" (assignment_expression "iVar17 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar16[-3] = iVar10;" (assignment_expression "piVar16[-3] = iVar10" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar17 + 0x20);" (assignment_expression "pcVar2 = *(code **)(iVar17 + 0x20)" identifier = (pointer_expression "*(code **)(iVar17 + 0x20)" * (cast_expression "(code **)(iVar17 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x20)" ( (binary_expression "iVar17 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x25767c;" (assignment_expression "piVar16[-5] = 0x25767c" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar17 = (*pcVar2)();" (assignment_expression "iVar17 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar16[-3] = *param_10;" (assignment_expression "piVar16[-3] = *param_10" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = (pointer_expression "*param_10" * identifier)) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x20);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x20)" identifier = (pointer_expression "*(code **)(iVar10 + 0x20)" * (cast_expression "(code **)(iVar10 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x257689;" (assignment_expression "piVar16[-5] = 0x257689" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }" if (parenthesized_expression "(iVar17 != iVar10)" ( (binary_expression "iVar17 != iVar10" identifier != identifier) )) (compound_statement "{\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                iVar10 = *(int *)param_3[2];\n              }" { (expression_statement "iVar10 = *(int *)param_3[2];" (assignment_expression "iVar10 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }" else (compound_statement "{\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }" { (expression_statement "iVar10 = *param_3;" (assignment_expression "iVar10 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x24)" identifier = (pointer_expression "*(code **)(iVar10 + 0x24)" * (cast_expression "(code **)(iVar10 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x24)" ( (binary_expression "iVar10 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x2578c1;" (assignment_expression "piVar16[-5] = 0x2578c1" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }" if (parenthesized_expression "(iVar10 == -1)" ( (binary_expression "iVar10 == -1" identifier == number_literal) )) (compound_statement "{\n                param_3 = (int *)0x0;\n              }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (goto_statement "goto LAB_002571d2;" goto statement_identifier ;) })) }))) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }" if (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" ( (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            param_3[2] = param_3[2] + 4;\n          }" { (expression_statement "param_3[2] = param_3[2] + 4;" (assignment_expression "param_3[2] = param_3[2] + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (binary_expression "param_3[2] + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }" else (compound_statement "{\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }" { (expression_statement "iVar10 = *param_3;" (assignment_expression "iVar10 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x28);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x28)" identifier = (pointer_expression "*(code **)(iVar10 + 0x28)" * (cast_expression "(code **)(iVar10 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x257811;" (assignment_expression "piVar16[-5] = 0x257811" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) }))) (expression_statement "piVar16[3] = -1;" (assignment_expression "piVar16[3] = -1" (subscript_expression "piVar16[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" identifier = (binary_expression "param_10 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }" else (compound_statement "{\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }" { (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" identifier = (binary_expression "param_10 + 1" identifier + number_literal)) ;) (if_statement "if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }" if (parenthesized_expression "((undefined4 *)piVar16[0x26] != param_10)" ( (binary_expression "(undefined4 *)piVar16[0x26] != param_10" (cast_expression "(undefined4 *)piVar16[0x26]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x26]" identifier [ number_literal ])) != identifier) )) (compound_statement "{\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }" { (expression_statement "puVar3 = (undefined4 *)piVar16[0x26];" (assignment_expression "puVar3 = (undefined4 *)piVar16[0x26]" identifier = (cast_expression "(undefined4 *)piVar16[0x26]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x26]" identifier [ number_literal ]))) ;) (do_statement "do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);" do (compound_statement "{\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            }" { (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar16[-2] = *param_10;" (assignment_expression "piVar16[-2] = *param_10" (subscript_expression "piVar16[-2]" identifier [ number_literal ]) = (pointer_expression "*param_10" * identifier)) ;) (expression_statement "piVar16[-3] = 0x2000;" (assignment_expression "piVar16[-3] = 0x2000" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 8);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 8)" identifier = (pointer_expression "*(code **)(iVar10 + 8)" * (cast_expression "(code **)(iVar10 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x257440;" (assignment_expression "piVar16[-5] = 0x257440" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar4 = (*pcVar2)();" (assignment_expression "cVar4 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar4 == '\0') break;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" identifier = (binary_expression "param_10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar3 != param_10)" ( (binary_expression "puVar3 != param_10" identifier != identifier) )) ;) })) (expression_statement "piVar16[0x25] = (int)param_10;" (assignment_expression "piVar16[0x25] = (int)param_10" (subscript_expression "piVar16[0x25]" identifier [ number_literal ]) = (cast_expression "(int)param_10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar10 = piVar16[3];" (assignment_expression "iVar10 = piVar16[3]" identifier = (subscript_expression "piVar16[3]" identifier [ number_literal ])) ;) (expression_statement "piVar16[2] = (int)piVar6;" (assignment_expression "piVar16[2] = (int)piVar6" (subscript_expression "piVar16[2]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar9 = iVar10 == -1;" (assignment_expression "bVar9 = iVar10 == -1" identifier = (binary_expression "iVar10 == -1" identifier == number_literal)) ;) (expression_statement "bVar13 = param_3 != (int *)0x0 && (bool)bVar9;" (assignment_expression "bVar13 = param_3 != (int *)0x0 && (bool)bVar9" identifier = (binary_expression "param_3 != (int *)0x0 && (bool)bVar9" (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (cast_expression "(bool)bVar9" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar13) goto LAB_002574dc;" if (parenthesized_expression "(bVar13)" ( identifier )) (goto_statement "goto LAB_002574dc;" goto statement_identifier ;)) (labeled_statement "LAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);" statement_identifier : (expression_statement "bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);" (assignment_expression "bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26)" identifier = (binary_expression "piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26)" (binary_expression "piVar16[1] != 0" (subscript_expression "piVar16[1]" identifier [ number_literal ]) != number_literal) & (pointer_expression "*(byte *)((int)piVar16 + 0x26)" * (cast_expression "(byte *)((int)piVar16 + 0x26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x26)" ( (binary_expression "(int)piVar16 + 0x26" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;)) (expression_statement "bVar14 = (bool)bVar9;" (assignment_expression "bVar14 = (bool)bVar9" identifier = (cast_expression "(bool)bVar9" ( (type_descriptor "bool" primitive_type) ) identifier)) ;) (if_statement "if (bVar12 != 0) goto LAB_00257510;" if (parenthesized_expression "(bVar12 != 0)" ( (binary_expression "bVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00257510;" goto statement_identifier ;)) (while_statement "while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }" while (parenthesized_expression "((bool)*(byte *)((int)piVar16 + 0x26) != bVar14)" ( (binary_expression "(bool)*(byte *)((int)piVar16 + 0x26) != bVar14" (cast_expression "(bool)*(byte *)((int)piVar16 + 0x26)" ( (type_descriptor "bool" primitive_type) ) (pointer_expression "*(byte *)((int)piVar16 + 0x26)" * (cast_expression "(byte *)((int)piVar16 + 0x26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x26)" ( (binary_expression "(int)piVar16 + 0x26" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) != identifier) )) (compound_statement "{\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }" { (while_statement "while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }" { (expression_statement "iVar17 = iVar10;" (assignment_expression "iVar17 = iVar10" identifier = identifier) ;) (if_statement "if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" if (parenthesized_expression "((param_3 != (int *)0x0) && (bVar9 != 0))" ( (binary_expression "(param_3 != (int *)0x0) && (bVar9 != 0)" (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                  iVar17 = *(int *)param_3[2];\n                }" { (expression_statement "iVar17 = *(int *)param_3[2];" (assignment_expression "iVar17 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }" else (compound_statement "{\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }" { (expression_statement "iVar17 = *param_3;" (assignment_expression "iVar17 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar17 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar17 + 0x24)" identifier = (pointer_expression "*(code **)(iVar17 + 0x24)" * (cast_expression "(code **)(iVar17 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x24)" ( (binary_expression "iVar17 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x2577f9;" (assignment_expression "piVar16[-5] = 0x2577f9" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar17 = (*pcVar2)();" (assignment_expression "iVar17 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }" if (parenthesized_expression "(iVar17 == -1)" ( (binary_expression "iVar17 == -1" identifier == number_literal) )) (compound_statement "{\n                  param_3 = (int *)0x0;\n                }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (expression_statement "iVar7 = *(int *)piVar16[2];" (assignment_expression "iVar7 = *(int *)piVar16[2]" identifier = (pointer_expression "*(int *)piVar16[2]" * (cast_expression "(int *)piVar16[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[2]" identifier [ number_literal ])))) ;) (expression_statement "piVar16[-2] = iVar17;" (assignment_expression "piVar16[-2] = iVar17" (subscript_expression "piVar16[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[-3] = 0x2000;" (assignment_expression "piVar16[-3] = 0x2000" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar16[-4] = piVar16[2];" (assignment_expression "piVar16[-4] = piVar16[2]" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (subscript_expression "piVar16[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar2 = *(code **)(iVar7 + 8);" (assignment_expression "pcVar2 = *(code **)(iVar7 + 8)" identifier = (pointer_expression "*(code **)(iVar7 + 8)" * (cast_expression "(code **)(iVar7 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x2574ab;" (assignment_expression "piVar16[-5] = 0x2574ab" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar4 = (*pcVar2)();" (assignment_expression "cVar4 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar4 == '\0') goto LAB_00257548;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00257548;" goto statement_identifier ;)) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }" if (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" ( (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                param_3[2] = param_3[2] + 4;\n              }" { (expression_statement "param_3[2] = param_3[2] + 4;" (assignment_expression "param_3[2] = param_3[2] + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (binary_expression "param_3[2] + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }" else (compound_statement "{\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }" { (expression_statement "iVar10 = *param_3;" (assignment_expression "iVar10 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x28);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x28)" identifier = (pointer_expression "*(code **)(iVar10 + 0x28)" * (cast_expression "(code **)(iVar10 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x2575f9;" (assignment_expression "piVar16[-5] = 0x2575f9" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) }))) (expression_statement "iVar10 = -1;" (assignment_expression "iVar10 = -1" identifier = number_literal) ;) (expression_statement "bVar9 = true;" (assignment_expression "bVar9 = true" identifier = true) ;) (expression_statement "bVar13 = param_3 != (int *)0x0;" (assignment_expression "bVar13 = param_3 != (int *)0x0" identifier = (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (!bVar13) goto LAB_00257468;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (goto_statement "goto LAB_00257468;" goto statement_identifier ;)) (labeled_statement "LAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }" statement_identifier : (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                iVar17 = *(int *)param_3[2];\n              }" { (expression_statement "iVar17 = *(int *)param_3[2];" (assignment_expression "iVar17 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }" else (compound_statement "{\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }" { (expression_statement "*(byte *)(piVar16 + 3) = bVar9;" (assignment_expression "*(byte *)(piVar16 + 3) = bVar9" (pointer_expression "*(byte *)(piVar16 + 3)" * (cast_expression "(byte *)(piVar16 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 3)" ( (binary_expression "piVar16 + 3" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar17 = *param_3;" (assignment_expression "iVar17 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar17 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar17 + 0x24)" identifier = (pointer_expression "*(code **)(iVar17 + 0x24)" * (cast_expression "(code **)(iVar17 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x24)" ( (binary_expression "iVar17 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x257765;" (assignment_expression "piVar16[-5] = 0x257765" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar17 = (*pcVar2)();" (assignment_expression "iVar17 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "bVar9 = *(byte *)(piVar16 + 3);" (assignment_expression "bVar9 = *(byte *)(piVar16 + 3)" identifier = (pointer_expression "*(byte *)(piVar16 + 3)" * (cast_expression "(byte *)(piVar16 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 3)" ( (binary_expression "piVar16 + 3" identifier + number_literal) ))))) ;) })))) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (if_statement "if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }" if (parenthesized_expression "(iVar17 == -1)" ( (binary_expression "iVar17 == -1" identifier == number_literal) )) (compound_statement "{\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar14 = bVar13;" (assignment_expression "bVar14 = bVar13" identifier = identifier) ;) })) (expression_statement "bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);" (assignment_expression "bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26)" identifier = (binary_expression "piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26)" (binary_expression "piVar16[1] != 0" (subscript_expression "piVar16[1]" identifier [ number_literal ]) != number_literal) & (pointer_expression "*(byte *)((int)piVar16 + 0x26)" * (cast_expression "(byte *)((int)piVar16 + 0x26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x26)" ( (binary_expression "(int)piVar16 + 0x26" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (bVar12 == 0) break;" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);" statement_identifier : (expression_statement "piVar6 = *(int **)(piVar16[1] + 8);" (assignment_expression "piVar6 = *(int **)(piVar16[1] + 8)" identifier = (pointer_expression "*(int **)(piVar16[1] + 8)" * (cast_expression "(int **)(piVar16[1] + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar16[1] + 8)" ( (binary_expression "piVar16[1] + 8" (subscript_expression "piVar16[1]" identifier [ number_literal ]) + number_literal) ))))) ;)) (if_statement "if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }" if (parenthesized_expression "(piVar6 < *(int **)(piVar16[1] + 0xc))" ( (binary_expression "piVar6 < *(int **)(piVar16[1] + 0xc)" identifier < (pointer_expression "*(int **)(piVar16[1] + 0xc)" * (cast_expression "(int **)(piVar16[1] + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar16[1] + 0xc)" ( (binary_expression "piVar16[1] + 0xc" (subscript_expression "piVar16[1]" identifier [ number_literal ]) + number_literal) ))))) )) (compound_statement "{\n                iVar17 = *piVar6;\n              }" { (expression_statement "iVar17 = *piVar6;" (assignment_expression "iVar17 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) }) (else_clause "else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }" else (compound_statement "{\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }" { (expression_statement "*(byte *)((int)piVar16 + 0x27) = bVar9;" (assignment_expression "*(byte *)((int)piVar16 + 0x27) = bVar9" (pointer_expression "*(byte *)((int)piVar16 + 0x27)" * (cast_expression "(byte *)((int)piVar16 + 0x27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x27)" ( (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(piVar16 + 3) = bVar12;" (assignment_expression "*(byte *)(piVar16 + 3) = bVar12" (pointer_expression "*(byte *)(piVar16 + 3)" * (cast_expression "(byte *)(piVar16 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 3)" ( (binary_expression "piVar16 + 3" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar17 = *(int *)piVar16[1];" (assignment_expression "iVar17 = *(int *)piVar16[1]" identifier = (pointer_expression "*(int *)piVar16[1]" * (cast_expression "(int *)piVar16[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[1]" identifier [ number_literal ])))) ;) (expression_statement "piVar16[-4] = piVar16[1];" (assignment_expression "piVar16[-4] = piVar16[1]" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (subscript_expression "piVar16[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar2 = *(code **)(iVar17 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar17 + 0x24)" identifier = (pointer_expression "*(code **)(iVar17 + 0x24)" * (cast_expression "(code **)(iVar17 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x24)" ( (binary_expression "iVar17 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x25778d;" (assignment_expression "piVar16[-5] = 0x25778d" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar17 = (*pcVar2)();" (assignment_expression "iVar17 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "bVar9 = *(byte *)((int)piVar16 + 0x27);" (assignment_expression "bVar9 = *(byte *)((int)piVar16 + 0x27)" identifier = (pointer_expression "*(byte *)((int)piVar16 + 0x27)" * (cast_expression "(byte *)((int)piVar16 + 0x27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x27)" ( (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar12 = *(byte *)(piVar16 + 3);" (assignment_expression "bVar12 = *(byte *)(piVar16 + 3)" identifier = (pointer_expression "*(byte *)(piVar16 + 3)" * (cast_expression "(byte *)(piVar16 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 3)" ( (binary_expression "piVar16 + 3" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (if_statement "if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }" if (parenthesized_expression "(iVar17 != -1)" ( (binary_expression "iVar17 != -1" identifier != number_literal) )) (compound_statement "{\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }" { (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = piVar16[1];" (assignment_expression "iVar7 = piVar16[1]" identifier = (subscript_expression "piVar16[1]" identifier [ number_literal ])) ;) })) (expression_statement "piVar16[1] = iVar7;" (assignment_expression "piVar16[1] = iVar7" (subscript_expression "piVar16[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((bool)bVar12 == bVar14) goto LAB_00257548;" if (parenthesized_expression "((bool)bVar12 == bVar14)" ( (binary_expression "(bool)bVar12 == bVar14" (cast_expression "(bool)bVar12" ( (type_descriptor "bool" primitive_type) ) identifier) == identifier) )) (goto_statement "goto LAB_00257548;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_00257548:\n          piVar16[3] = iVar10;" statement_identifier : (expression_statement "piVar16[3] = iVar10;" (assignment_expression "piVar16[3] = iVar10" (subscript_expression "piVar16[3]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "piVar6 = (int *)piVar16[2];" (assignment_expression "piVar6 = (int *)piVar16[2]" identifier = (cast_expression "(int *)piVar16[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[2]" identifier [ number_literal ]))) ;) (expression_statement "param_10 = (undefined4 *)piVar16[0x25];" (assignment_expression "param_10 = (undefined4 *)piVar16[0x25]" identifier = (cast_expression "(undefined4 *)piVar16[0x25]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x25]" identifier [ number_literal ]))) ;) }))) (expression_statement "piVar8 = piVar16;" (assignment_expression "piVar8 = piVar16" identifier = identifier) ;) (if_statement "if (param_10 == (undefined4 *)piVar16[0x26]) break;" if (parenthesized_expression "(param_10 == (undefined4 *)piVar16[0x26])" ( (binary_expression "param_10 == (undefined4 *)piVar16[0x26]" identifier == (cast_expression "(undefined4 *)piVar16[0x26]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x26]" identifier [ number_literal ]))) )) (break_statement "break;" break ;)) }))) (expression_statement "piVar16 = piVar8;" (assignment_expression "piVar16 = piVar8" identifier = identifier) ;) }) while (parenthesized_expression "(**(int **)((int)piVar16 + 0x8c) == 0)" ( (binary_expression "**(int **)((int)piVar16 + 0x8c) == 0" (pointer_expression "**(int **)((int)piVar16 + 0x8c)" * (pointer_expression "*(int **)((int)piVar16 + 0x8c)" * (cast_expression "(int **)((int)piVar16 + 0x8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + 0x8c)" ( (binary_expression "(int)piVar16 + 0x8c" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) == number_literal) )) ;) })) (expression_statement "piVar6 = *(int **)((int)piVar16 + 0x70);" (assignment_expression "piVar6 = *(int **)((int)piVar16 + 0x70)" identifier = (pointer_expression "*(int **)((int)piVar16 + 0x70)" * (cast_expression "(int **)((int)piVar16 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + 0x70)" ( (binary_expression "(int)piVar16 + 0x70" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)((int)piVar16 + 0xc);" (assignment_expression "iVar10 = *(int *)((int)piVar16 + 0xc)" identifier = (pointer_expression "*(int *)((int)piVar16 + 0xc)" * (cast_expression "(int *)((int)piVar16 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0xc)" ( (binary_expression "(int)piVar16 + 0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*piVar6 = (int)param_3;" (assignment_expression "*piVar6 = (int)param_3" (pointer_expression "*piVar6" * identifier) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar6[1] = iVar10;" (assignment_expression "piVar6[1] = iVar10" (subscript_expression "piVar6[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >\n   >::get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,\n   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&,\n   std::_Ios_Iostate&, tm*, wchar_t const*, wchar_t const*) const */\n\nvoid std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::get\n               (undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,\n               undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,\n               undefined4 *param_10,undefined4 *param_11)\n\n{\n  code *pcVar1;\n  int *piVar2;\n  undefined4 *puVar3;\n  char cVar4;\n  char cVar5;\n  ctype *pcVar6;\n  int iVar7;\n  ctype *pcVar8;\n  undefined4 uVar9;\n  byte bVar10;\n  int iVar11;\n  char cVar12;\n  byte bVar13;\n  bool bVar14;\n  bool bVar15;\n  undefined1 *puVar16;\n  int iVar17;\n  int aiStackY_a0 [9];\n  undefined1 local_6c [4];\n  int local_68;\n  byte local_64 [4];\n  int local_60 [5];\n  undefined **local_4c;\n  bool local_46;\n  byte local_45;\n  int local_44 [2];\n  undefined **local_3c;\n  locale *local_38;\n  int local_34 [9];\n  \n  local_4c = &_GLOBAL_OFFSET_TABLE_;\n  local_60[0] = param_4;\n  local_68 = param_5;\n  local_44[1] = param_6;\n  local_38 = (locale *)(param_7 + 0x6c);\n  pcVar6 = use_facet<std::ctype<wchar_t>>(local_38);\n  puVar16 = local_6c;\n  *param_8 = 0;\n  if (param_10 != param_11) {\n    local_46 = local_44[1] == -1;\n    local_3c = local_4c + -0x4e0a4;\n    puVar16 = local_6c;\n    do {\n      puVar16[8] = *(int *)(puVar16 + 0xc) == -1;\n      bVar10 = param_3 != (int *)0x0 & puVar16[8];\n      if (bVar10 == 0) {\n        bVar13 = puVar16[8];\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar11 = *(int *)param_3[2];\n        }\n        else {\n          puVar16[0x27] = bVar10;\n          iVar11 = *param_3;\n          *(int **)(puVar16 + -0x10) = param_3;\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257826;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x27];\n        }\n        bVar13 = 0;\n        if (iVar11 == -1) {\n          param_3 = (int *)0x0;\n          bVar13 = bVar10;\n        }\n      }\n      bVar10 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n      if (bVar10 == 0) {\n        if (bVar13 == puVar16[0x26]) {\nLAB_002575b3:\n          **(undefined4 **)(puVar16 + 0x8c) = 6;\n          break;\n        }\n      }\n      else {\n        piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n        if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n          iVar11 = *piVar2;\n        }\n        else {\n          puVar16[0x28] = bVar10;\n          puVar16[0x27] = bVar13;\n          iVar11 = **(int **)(puVar16 + 4);\n          *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257848;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x28];\n          bVar13 = puVar16[0x27];\n        }\n        uVar9 = 0;\n        if (iVar11 != -1) {\n          bVar10 = 0;\n          uVar9 = *(undefined4 *)(puVar16 + 4);\n        }\n        *(undefined4 *)(puVar16 + 4) = uVar9;\n        if (bVar13 == bVar10) goto LAB_002575b3;\n      }\n      iVar11 = *(int *)pcVar6;\n      *(undefined4 *)(puVar16 + -8) = 0;\n      *(undefined4 *)(puVar16 + -0xc) = *param_10;\n      *(ctype **)(puVar16 + -0x10) = pcVar6;\n      pcVar1 = *(code **)(iVar11 + 0x30);\n      *(undefined4 *)(puVar16 + -0x14) = 0x25727f;\n      cVar4 = (*pcVar1)();\n      if (cVar4 == '%') {\n        *(undefined4 **)(puVar16 + 8) = param_10 + 1;\n        if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 1) {\nLAB_00257861:\n          **(undefined4 **)(puVar16 + 0x8c) = 4;\n          break;\n        }\n        iVar11 = *(int *)pcVar6;\n        *(undefined4 *)(puVar16 + -8) = 0;\n        *(undefined4 *)(puVar16 + -0xc) = param_10[1];\n        *(ctype **)(puVar16 + -0x10) = pcVar6;\n        pcVar1 = *(code **)(iVar11 + 0x30);\n        *(undefined4 *)(puVar16 + -0x14) = 0x2572ad;\n        cVar4 = (*pcVar1)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          *(undefined4 **)(puVar16 + 8) = param_10 + 2;\n          if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 2) goto LAB_00257861;\n          iVar11 = *(int *)pcVar6;\n          *(undefined4 *)(puVar16 + -8) = 0;\n          *(undefined4 *)(puVar16 + -0xc) = param_10[2];\n          *(ctype **)(puVar16 + -0x10) = pcVar6;\n          pcVar1 = *(code **)(iVar11 + 0x30);\n          *(undefined4 *)(puVar16 + -0x14) = 0x25762b;\n          cVar5 = (*pcVar1)();\n          iVar11 = (int)cVar4;\n          cVar12 = cVar4;\n        }\n        else {\n          iVar11 = 0;\n          cVar12 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        puVar16[0x27] = cVar12;\n        iVar17 = (int)cVar5;\n        pcVar1 = *(code **)(**(int **)(puVar16 + 0x74) + 0x20);\n        if (pcVar1 == *(code **)(puVar16 + 0x30)) {\n          *(int *)(puVar16 + 0x28) = iVar11;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x34);\n          *(undefined4 *)(puVar16 + -0x14) = 0x2572f4;\n          pcVar8 = use_facet<std::ctype<wchar_t>>(*(locale **)(puVar16 + -0x10));\n          iVar11 = *(int *)pcVar8;\n          **(undefined4 **)(puVar16 + 0x8c) = 0;\n          *(undefined4 *)(puVar16 + -0xc) = 0x25;\n          *(ctype **)(puVar16 + -0x10) = pcVar8;\n          pcVar1 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)(puVar16 + -0x14) = 0x25730b;\n          uVar9 = (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x40) = uVar9;\n          if (puVar16[0x27] == '\0') {\n            *(int *)(puVar16 + 0x44) = iVar17;\n            *(undefined4 *)(puVar16 + 0x48) = 0;\n          }\n          else {\n            *(undefined4 *)(puVar16 + 0x44) = *(undefined4 *)(puVar16 + 0x28);\n            *(int *)(puVar16 + 0x48) = iVar17;\n            *(undefined4 *)(puVar16 + 0x4c) = 0;\n          }\n          *(int **)(puVar16 + 0x10) = param_3;\n          *(undefined4 *)(puVar16 + 0x14) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x18) = *(undefined4 *)(puVar16 + 4);\n          *(undefined4 *)(puVar16 + 0x1c) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined1 **)(puVar16 + -0xc) = puVar16 + 0x40;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x1c);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x18);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x14);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x10);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x25738d;\n          _M_extract_via_format();\n          iVar11 = *(int *)(puVar16 + 0x3c);\n          param_3 = *(int **)(puVar16 + 0x38);\n          *(int *)(puVar16 + 0x14) = iVar11;\n          *(int *)(puVar16 + 0xc) = iVar11;\n          *(int **)(puVar16 + 0x10) = param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar11 == -1;\n          cVar12 = iVar11 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              puVar16[0x27] = cVar4;\n              iVar11 = *param_3;\n              *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x10);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2578ab;\n              iVar11 = (*pcVar1)();\n              cVar4 = puVar16[0x27];\n            }\n            cVar12 = '\0';\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              cVar12 = cVar4;\n            }\n          }\n          if ((*(int *)(puVar16 + 4) == 0) || (puVar16[0x26] == '\0')) {\n            cVar4 = puVar16[0x26];\n          }\n          else {\n            piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n            if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n              iVar11 = *piVar2;\n            }\n            else {\n              iVar11 = **(int **)(puVar16 + 4);\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257893;\n              iVar11 = (*pcVar1)();\n            }\n            cVar4 = iVar11 == -1;\n          }\n          if (cVar4 == cVar12) {\n            **(uint **)(puVar16 + 0x8c) = **(uint **)(puVar16 + 0x8c) | 2;\n          }\n        }\n        else {\n          *(int **)(puVar16 + 0x78) = param_3;\n          *(undefined4 *)(puVar16 + 0x7c) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x84) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined4 *)(puVar16 + 0x80) = *(undefined4 *)(puVar16 + 4);\n          *(int *)(puVar16 + -8) = iVar11;\n          *(int *)(puVar16 + -0xc) = iVar17;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x84);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x80);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x7c);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x78);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x257721;\n          (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x74) = *(undefined4 *)(puVar16 + 0x34);\n          param_3 = *(int **)(puVar16 + 0x74);\n          *(undefined4 *)(puVar16 + 0x78) = *(undefined4 *)(puVar16 + 0x38);\n          *(undefined4 *)(puVar16 + 8) = *(undefined4 *)(puVar16 + 0x78);\n          puVar16 = puVar16 + -4;\n        }\n        param_10 = (undefined4 *)(*(int *)(puVar16 + 8) + 4);\n        if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;\n      }\n      else {\n        iVar11 = *(int *)pcVar6;\n        *(undefined4 *)(puVar16 + -8) = *param_10;\n        *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n        *(ctype **)(puVar16 + -0x10) = pcVar6;\n        pcVar1 = *(code **)(iVar11 + 8);\n        *(undefined4 *)(puVar16 + -0x14) = 0x257191;\n        cVar4 = (*pcVar1)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || (puVar16[8] == '\0')) {\n            uVar9 = *(undefined4 *)(puVar16 + 0xc);\nLAB_002571af:\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = uVar9;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571ba;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571c7;\n            iVar7 = (*pcVar1)();\n            iVar11 = *(int *)(puVar16 + 0xc);\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *(int *)pcVar6;\n              *(int *)(puVar16 + -0xc) = iVar11;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar17 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571dd;\n              iVar17 = (*pcVar1)();\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -0xc) = *param_10;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571ea;\n              iVar11 = (*pcVar1)();\n              if (iVar11 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              iVar11 = *param_3;\n              *(int **)(puVar16 + -0x10) = param_3;\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x25787c;\n              iVar11 = (*pcVar1)();\n            }\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              uVar9 = 0xffffffff;\n              goto LAB_002571af;\n            }\n            iVar17 = *(int *)pcVar6;\n            *(int *)(puVar16 + -0xc) = iVar11;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar17 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x25767c;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257689;\n            iVar11 = (*pcVar1)();\n            if (iVar17 != iVar11) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar11 = *(int *)param_3[2];\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;\n                iVar11 = (*pcVar1)();\n              }\n              if (iVar11 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar11 = *param_3;\n            *(int **)(puVar16 + -0x10) = param_3;\n            pcVar1 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257811;\n            (*pcVar1)();\n          }\n          *(undefined4 *)(puVar16 + 0xc) = 0xffffffff;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if (*(undefined4 **)(puVar16 + 0x98) != param_10) {\n            puVar3 = *(undefined4 **)(puVar16 + 0x98);\n            do {\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -8) = *param_10;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257440;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          *(undefined4 **)(puVar16 + 0x94) = param_10;\n          iVar11 = *(int *)(puVar16 + 0xc);\n          *(ctype **)(puVar16 + 8) = pcVar6;\n          bVar10 = iVar11 == -1;\n          bVar14 = param_3 != (int *)0x0 && (bool)bVar10;\n          if (bVar14) goto LAB_002574dc;\nLAB_00257468:\n          bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n          bVar15 = (bool)bVar10;\n          if (bVar13 != 0) goto LAB_00257510;\n          while ((bool)puVar16[0x26] != bVar15) {\n            while( true ) {\n              iVar17 = iVar11;\n              if ((param_3 != (int *)0x0) && (bVar10 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = **(int **)(puVar16 + 8);\n              *(int *)(puVar16 + -8) = iVar17;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 8);\n              pcVar1 = *(code **)(iVar7 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2574ab;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x28);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;\n                (*pcVar1)();\n              }\n              iVar11 = -1;\n              bVar10 = true;\n              bVar14 = param_3 != (int *)0x0;\n              if (!bVar14) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }\n              bVar15 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar15 = bVar14;\n              }\n              bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n              if (bVar13 == 0) break;\nLAB_00257510:\n              piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n              if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n                iVar17 = *piVar2;\n              }\n              else {\n                puVar16[0x27] = bVar10;\n                puVar16[0xc] = bVar13;\n                iVar17 = **(int **)(puVar16 + 4);\n                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0x27];\n                bVar13 = puVar16[0xc];\n              }\n              uVar9 = 0;\n              if (iVar17 != -1) {\n                bVar13 = 0;\n                uVar9 = *(undefined4 *)(puVar16 + 4);\n              }\n              *(undefined4 *)(puVar16 + 4) = uVar9;\n              if ((bool)bVar13 == bVar15) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          *(int *)(puVar16 + 0xc) = iVar11;\n          pcVar6 = *(ctype **)(puVar16 + 8);\n          param_10 = *(undefined4 **)(puVar16 + 0x94);\n        }\n        if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;\n      }\n    } while (**(int **)(puVar16 + 0x8c) == 0);\n  }\n  piVar2 = *(int **)(puVar16 + 0x70);\n  iVar11 = *(int *)(puVar16 + 0xc);\n  *piVar2 = (int)param_3;\n  piVar2[1] = iVar11;\n  return;\n}\n\n" comment comment (declaration "void std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::get\n               (undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,\n               undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,\n               undefined4 *param_10,undefined4 *param_11)\n\n{\n  code *pcVar1;" primitive_type (ERROR "std::time_get<" identifier : : identifier <) identifier , (ERROR "std::istreambuf_iterator<" identifier : : identifier <) identifier , (ERROR "std::char_traits<wchar_t>>>::get\n               (undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,\n               undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,\n               undefined4 *param_10,undefined4 *param_11)\n\n{\n  code" identifier : : identifier < identifier >> > : : (function_declarator "get\n               (undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,\n               undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,\n               undefined4 *param_10,undefined4 *param_11)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,\n               undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,\n               undefined4 *param_10,undefined4 *param_11)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "undefined4 *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "undefined4 param_9" type_identifier identifier) , (parameter_declaration "undefined4 *param_10" type_identifier (pointer_declarator "*param_10" * identifier)) , (parameter_declaration "undefined4 *param_11" type_identifier (pointer_declarator "*param_11" * identifier)) ))) { identifier) (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "ctype *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "ctype *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "char cVar12;" primitive_type identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "undefined1 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int aiStackY_a0 [9];" primitive_type (array_declarator "aiStackY_a0 [9]" identifier [ number_literal ]) ;) (declaration "undefined1 local_6c [4];" type_identifier (array_declarator "local_6c [4]" identifier [ number_literal ]) ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "byte local_64 [4];" type_identifier (array_declarator "local_64 [4]" identifier [ number_literal ]) ;) (declaration "int local_60 [5];" primitive_type (array_declarator "local_60 [5]" identifier [ number_literal ]) ;) (declaration "undefined **local_4c;" type_identifier (pointer_declarator "**local_4c" * (pointer_declarator "*local_4c" * identifier)) ;) (declaration "bool local_46;" primitive_type identifier ;) (declaration "byte local_45;" type_identifier identifier ;) (declaration "int local_44 [2];" primitive_type (array_declarator "local_44 [2]" identifier [ number_literal ]) ;) (declaration "undefined **local_3c;" type_identifier (pointer_declarator "**local_3c" * (pointer_declarator "*local_3c" * identifier)) ;) (declaration "locale *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "int local_34 [9];" primitive_type (array_declarator "local_34 [9]" identifier [ number_literal ]) ;) (expression_statement "local_4c = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "local_4c = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (expression_statement "local_60[0] = param_4;" (assignment_expression "local_60[0] = param_4" (subscript_expression "local_60[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_68 = param_5;" (assignment_expression "local_68 = param_5" identifier = identifier) ;) (expression_statement "local_44[1] = param_6;" (assignment_expression "local_44[1] = param_6" (subscript_expression "local_44[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_38 = (locale *)(param_7 + 0x6c);" (assignment_expression "local_38 = (locale *)(param_7 + 0x6c)" identifier = (cast_expression "(locale *)(param_7 + 0x6c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) )))) ;) (expression_statement "pcVar6 = use_facet<std::ctype<wchar_t>>(local_38);" (update_expression "pcVar6 = use_facet<std::ctype<wchar_t>>(local_38)" (binary_expression "pcVar6 = use_facet<std::ctype<wchar_t>>(local_38)" (assignment_expression "pcVar6 = use_facet<std" identifier = (binary_expression "use_facet<std" identifier < identifier)) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>(local_38)" identifier >> (parenthesized_expression "(local_38)" ( identifier )))) --) ;) (expression_statement "puVar16 = local_6c;" (assignment_expression "puVar16 = local_6c" identifier = identifier) ;) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" * identifier) = number_literal) ;) (if_statement "if (param_10 != param_11) {\n    local_46 = local_44[1] == -1;\n    local_3c = local_4c + -0x4e0a4;\n    puVar16 = local_6c;\n    do {\n      puVar16[8] = *(int *)(puVar16 + 0xc) == -1;\n      bVar10 = param_3 != (int *)0x0 & puVar16[8];\n      if (bVar10 == 0) {\n        bVar13 = puVar16[8];\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar11 = *(int *)param_3[2];\n        }\n        else {\n          puVar16[0x27] = bVar10;\n          iVar11 = *param_3;\n          *(int **)(puVar16 + -0x10) = param_3;\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257826;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x27];\n        }\n        bVar13 = 0;\n        if (iVar11 == -1) {\n          param_3 = (int *)0x0;\n          bVar13 = bVar10;\n        }\n      }\n      bVar10 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n      if (bVar10 == 0) {\n        if (bVar13 == puVar16[0x26]) {\nLAB_002575b3:\n          **(undefined4 **)(puVar16 + 0x8c) = 6;\n          break;\n        }\n      }\n      else {\n        piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n        if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n          iVar11 = *piVar2;\n        }\n        else {\n          puVar16[0x28] = bVar10;\n          puVar16[0x27] = bVar13;\n          iVar11 = **(int **)(puVar16 + 4);\n          *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257848;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x28];\n          bVar13 = puVar16[0x27];\n        }\n        uVar9 = 0;\n        if (iVar11 != -1) {\n          bVar10 = 0;\n          uVar9 = *(undefined4 *)(puVar16 + 4);\n        }\n        *(undefined4 *)(puVar16 + 4) = uVar9;\n        if (bVar13 == bVar10) goto LAB_002575b3;\n      }\n      iVar11 = *(int *)pcVar6;\n      *(undefined4 *)(puVar16 + -8) = 0;\n      *(undefined4 *)(puVar16 + -0xc) = *param_10;\n      *(ctype **)(puVar16 + -0x10) = pcVar6;\n      pcVar1 = *(code **)(iVar11 + 0x30);\n      *(undefined4 *)(puVar16 + -0x14) = 0x25727f;\n      cVar4 = (*pcVar1)();\n      if (cVar4 == '%') {\n        *(undefined4 **)(puVar16 + 8) = param_10 + 1;\n        if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 1) {\nLAB_00257861:\n          **(undefined4 **)(puVar16 + 0x8c) = 4;\n          break;\n        }\n        iVar11 = *(int *)pcVar6;\n        *(undefined4 *)(puVar16 + -8) = 0;\n        *(undefined4 *)(puVar16 + -0xc) = param_10[1];\n        *(ctype **)(puVar16 + -0x10) = pcVar6;\n        pcVar1 = *(code **)(iVar11 + 0x30);\n        *(undefined4 *)(puVar16 + -0x14) = 0x2572ad;\n        cVar4 = (*pcVar1)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          *(undefined4 **)(puVar16 + 8) = param_10 + 2;\n          if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 2) goto LAB_00257861;\n          iVar11 = *(int *)pcVar6;\n          *(undefined4 *)(puVar16 + -8) = 0;\n          *(undefined4 *)(puVar16 + -0xc) = param_10[2];\n          *(ctype **)(puVar16 + -0x10) = pcVar6;\n          pcVar1 = *(code **)(iVar11 + 0x30);\n          *(undefined4 *)(puVar16 + -0x14) = 0x25762b;\n          cVar5 = (*pcVar1)();\n          iVar11 = (int)cVar4;\n          cVar12 = cVar4;\n        }\n        else {\n          iVar11 = 0;\n          cVar12 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        puVar16[0x27] = cVar12;\n        iVar17 = (int)cVar5;\n        pcVar1 = *(code **)(**(int **)(puVar16 + 0x74) + 0x20);\n        if (pcVar1 == *(code **)(puVar16 + 0x30)) {\n          *(int *)(puVar16 + 0x28) = iVar11;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x34);\n          *(undefined4 *)(puVar16 + -0x14) = 0x2572f4;\n          pcVar8 = use_facet<std::ctype<wchar_t>>(*(locale **)(puVar16 + -0x10));\n          iVar11 = *(int *)pcVar8;\n          **(undefined4 **)(puVar16 + 0x8c) = 0;\n          *(undefined4 *)(puVar16 + -0xc) = 0x25;\n          *(ctype **)(puVar16 + -0x10) = pcVar8;\n          pcVar1 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)(puVar16 + -0x14) = 0x25730b;\n          uVar9 = (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x40) = uVar9;\n          if (puVar16[0x27] == '\0') {\n            *(int *)(puVar16 + 0x44) = iVar17;\n            *(undefined4 *)(puVar16 + 0x48) = 0;\n          }\n          else {\n            *(undefined4 *)(puVar16 + 0x44) = *(undefined4 *)(puVar16 + 0x28);\n            *(int *)(puVar16 + 0x48) = iVar17;\n            *(undefined4 *)(puVar16 + 0x4c) = 0;\n          }\n          *(int **)(puVar16 + 0x10) = param_3;\n          *(undefined4 *)(puVar16 + 0x14) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x18) = *(undefined4 *)(puVar16 + 4);\n          *(undefined4 *)(puVar16 + 0x1c) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined1 **)(puVar16 + -0xc) = puVar16 + 0x40;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x1c);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x18);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x14);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x10);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x25738d;\n          _M_extract_via_format();\n          iVar11 = *(int *)(puVar16 + 0x3c);\n          param_3 = *(int **)(puVar16 + 0x38);\n          *(int *)(puVar16 + 0x14) = iVar11;\n          *(int *)(puVar16 + 0xc) = iVar11;\n          *(int **)(puVar16 + 0x10) = param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar11 == -1;\n          cVar12 = iVar11 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              puVar16[0x27] = cVar4;\n              iVar11 = *param_3;\n              *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x10);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2578ab;\n              iVar11 = (*pcVar1)();\n              cVar4 = puVar16[0x27];\n            }\n            cVar12 = '\0';\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              cVar12 = cVar4;\n            }\n          }\n          if ((*(int *)(puVar16 + 4) == 0) || (puVar16[0x26] == '\0')) {\n            cVar4 = puVar16[0x26];\n          }\n          else {\n            piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n            if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n              iVar11 = *piVar2;\n            }\n            else {\n              iVar11 = **(int **)(puVar16 + 4);\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257893;\n              iVar11 = (*pcVar1)();\n            }\n            cVar4 = iVar11 == -1;\n          }\n          if (cVar4 == cVar12) {\n            **(uint **)(puVar16 + 0x8c) = **(uint **)(puVar16 + 0x8c) | 2;\n          }\n        }\n        else {\n          *(int **)(puVar16 + 0x78) = param_3;\n          *(undefined4 *)(puVar16 + 0x7c) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x84) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined4 *)(puVar16 + 0x80) = *(undefined4 *)(puVar16 + 4);\n          *(int *)(puVar16 + -8) = iVar11;\n          *(int *)(puVar16 + -0xc) = iVar17;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x84);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x80);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x7c);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x78);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x257721;\n          (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x74) = *(undefined4 *)(puVar16 + 0x34);\n          param_3 = *(int **)(puVar16 + 0x74);\n          *(undefined4 *)(puVar16 + 0x78) = *(undefined4 *)(puVar16 + 0x38);\n          *(undefined4 *)(puVar16 + 8) = *(undefined4 *)(puVar16 + 0x78);\n          puVar16 = puVar16 + -4;\n        }\n        param_10 = (undefined4 *)(*(int *)(puVar16 + 8) + 4);\n        if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;\n      }\n      else {\n        iVar11 = *(int *)pcVar6;\n        *(undefined4 *)(puVar16 + -8) = *param_10;\n        *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n        *(ctype **)(puVar16 + -0x10) = pcVar6;\n        pcVar1 = *(code **)(iVar11 + 8);\n        *(undefined4 *)(puVar16 + -0x14) = 0x257191;\n        cVar4 = (*pcVar1)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || (puVar16[8] == '\0')) {\n            uVar9 = *(undefined4 *)(puVar16 + 0xc);\nLAB_002571af:\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = uVar9;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571ba;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571c7;\n            iVar7 = (*pcVar1)();\n            iVar11 = *(int *)(puVar16 + 0xc);\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *(int *)pcVar6;\n              *(int *)(puVar16 + -0xc) = iVar11;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar17 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571dd;\n              iVar17 = (*pcVar1)();\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -0xc) = *param_10;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571ea;\n              iVar11 = (*pcVar1)();\n              if (iVar11 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              iVar11 = *param_3;\n              *(int **)(puVar16 + -0x10) = param_3;\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x25787c;\n              iVar11 = (*pcVar1)();\n            }\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              uVar9 = 0xffffffff;\n              goto LAB_002571af;\n            }\n            iVar17 = *(int *)pcVar6;\n            *(int *)(puVar16 + -0xc) = iVar11;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar17 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x25767c;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257689;\n            iVar11 = (*pcVar1)();\n            if (iVar17 != iVar11) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar11 = *(int *)param_3[2];\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;\n                iVar11 = (*pcVar1)();\n              }\n              if (iVar11 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar11 = *param_3;\n            *(int **)(puVar16 + -0x10) = param_3;\n            pcVar1 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257811;\n            (*pcVar1)();\n          }\n          *(undefined4 *)(puVar16 + 0xc) = 0xffffffff;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if (*(undefined4 **)(puVar16 + 0x98) != param_10) {\n            puVar3 = *(undefined4 **)(puVar16 + 0x98);\n            do {\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -8) = *param_10;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257440;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          *(undefined4 **)(puVar16 + 0x94) = param_10;\n          iVar11 = *(int *)(puVar16 + 0xc);\n          *(ctype **)(puVar16 + 8) = pcVar6;\n          bVar10 = iVar11 == -1;\n          bVar14 = param_3 != (int *)0x0 && (bool)bVar10;\n          if (bVar14) goto LAB_002574dc;\nLAB_00257468:\n          bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n          bVar15 = (bool)bVar10;\n          if (bVar13 != 0) goto LAB_00257510;\n          while ((bool)puVar16[0x26] != bVar15) {\n            while( true ) {\n              iVar17 = iVar11;\n              if ((param_3 != (int *)0x0) && (bVar10 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = **(int **)(puVar16 + 8);\n              *(int *)(puVar16 + -8) = iVar17;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 8);\n              pcVar1 = *(code **)(iVar7 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2574ab;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x28);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;\n                (*pcVar1)();\n              }\n              iVar11 = -1;\n              bVar10 = true;\n              bVar14 = param_3 != (int *)0x0;\n              if (!bVar14) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }\n              bVar15 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar15 = bVar14;\n              }\n              bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n              if (bVar13 == 0) break;\nLAB_00257510:\n              piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n              if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n                iVar17 = *piVar2;\n              }\n              else {\n                puVar16[0x27] = bVar10;\n                puVar16[0xc] = bVar13;\n                iVar17 = **(int **)(puVar16 + 4);\n                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0x27];\n                bVar13 = puVar16[0xc];\n              }\n              uVar9 = 0;\n              if (iVar17 != -1) {\n                bVar13 = 0;\n                uVar9 = *(undefined4 *)(puVar16 + 4);\n              }\n              *(undefined4 *)(puVar16 + 4) = uVar9;\n              if ((bool)bVar13 == bVar15) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          *(int *)(puVar16 + 0xc) = iVar11;\n          pcVar6 = *(ctype **)(puVar16 + 8);\n          param_10 = *(undefined4 **)(puVar16 + 0x94);\n        }\n        if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;\n      }\n    } while (**(int **)(puVar16 + 0x8c) == 0);\n  }" if (parenthesized_expression "(param_10 != param_11)" ( (binary_expression "param_10 != param_11" identifier != identifier) )) (compound_statement "{\n    local_46 = local_44[1] == -1;\n    local_3c = local_4c + -0x4e0a4;\n    puVar16 = local_6c;\n    do {\n      puVar16[8] = *(int *)(puVar16 + 0xc) == -1;\n      bVar10 = param_3 != (int *)0x0 & puVar16[8];\n      if (bVar10 == 0) {\n        bVar13 = puVar16[8];\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar11 = *(int *)param_3[2];\n        }\n        else {\n          puVar16[0x27] = bVar10;\n          iVar11 = *param_3;\n          *(int **)(puVar16 + -0x10) = param_3;\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257826;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x27];\n        }\n        bVar13 = 0;\n        if (iVar11 == -1) {\n          param_3 = (int *)0x0;\n          bVar13 = bVar10;\n        }\n      }\n      bVar10 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n      if (bVar10 == 0) {\n        if (bVar13 == puVar16[0x26]) {\nLAB_002575b3:\n          **(undefined4 **)(puVar16 + 0x8c) = 6;\n          break;\n        }\n      }\n      else {\n        piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n        if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n          iVar11 = *piVar2;\n        }\n        else {\n          puVar16[0x28] = bVar10;\n          puVar16[0x27] = bVar13;\n          iVar11 = **(int **)(puVar16 + 4);\n          *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257848;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x28];\n          bVar13 = puVar16[0x27];\n        }\n        uVar9 = 0;\n        if (iVar11 != -1) {\n          bVar10 = 0;\n          uVar9 = *(undefined4 *)(puVar16 + 4);\n        }\n        *(undefined4 *)(puVar16 + 4) = uVar9;\n        if (bVar13 == bVar10) goto LAB_002575b3;\n      }\n      iVar11 = *(int *)pcVar6;\n      *(undefined4 *)(puVar16 + -8) = 0;\n      *(undefined4 *)(puVar16 + -0xc) = *param_10;\n      *(ctype **)(puVar16 + -0x10) = pcVar6;\n      pcVar1 = *(code **)(iVar11 + 0x30);\n      *(undefined4 *)(puVar16 + -0x14) = 0x25727f;\n      cVar4 = (*pcVar1)();\n      if (cVar4 == '%') {\n        *(undefined4 **)(puVar16 + 8) = param_10 + 1;\n        if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 1) {\nLAB_00257861:\n          **(undefined4 **)(puVar16 + 0x8c) = 4;\n          break;\n        }\n        iVar11 = *(int *)pcVar6;\n        *(undefined4 *)(puVar16 + -8) = 0;\n        *(undefined4 *)(puVar16 + -0xc) = param_10[1];\n        *(ctype **)(puVar16 + -0x10) = pcVar6;\n        pcVar1 = *(code **)(iVar11 + 0x30);\n        *(undefined4 *)(puVar16 + -0x14) = 0x2572ad;\n        cVar4 = (*pcVar1)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          *(undefined4 **)(puVar16 + 8) = param_10 + 2;\n          if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 2) goto LAB_00257861;\n          iVar11 = *(int *)pcVar6;\n          *(undefined4 *)(puVar16 + -8) = 0;\n          *(undefined4 *)(puVar16 + -0xc) = param_10[2];\n          *(ctype **)(puVar16 + -0x10) = pcVar6;\n          pcVar1 = *(code **)(iVar11 + 0x30);\n          *(undefined4 *)(puVar16 + -0x14) = 0x25762b;\n          cVar5 = (*pcVar1)();\n          iVar11 = (int)cVar4;\n          cVar12 = cVar4;\n        }\n        else {\n          iVar11 = 0;\n          cVar12 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        puVar16[0x27] = cVar12;\n        iVar17 = (int)cVar5;\n        pcVar1 = *(code **)(**(int **)(puVar16 + 0x74) + 0x20);\n        if (pcVar1 == *(code **)(puVar16 + 0x30)) {\n          *(int *)(puVar16 + 0x28) = iVar11;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x34);\n          *(undefined4 *)(puVar16 + -0x14) = 0x2572f4;\n          pcVar8 = use_facet<std::ctype<wchar_t>>(*(locale **)(puVar16 + -0x10));\n          iVar11 = *(int *)pcVar8;\n          **(undefined4 **)(puVar16 + 0x8c) = 0;\n          *(undefined4 *)(puVar16 + -0xc) = 0x25;\n          *(ctype **)(puVar16 + -0x10) = pcVar8;\n          pcVar1 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)(puVar16 + -0x14) = 0x25730b;\n          uVar9 = (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x40) = uVar9;\n          if (puVar16[0x27] == '\0') {\n            *(int *)(puVar16 + 0x44) = iVar17;\n            *(undefined4 *)(puVar16 + 0x48) = 0;\n          }\n          else {\n            *(undefined4 *)(puVar16 + 0x44) = *(undefined4 *)(puVar16 + 0x28);\n            *(int *)(puVar16 + 0x48) = iVar17;\n            *(undefined4 *)(puVar16 + 0x4c) = 0;\n          }\n          *(int **)(puVar16 + 0x10) = param_3;\n          *(undefined4 *)(puVar16 + 0x14) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x18) = *(undefined4 *)(puVar16 + 4);\n          *(undefined4 *)(puVar16 + 0x1c) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined1 **)(puVar16 + -0xc) = puVar16 + 0x40;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x1c);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x18);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x14);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x10);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x25738d;\n          _M_extract_via_format();\n          iVar11 = *(int *)(puVar16 + 0x3c);\n          param_3 = *(int **)(puVar16 + 0x38);\n          *(int *)(puVar16 + 0x14) = iVar11;\n          *(int *)(puVar16 + 0xc) = iVar11;\n          *(int **)(puVar16 + 0x10) = param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar11 == -1;\n          cVar12 = iVar11 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              puVar16[0x27] = cVar4;\n              iVar11 = *param_3;\n              *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x10);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2578ab;\n              iVar11 = (*pcVar1)();\n              cVar4 = puVar16[0x27];\n            }\n            cVar12 = '\0';\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              cVar12 = cVar4;\n            }\n          }\n          if ((*(int *)(puVar16 + 4) == 0) || (puVar16[0x26] == '\0')) {\n            cVar4 = puVar16[0x26];\n          }\n          else {\n            piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n            if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n              iVar11 = *piVar2;\n            }\n            else {\n              iVar11 = **(int **)(puVar16 + 4);\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257893;\n              iVar11 = (*pcVar1)();\n            }\n            cVar4 = iVar11 == -1;\n          }\n          if (cVar4 == cVar12) {\n            **(uint **)(puVar16 + 0x8c) = **(uint **)(puVar16 + 0x8c) | 2;\n          }\n        }\n        else {\n          *(int **)(puVar16 + 0x78) = param_3;\n          *(undefined4 *)(puVar16 + 0x7c) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x84) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined4 *)(puVar16 + 0x80) = *(undefined4 *)(puVar16 + 4);\n          *(int *)(puVar16 + -8) = iVar11;\n          *(int *)(puVar16 + -0xc) = iVar17;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x84);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x80);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x7c);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x78);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x257721;\n          (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x74) = *(undefined4 *)(puVar16 + 0x34);\n          param_3 = *(int **)(puVar16 + 0x74);\n          *(undefined4 *)(puVar16 + 0x78) = *(undefined4 *)(puVar16 + 0x38);\n          *(undefined4 *)(puVar16 + 8) = *(undefined4 *)(puVar16 + 0x78);\n          puVar16 = puVar16 + -4;\n        }\n        param_10 = (undefined4 *)(*(int *)(puVar16 + 8) + 4);\n        if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;\n      }\n      else {\n        iVar11 = *(int *)pcVar6;\n        *(undefined4 *)(puVar16 + -8) = *param_10;\n        *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n        *(ctype **)(puVar16 + -0x10) = pcVar6;\n        pcVar1 = *(code **)(iVar11 + 8);\n        *(undefined4 *)(puVar16 + -0x14) = 0x257191;\n        cVar4 = (*pcVar1)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || (puVar16[8] == '\0')) {\n            uVar9 = *(undefined4 *)(puVar16 + 0xc);\nLAB_002571af:\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = uVar9;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571ba;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571c7;\n            iVar7 = (*pcVar1)();\n            iVar11 = *(int *)(puVar16 + 0xc);\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *(int *)pcVar6;\n              *(int *)(puVar16 + -0xc) = iVar11;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar17 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571dd;\n              iVar17 = (*pcVar1)();\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -0xc) = *param_10;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571ea;\n              iVar11 = (*pcVar1)();\n              if (iVar11 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              iVar11 = *param_3;\n              *(int **)(puVar16 + -0x10) = param_3;\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x25787c;\n              iVar11 = (*pcVar1)();\n            }\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              uVar9 = 0xffffffff;\n              goto LAB_002571af;\n            }\n            iVar17 = *(int *)pcVar6;\n            *(int *)(puVar16 + -0xc) = iVar11;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar17 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x25767c;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257689;\n            iVar11 = (*pcVar1)();\n            if (iVar17 != iVar11) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar11 = *(int *)param_3[2];\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;\n                iVar11 = (*pcVar1)();\n              }\n              if (iVar11 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar11 = *param_3;\n            *(int **)(puVar16 + -0x10) = param_3;\n            pcVar1 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257811;\n            (*pcVar1)();\n          }\n          *(undefined4 *)(puVar16 + 0xc) = 0xffffffff;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if (*(undefined4 **)(puVar16 + 0x98) != param_10) {\n            puVar3 = *(undefined4 **)(puVar16 + 0x98);\n            do {\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -8) = *param_10;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257440;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          *(undefined4 **)(puVar16 + 0x94) = param_10;\n          iVar11 = *(int *)(puVar16 + 0xc);\n          *(ctype **)(puVar16 + 8) = pcVar6;\n          bVar10 = iVar11 == -1;\n          bVar14 = param_3 != (int *)0x0 && (bool)bVar10;\n          if (bVar14) goto LAB_002574dc;\nLAB_00257468:\n          bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n          bVar15 = (bool)bVar10;\n          if (bVar13 != 0) goto LAB_00257510;\n          while ((bool)puVar16[0x26] != bVar15) {\n            while( true ) {\n              iVar17 = iVar11;\n              if ((param_3 != (int *)0x0) && (bVar10 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = **(int **)(puVar16 + 8);\n              *(int *)(puVar16 + -8) = iVar17;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 8);\n              pcVar1 = *(code **)(iVar7 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2574ab;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x28);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;\n                (*pcVar1)();\n              }\n              iVar11 = -1;\n              bVar10 = true;\n              bVar14 = param_3 != (int *)0x0;\n              if (!bVar14) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }\n              bVar15 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar15 = bVar14;\n              }\n              bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n              if (bVar13 == 0) break;\nLAB_00257510:\n              piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n              if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n                iVar17 = *piVar2;\n              }\n              else {\n                puVar16[0x27] = bVar10;\n                puVar16[0xc] = bVar13;\n                iVar17 = **(int **)(puVar16 + 4);\n                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0x27];\n                bVar13 = puVar16[0xc];\n              }\n              uVar9 = 0;\n              if (iVar17 != -1) {\n                bVar13 = 0;\n                uVar9 = *(undefined4 *)(puVar16 + 4);\n              }\n              *(undefined4 *)(puVar16 + 4) = uVar9;\n              if ((bool)bVar13 == bVar15) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          *(int *)(puVar16 + 0xc) = iVar11;\n          pcVar6 = *(ctype **)(puVar16 + 8);\n          param_10 = *(undefined4 **)(puVar16 + 0x94);\n        }\n        if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;\n      }\n    } while (**(int **)(puVar16 + 0x8c) == 0);\n  }" { (expression_statement "local_46 = local_44[1] == -1;" (assignment_expression "local_46 = local_44[1] == -1" identifier = (binary_expression "local_44[1] == -1" (subscript_expression "local_44[1]" identifier [ number_literal ]) == number_literal)) ;) (expression_statement "local_3c = local_4c + -0x4e0a4;" (assignment_expression "local_3c = local_4c + -0x4e0a4" identifier = (binary_expression "local_4c + -0x4e0a4" identifier + number_literal)) ;) (expression_statement "puVar16 = local_6c;" (assignment_expression "puVar16 = local_6c" identifier = identifier) ;) (do_statement "do {\n      puVar16[8] = *(int *)(puVar16 + 0xc) == -1;\n      bVar10 = param_3 != (int *)0x0 & puVar16[8];\n      if (bVar10 == 0) {\n        bVar13 = puVar16[8];\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar11 = *(int *)param_3[2];\n        }\n        else {\n          puVar16[0x27] = bVar10;\n          iVar11 = *param_3;\n          *(int **)(puVar16 + -0x10) = param_3;\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257826;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x27];\n        }\n        bVar13 = 0;\n        if (iVar11 == -1) {\n          param_3 = (int *)0x0;\n          bVar13 = bVar10;\n        }\n      }\n      bVar10 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n      if (bVar10 == 0) {\n        if (bVar13 == puVar16[0x26]) {\nLAB_002575b3:\n          **(undefined4 **)(puVar16 + 0x8c) = 6;\n          break;\n        }\n      }\n      else {\n        piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n        if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n          iVar11 = *piVar2;\n        }\n        else {\n          puVar16[0x28] = bVar10;\n          puVar16[0x27] = bVar13;\n          iVar11 = **(int **)(puVar16 + 4);\n          *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257848;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x28];\n          bVar13 = puVar16[0x27];\n        }\n        uVar9 = 0;\n        if (iVar11 != -1) {\n          bVar10 = 0;\n          uVar9 = *(undefined4 *)(puVar16 + 4);\n        }\n        *(undefined4 *)(puVar16 + 4) = uVar9;\n        if (bVar13 == bVar10) goto LAB_002575b3;\n      }\n      iVar11 = *(int *)pcVar6;\n      *(undefined4 *)(puVar16 + -8) = 0;\n      *(undefined4 *)(puVar16 + -0xc) = *param_10;\n      *(ctype **)(puVar16 + -0x10) = pcVar6;\n      pcVar1 = *(code **)(iVar11 + 0x30);\n      *(undefined4 *)(puVar16 + -0x14) = 0x25727f;\n      cVar4 = (*pcVar1)();\n      if (cVar4 == '%') {\n        *(undefined4 **)(puVar16 + 8) = param_10 + 1;\n        if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 1) {\nLAB_00257861:\n          **(undefined4 **)(puVar16 + 0x8c) = 4;\n          break;\n        }\n        iVar11 = *(int *)pcVar6;\n        *(undefined4 *)(puVar16 + -8) = 0;\n        *(undefined4 *)(puVar16 + -0xc) = param_10[1];\n        *(ctype **)(puVar16 + -0x10) = pcVar6;\n        pcVar1 = *(code **)(iVar11 + 0x30);\n        *(undefined4 *)(puVar16 + -0x14) = 0x2572ad;\n        cVar4 = (*pcVar1)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          *(undefined4 **)(puVar16 + 8) = param_10 + 2;\n          if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 2) goto LAB_00257861;\n          iVar11 = *(int *)pcVar6;\n          *(undefined4 *)(puVar16 + -8) = 0;\n          *(undefined4 *)(puVar16 + -0xc) = param_10[2];\n          *(ctype **)(puVar16 + -0x10) = pcVar6;\n          pcVar1 = *(code **)(iVar11 + 0x30);\n          *(undefined4 *)(puVar16 + -0x14) = 0x25762b;\n          cVar5 = (*pcVar1)();\n          iVar11 = (int)cVar4;\n          cVar12 = cVar4;\n        }\n        else {\n          iVar11 = 0;\n          cVar12 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        puVar16[0x27] = cVar12;\n        iVar17 = (int)cVar5;\n        pcVar1 = *(code **)(**(int **)(puVar16 + 0x74) + 0x20);\n        if (pcVar1 == *(code **)(puVar16 + 0x30)) {\n          *(int *)(puVar16 + 0x28) = iVar11;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x34);\n          *(undefined4 *)(puVar16 + -0x14) = 0x2572f4;\n          pcVar8 = use_facet<std::ctype<wchar_t>>(*(locale **)(puVar16 + -0x10));\n          iVar11 = *(int *)pcVar8;\n          **(undefined4 **)(puVar16 + 0x8c) = 0;\n          *(undefined4 *)(puVar16 + -0xc) = 0x25;\n          *(ctype **)(puVar16 + -0x10) = pcVar8;\n          pcVar1 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)(puVar16 + -0x14) = 0x25730b;\n          uVar9 = (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x40) = uVar9;\n          if (puVar16[0x27] == '\0') {\n            *(int *)(puVar16 + 0x44) = iVar17;\n            *(undefined4 *)(puVar16 + 0x48) = 0;\n          }\n          else {\n            *(undefined4 *)(puVar16 + 0x44) = *(undefined4 *)(puVar16 + 0x28);\n            *(int *)(puVar16 + 0x48) = iVar17;\n            *(undefined4 *)(puVar16 + 0x4c) = 0;\n          }\n          *(int **)(puVar16 + 0x10) = param_3;\n          *(undefined4 *)(puVar16 + 0x14) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x18) = *(undefined4 *)(puVar16 + 4);\n          *(undefined4 *)(puVar16 + 0x1c) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined1 **)(puVar16 + -0xc) = puVar16 + 0x40;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x1c);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x18);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x14);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x10);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x25738d;\n          _M_extract_via_format();\n          iVar11 = *(int *)(puVar16 + 0x3c);\n          param_3 = *(int **)(puVar16 + 0x38);\n          *(int *)(puVar16 + 0x14) = iVar11;\n          *(int *)(puVar16 + 0xc) = iVar11;\n          *(int **)(puVar16 + 0x10) = param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar11 == -1;\n          cVar12 = iVar11 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              puVar16[0x27] = cVar4;\n              iVar11 = *param_3;\n              *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x10);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2578ab;\n              iVar11 = (*pcVar1)();\n              cVar4 = puVar16[0x27];\n            }\n            cVar12 = '\0';\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              cVar12 = cVar4;\n            }\n          }\n          if ((*(int *)(puVar16 + 4) == 0) || (puVar16[0x26] == '\0')) {\n            cVar4 = puVar16[0x26];\n          }\n          else {\n            piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n            if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n              iVar11 = *piVar2;\n            }\n            else {\n              iVar11 = **(int **)(puVar16 + 4);\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257893;\n              iVar11 = (*pcVar1)();\n            }\n            cVar4 = iVar11 == -1;\n          }\n          if (cVar4 == cVar12) {\n            **(uint **)(puVar16 + 0x8c) = **(uint **)(puVar16 + 0x8c) | 2;\n          }\n        }\n        else {\n          *(int **)(puVar16 + 0x78) = param_3;\n          *(undefined4 *)(puVar16 + 0x7c) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x84) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined4 *)(puVar16 + 0x80) = *(undefined4 *)(puVar16 + 4);\n          *(int *)(puVar16 + -8) = iVar11;\n          *(int *)(puVar16 + -0xc) = iVar17;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x84);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x80);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x7c);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x78);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x257721;\n          (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x74) = *(undefined4 *)(puVar16 + 0x34);\n          param_3 = *(int **)(puVar16 + 0x74);\n          *(undefined4 *)(puVar16 + 0x78) = *(undefined4 *)(puVar16 + 0x38);\n          *(undefined4 *)(puVar16 + 8) = *(undefined4 *)(puVar16 + 0x78);\n          puVar16 = puVar16 + -4;\n        }\n        param_10 = (undefined4 *)(*(int *)(puVar16 + 8) + 4);\n        if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;\n      }\n      else {\n        iVar11 = *(int *)pcVar6;\n        *(undefined4 *)(puVar16 + -8) = *param_10;\n        *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n        *(ctype **)(puVar16 + -0x10) = pcVar6;\n        pcVar1 = *(code **)(iVar11 + 8);\n        *(undefined4 *)(puVar16 + -0x14) = 0x257191;\n        cVar4 = (*pcVar1)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || (puVar16[8] == '\0')) {\n            uVar9 = *(undefined4 *)(puVar16 + 0xc);\nLAB_002571af:\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = uVar9;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571ba;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571c7;\n            iVar7 = (*pcVar1)();\n            iVar11 = *(int *)(puVar16 + 0xc);\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *(int *)pcVar6;\n              *(int *)(puVar16 + -0xc) = iVar11;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar17 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571dd;\n              iVar17 = (*pcVar1)();\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -0xc) = *param_10;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571ea;\n              iVar11 = (*pcVar1)();\n              if (iVar11 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              iVar11 = *param_3;\n              *(int **)(puVar16 + -0x10) = param_3;\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x25787c;\n              iVar11 = (*pcVar1)();\n            }\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              uVar9 = 0xffffffff;\n              goto LAB_002571af;\n            }\n            iVar17 = *(int *)pcVar6;\n            *(int *)(puVar16 + -0xc) = iVar11;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar17 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x25767c;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257689;\n            iVar11 = (*pcVar1)();\n            if (iVar17 != iVar11) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar11 = *(int *)param_3[2];\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;\n                iVar11 = (*pcVar1)();\n              }\n              if (iVar11 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar11 = *param_3;\n            *(int **)(puVar16 + -0x10) = param_3;\n            pcVar1 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257811;\n            (*pcVar1)();\n          }\n          *(undefined4 *)(puVar16 + 0xc) = 0xffffffff;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if (*(undefined4 **)(puVar16 + 0x98) != param_10) {\n            puVar3 = *(undefined4 **)(puVar16 + 0x98);\n            do {\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -8) = *param_10;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257440;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          *(undefined4 **)(puVar16 + 0x94) = param_10;\n          iVar11 = *(int *)(puVar16 + 0xc);\n          *(ctype **)(puVar16 + 8) = pcVar6;\n          bVar10 = iVar11 == -1;\n          bVar14 = param_3 != (int *)0x0 && (bool)bVar10;\n          if (bVar14) goto LAB_002574dc;\nLAB_00257468:\n          bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n          bVar15 = (bool)bVar10;\n          if (bVar13 != 0) goto LAB_00257510;\n          while ((bool)puVar16[0x26] != bVar15) {\n            while( true ) {\n              iVar17 = iVar11;\n              if ((param_3 != (int *)0x0) && (bVar10 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = **(int **)(puVar16 + 8);\n              *(int *)(puVar16 + -8) = iVar17;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 8);\n              pcVar1 = *(code **)(iVar7 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2574ab;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x28);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;\n                (*pcVar1)();\n              }\n              iVar11 = -1;\n              bVar10 = true;\n              bVar14 = param_3 != (int *)0x0;\n              if (!bVar14) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }\n              bVar15 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar15 = bVar14;\n              }\n              bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n              if (bVar13 == 0) break;\nLAB_00257510:\n              piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n              if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n                iVar17 = *piVar2;\n              }\n              else {\n                puVar16[0x27] = bVar10;\n                puVar16[0xc] = bVar13;\n                iVar17 = **(int **)(puVar16 + 4);\n                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0x27];\n                bVar13 = puVar16[0xc];\n              }\n              uVar9 = 0;\n              if (iVar17 != -1) {\n                bVar13 = 0;\n                uVar9 = *(undefined4 *)(puVar16 + 4);\n              }\n              *(undefined4 *)(puVar16 + 4) = uVar9;\n              if ((bool)bVar13 == bVar15) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          *(int *)(puVar16 + 0xc) = iVar11;\n          pcVar6 = *(ctype **)(puVar16 + 8);\n          param_10 = *(undefined4 **)(puVar16 + 0x94);\n        }\n        if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;\n      }\n    } while (**(int **)(puVar16 + 0x8c) == 0);" do (compound_statement "{\n      puVar16[8] = *(int *)(puVar16 + 0xc) == -1;\n      bVar10 = param_3 != (int *)0x0 & puVar16[8];\n      if (bVar10 == 0) {\n        bVar13 = puVar16[8];\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar11 = *(int *)param_3[2];\n        }\n        else {\n          puVar16[0x27] = bVar10;\n          iVar11 = *param_3;\n          *(int **)(puVar16 + -0x10) = param_3;\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257826;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x27];\n        }\n        bVar13 = 0;\n        if (iVar11 == -1) {\n          param_3 = (int *)0x0;\n          bVar13 = bVar10;\n        }\n      }\n      bVar10 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n      if (bVar10 == 0) {\n        if (bVar13 == puVar16[0x26]) {\nLAB_002575b3:\n          **(undefined4 **)(puVar16 + 0x8c) = 6;\n          break;\n        }\n      }\n      else {\n        piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n        if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n          iVar11 = *piVar2;\n        }\n        else {\n          puVar16[0x28] = bVar10;\n          puVar16[0x27] = bVar13;\n          iVar11 = **(int **)(puVar16 + 4);\n          *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257848;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x28];\n          bVar13 = puVar16[0x27];\n        }\n        uVar9 = 0;\n        if (iVar11 != -1) {\n          bVar10 = 0;\n          uVar9 = *(undefined4 *)(puVar16 + 4);\n        }\n        *(undefined4 *)(puVar16 + 4) = uVar9;\n        if (bVar13 == bVar10) goto LAB_002575b3;\n      }\n      iVar11 = *(int *)pcVar6;\n      *(undefined4 *)(puVar16 + -8) = 0;\n      *(undefined4 *)(puVar16 + -0xc) = *param_10;\n      *(ctype **)(puVar16 + -0x10) = pcVar6;\n      pcVar1 = *(code **)(iVar11 + 0x30);\n      *(undefined4 *)(puVar16 + -0x14) = 0x25727f;\n      cVar4 = (*pcVar1)();\n      if (cVar4 == '%') {\n        *(undefined4 **)(puVar16 + 8) = param_10 + 1;\n        if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 1) {\nLAB_00257861:\n          **(undefined4 **)(puVar16 + 0x8c) = 4;\n          break;\n        }\n        iVar11 = *(int *)pcVar6;\n        *(undefined4 *)(puVar16 + -8) = 0;\n        *(undefined4 *)(puVar16 + -0xc) = param_10[1];\n        *(ctype **)(puVar16 + -0x10) = pcVar6;\n        pcVar1 = *(code **)(iVar11 + 0x30);\n        *(undefined4 *)(puVar16 + -0x14) = 0x2572ad;\n        cVar4 = (*pcVar1)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          *(undefined4 **)(puVar16 + 8) = param_10 + 2;\n          if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 2) goto LAB_00257861;\n          iVar11 = *(int *)pcVar6;\n          *(undefined4 *)(puVar16 + -8) = 0;\n          *(undefined4 *)(puVar16 + -0xc) = param_10[2];\n          *(ctype **)(puVar16 + -0x10) = pcVar6;\n          pcVar1 = *(code **)(iVar11 + 0x30);\n          *(undefined4 *)(puVar16 + -0x14) = 0x25762b;\n          cVar5 = (*pcVar1)();\n          iVar11 = (int)cVar4;\n          cVar12 = cVar4;\n        }\n        else {\n          iVar11 = 0;\n          cVar12 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        puVar16[0x27] = cVar12;\n        iVar17 = (int)cVar5;\n        pcVar1 = *(code **)(**(int **)(puVar16 + 0x74) + 0x20);\n        if (pcVar1 == *(code **)(puVar16 + 0x30)) {\n          *(int *)(puVar16 + 0x28) = iVar11;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x34);\n          *(undefined4 *)(puVar16 + -0x14) = 0x2572f4;\n          pcVar8 = use_facet<std::ctype<wchar_t>>(*(locale **)(puVar16 + -0x10));\n          iVar11 = *(int *)pcVar8;\n          **(undefined4 **)(puVar16 + 0x8c) = 0;\n          *(undefined4 *)(puVar16 + -0xc) = 0x25;\n          *(ctype **)(puVar16 + -0x10) = pcVar8;\n          pcVar1 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)(puVar16 + -0x14) = 0x25730b;\n          uVar9 = (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x40) = uVar9;\n          if (puVar16[0x27] == '\0') {\n            *(int *)(puVar16 + 0x44) = iVar17;\n            *(undefined4 *)(puVar16 + 0x48) = 0;\n          }\n          else {\n            *(undefined4 *)(puVar16 + 0x44) = *(undefined4 *)(puVar16 + 0x28);\n            *(int *)(puVar16 + 0x48) = iVar17;\n            *(undefined4 *)(puVar16 + 0x4c) = 0;\n          }\n          *(int **)(puVar16 + 0x10) = param_3;\n          *(undefined4 *)(puVar16 + 0x14) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x18) = *(undefined4 *)(puVar16 + 4);\n          *(undefined4 *)(puVar16 + 0x1c) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined1 **)(puVar16 + -0xc) = puVar16 + 0x40;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x1c);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x18);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x14);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x10);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x25738d;\n          _M_extract_via_format();\n          iVar11 = *(int *)(puVar16 + 0x3c);\n          param_3 = *(int **)(puVar16 + 0x38);\n          *(int *)(puVar16 + 0x14) = iVar11;\n          *(int *)(puVar16 + 0xc) = iVar11;\n          *(int **)(puVar16 + 0x10) = param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar11 == -1;\n          cVar12 = iVar11 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              puVar16[0x27] = cVar4;\n              iVar11 = *param_3;\n              *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x10);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2578ab;\n              iVar11 = (*pcVar1)();\n              cVar4 = puVar16[0x27];\n            }\n            cVar12 = '\0';\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              cVar12 = cVar4;\n            }\n          }\n          if ((*(int *)(puVar16 + 4) == 0) || (puVar16[0x26] == '\0')) {\n            cVar4 = puVar16[0x26];\n          }\n          else {\n            piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n            if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n              iVar11 = *piVar2;\n            }\n            else {\n              iVar11 = **(int **)(puVar16 + 4);\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257893;\n              iVar11 = (*pcVar1)();\n            }\n            cVar4 = iVar11 == -1;\n          }\n          if (cVar4 == cVar12) {\n            **(uint **)(puVar16 + 0x8c) = **(uint **)(puVar16 + 0x8c) | 2;\n          }\n        }\n        else {\n          *(int **)(puVar16 + 0x78) = param_3;\n          *(undefined4 *)(puVar16 + 0x7c) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x84) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined4 *)(puVar16 + 0x80) = *(undefined4 *)(puVar16 + 4);\n          *(int *)(puVar16 + -8) = iVar11;\n          *(int *)(puVar16 + -0xc) = iVar17;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x84);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x80);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x7c);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x78);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x257721;\n          (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x74) = *(undefined4 *)(puVar16 + 0x34);\n          param_3 = *(int **)(puVar16 + 0x74);\n          *(undefined4 *)(puVar16 + 0x78) = *(undefined4 *)(puVar16 + 0x38);\n          *(undefined4 *)(puVar16 + 8) = *(undefined4 *)(puVar16 + 0x78);\n          puVar16 = puVar16 + -4;\n        }\n        param_10 = (undefined4 *)(*(int *)(puVar16 + 8) + 4);\n        if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;\n      }\n      else {\n        iVar11 = *(int *)pcVar6;\n        *(undefined4 *)(puVar16 + -8) = *param_10;\n        *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n        *(ctype **)(puVar16 + -0x10) = pcVar6;\n        pcVar1 = *(code **)(iVar11 + 8);\n        *(undefined4 *)(puVar16 + -0x14) = 0x257191;\n        cVar4 = (*pcVar1)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || (puVar16[8] == '\0')) {\n            uVar9 = *(undefined4 *)(puVar16 + 0xc);\nLAB_002571af:\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = uVar9;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571ba;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571c7;\n            iVar7 = (*pcVar1)();\n            iVar11 = *(int *)(puVar16 + 0xc);\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *(int *)pcVar6;\n              *(int *)(puVar16 + -0xc) = iVar11;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar17 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571dd;\n              iVar17 = (*pcVar1)();\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -0xc) = *param_10;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571ea;\n              iVar11 = (*pcVar1)();\n              if (iVar11 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              iVar11 = *param_3;\n              *(int **)(puVar16 + -0x10) = param_3;\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x25787c;\n              iVar11 = (*pcVar1)();\n            }\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              uVar9 = 0xffffffff;\n              goto LAB_002571af;\n            }\n            iVar17 = *(int *)pcVar6;\n            *(int *)(puVar16 + -0xc) = iVar11;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar17 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x25767c;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257689;\n            iVar11 = (*pcVar1)();\n            if (iVar17 != iVar11) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar11 = *(int *)param_3[2];\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;\n                iVar11 = (*pcVar1)();\n              }\n              if (iVar11 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar11 = *param_3;\n            *(int **)(puVar16 + -0x10) = param_3;\n            pcVar1 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257811;\n            (*pcVar1)();\n          }\n          *(undefined4 *)(puVar16 + 0xc) = 0xffffffff;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if (*(undefined4 **)(puVar16 + 0x98) != param_10) {\n            puVar3 = *(undefined4 **)(puVar16 + 0x98);\n            do {\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -8) = *param_10;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257440;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          *(undefined4 **)(puVar16 + 0x94) = param_10;\n          iVar11 = *(int *)(puVar16 + 0xc);\n          *(ctype **)(puVar16 + 8) = pcVar6;\n          bVar10 = iVar11 == -1;\n          bVar14 = param_3 != (int *)0x0 && (bool)bVar10;\n          if (bVar14) goto LAB_002574dc;\nLAB_00257468:\n          bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n          bVar15 = (bool)bVar10;\n          if (bVar13 != 0) goto LAB_00257510;\n          while ((bool)puVar16[0x26] != bVar15) {\n            while( true ) {\n              iVar17 = iVar11;\n              if ((param_3 != (int *)0x0) && (bVar10 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = **(int **)(puVar16 + 8);\n              *(int *)(puVar16 + -8) = iVar17;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 8);\n              pcVar1 = *(code **)(iVar7 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2574ab;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x28);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;\n                (*pcVar1)();\n              }\n              iVar11 = -1;\n              bVar10 = true;\n              bVar14 = param_3 != (int *)0x0;\n              if (!bVar14) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }\n              bVar15 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar15 = bVar14;\n              }\n              bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n              if (bVar13 == 0) break;\nLAB_00257510:\n              piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n              if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n                iVar17 = *piVar2;\n              }\n              else {\n                puVar16[0x27] = bVar10;\n                puVar16[0xc] = bVar13;\n                iVar17 = **(int **)(puVar16 + 4);\n                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0x27];\n                bVar13 = puVar16[0xc];\n              }\n              uVar9 = 0;\n              if (iVar17 != -1) {\n                bVar13 = 0;\n                uVar9 = *(undefined4 *)(puVar16 + 4);\n              }\n              *(undefined4 *)(puVar16 + 4) = uVar9;\n              if ((bool)bVar13 == bVar15) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          *(int *)(puVar16 + 0xc) = iVar11;\n          pcVar6 = *(ctype **)(puVar16 + 8);\n          param_10 = *(undefined4 **)(puVar16 + 0x94);\n        }\n        if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;\n      }\n    }" { (expression_statement "puVar16[8] = *(int *)(puVar16 + 0xc) == -1;" (assignment_expression "puVar16[8] = *(int *)(puVar16 + 0xc) == -1" (subscript_expression "puVar16[8]" identifier [ number_literal ]) = (binary_expression "*(int *)(puVar16 + 0xc) == -1" (pointer_expression "*(int *)(puVar16 + 0xc)" * (cast_expression "(int *)(puVar16 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0xc)" ( (binary_expression "puVar16 + 0xc" identifier + number_literal) )))) == number_literal)) ;) (expression_statement "bVar10 = param_3 != (int *)0x0 & puVar16[8];" (assignment_expression "bVar10 = param_3 != (int *)0x0 & puVar16[8]" identifier = (binary_expression "param_3 != (int *)0x0 & puVar16[8]" (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) & (subscript_expression "puVar16[8]" identifier [ number_literal ]))) ;) (if_statement "if (bVar10 == 0) {\n        bVar13 = puVar16[8];\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar11 = *(int *)param_3[2];\n        }\n        else {\n          puVar16[0x27] = bVar10;\n          iVar11 = *param_3;\n          *(int **)(puVar16 + -0x10) = param_3;\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257826;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x27];\n        }\n        bVar13 = 0;\n        if (iVar11 == -1) {\n          param_3 = (int *)0x0;\n          bVar13 = bVar10;\n        }\n      }" if (parenthesized_expression "(bVar10 == 0)" ( (binary_expression "bVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar13 = puVar16[8];\n      }" { (expression_statement "bVar13 = puVar16[8];" (assignment_expression "bVar13 = puVar16[8]" identifier = (subscript_expression "puVar16[8]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar11 = *(int *)param_3[2];\n        }\n        else {\n          puVar16[0x27] = bVar10;\n          iVar11 = *param_3;\n          *(int **)(puVar16 + -0x10) = param_3;\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257826;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x27];\n        }\n        bVar13 = 0;\n        if (iVar11 == -1) {\n          param_3 = (int *)0x0;\n          bVar13 = bVar10;\n        }\n      }" else (compound_statement "{\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar11 = *(int *)param_3[2];\n        }\n        else {\n          puVar16[0x27] = bVar10;\n          iVar11 = *param_3;\n          *(int **)(puVar16 + -0x10) = param_3;\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257826;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x27];\n        }\n        bVar13 = 0;\n        if (iVar11 == -1) {\n          param_3 = (int *)0x0;\n          bVar13 = bVar10;\n        }\n      }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar11 = *(int *)param_3[2];\n        }\n        else {\n          puVar16[0x27] = bVar10;\n          iVar11 = *param_3;\n          *(int **)(puVar16 + -0x10) = param_3;\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257826;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x27];\n        }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar11 = *(int *)param_3[2];\n        }" { (expression_statement "iVar11 = *(int *)param_3[2];" (assignment_expression "iVar11 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n          puVar16[0x27] = bVar10;\n          iVar11 = *param_3;\n          *(int **)(puVar16 + -0x10) = param_3;\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257826;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x27];\n        }" else (compound_statement "{\n          puVar16[0x27] = bVar10;\n          iVar11 = *param_3;\n          *(int **)(puVar16 + -0x10) = param_3;\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257826;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x27];\n        }" { (expression_statement "puVar16[0x27] = bVar10;" (assignment_expression "puVar16[0x27] = bVar10" (subscript_expression "puVar16[0x27]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = *param_3;" (assignment_expression "iVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "*(int **)(puVar16 + -0x10) = param_3;" (assignment_expression "*(int **)(puVar16 + -0x10) = param_3" (pointer_expression "*(int **)(puVar16 + -0x10)" * (cast_expression "(int **)(puVar16 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar1 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x257826;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x257826" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar1)();" (assignment_expression "iVar11 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "bVar10 = puVar16[0x27];" (assignment_expression "bVar10 = puVar16[0x27]" identifier = (subscript_expression "puVar16[0x27]" identifier [ number_literal ])) ;) }))) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (if_statement "if (iVar11 == -1) {\n          param_3 = (int *)0x0;\n          bVar13 = bVar10;\n        }" if (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) )) (compound_statement "{\n          param_3 = (int *)0x0;\n          bVar13 = bVar10;\n        }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar13 = bVar10;" (assignment_expression "bVar13 = bVar10" identifier = identifier) ;) })) }))) (expression_statement "bVar10 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];" (assignment_expression "bVar10 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26]" identifier = (binary_expression "*(int *)(puVar16 + 4) != 0 & puVar16[0x26]" (binary_expression "*(int *)(puVar16 + 4) != 0" (pointer_expression "*(int *)(puVar16 + 4)" * (cast_expression "(int *)(puVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) )))) != number_literal) & (subscript_expression "puVar16[0x26]" identifier [ number_literal ]))) ;) (if_statement "if (bVar10 == 0) {\n        if (bVar13 == puVar16[0x26]) {\nLAB_002575b3:\n          **(undefined4 **)(puVar16 + 0x8c) = 6;\n          break;\n        }\n      }\n      else {\n        piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n        if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n          iVar11 = *piVar2;\n        }\n        else {\n          puVar16[0x28] = bVar10;\n          puVar16[0x27] = bVar13;\n          iVar11 = **(int **)(puVar16 + 4);\n          *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257848;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x28];\n          bVar13 = puVar16[0x27];\n        }\n        uVar9 = 0;\n        if (iVar11 != -1) {\n          bVar10 = 0;\n          uVar9 = *(undefined4 *)(puVar16 + 4);\n        }\n        *(undefined4 *)(puVar16 + 4) = uVar9;\n        if (bVar13 == bVar10) goto LAB_002575b3;\n      }" if (parenthesized_expression "(bVar10 == 0)" ( (binary_expression "bVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        if (bVar13 == puVar16[0x26]) {\nLAB_002575b3:\n          **(undefined4 **)(puVar16 + 0x8c) = 6;\n          break;\n        }\n      }" { (if_statement "if (bVar13 == puVar16[0x26]) {\nLAB_002575b3:\n          **(undefined4 **)(puVar16 + 0x8c) = 6;\n          break;\n        }" if (parenthesized_expression "(bVar13 == puVar16[0x26])" ( (binary_expression "bVar13 == puVar16[0x26]" identifier == (subscript_expression "puVar16[0x26]" identifier [ number_literal ])) )) (compound_statement "{\nLAB_002575b3:\n          **(undefined4 **)(puVar16 + 0x8c) = 6;\n          break;\n        }" { (labeled_statement "LAB_002575b3:\n          **(undefined4 **)(puVar16 + 0x8c) = 6;" statement_identifier : (expression_statement "**(undefined4 **)(puVar16 + 0x8c) = 6;" (assignment_expression "**(undefined4 **)(puVar16 + 0x8c) = 6" (pointer_expression "**(undefined4 **)(puVar16 + 0x8c)" * (pointer_expression "*(undefined4 **)(puVar16 + 0x8c)" * (cast_expression "(undefined4 **)(puVar16 + 0x8c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x8c)" ( (binary_expression "puVar16 + 0x8c" identifier + number_literal) ))))) = number_literal) ;)) (break_statement "break;" break ;) })) }) (else_clause "else {\n        piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n        if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n          iVar11 = *piVar2;\n        }\n        else {\n          puVar16[0x28] = bVar10;\n          puVar16[0x27] = bVar13;\n          iVar11 = **(int **)(puVar16 + 4);\n          *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257848;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x28];\n          bVar13 = puVar16[0x27];\n        }\n        uVar9 = 0;\n        if (iVar11 != -1) {\n          bVar10 = 0;\n          uVar9 = *(undefined4 *)(puVar16 + 4);\n        }\n        *(undefined4 *)(puVar16 + 4) = uVar9;\n        if (bVar13 == bVar10) goto LAB_002575b3;\n      }" else (compound_statement "{\n        piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n        if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n          iVar11 = *piVar2;\n        }\n        else {\n          puVar16[0x28] = bVar10;\n          puVar16[0x27] = bVar13;\n          iVar11 = **(int **)(puVar16 + 4);\n          *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257848;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x28];\n          bVar13 = puVar16[0x27];\n        }\n        uVar9 = 0;\n        if (iVar11 != -1) {\n          bVar10 = 0;\n          uVar9 = *(undefined4 *)(puVar16 + 4);\n        }\n        *(undefined4 *)(puVar16 + 4) = uVar9;\n        if (bVar13 == bVar10) goto LAB_002575b3;\n      }" { (expression_statement "piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);" (assignment_expression "piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8)" identifier = (pointer_expression "*(int **)(*(int *)(puVar16 + 4) + 8)" * (cast_expression "(int **)(*(int *)(puVar16 + 4) + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar16 + 4) + 8)" ( (binary_expression "*(int *)(puVar16 + 4) + 8" (pointer_expression "*(int *)(puVar16 + 4)" * (cast_expression "(int *)(puVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n          iVar11 = *piVar2;\n        }\n        else {\n          puVar16[0x28] = bVar10;\n          puVar16[0x27] = bVar13;\n          iVar11 = **(int **)(puVar16 + 4);\n          *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257848;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x28];\n          bVar13 = puVar16[0x27];\n        }" if (parenthesized_expression "(piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc))" ( (binary_expression "piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)" identifier < (pointer_expression "*(int **)(*(int *)(puVar16 + 4) + 0xc)" * (cast_expression "(int **)(*(int *)(puVar16 + 4) + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar16 + 4) + 0xc)" ( (binary_expression "*(int *)(puVar16 + 4) + 0xc" (pointer_expression "*(int *)(puVar16 + 4)" * (cast_expression "(int *)(puVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n          iVar11 = *piVar2;\n        }" { (expression_statement "iVar11 = *piVar2;" (assignment_expression "iVar11 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) }) (else_clause "else {\n          puVar16[0x28] = bVar10;\n          puVar16[0x27] = bVar13;\n          iVar11 = **(int **)(puVar16 + 4);\n          *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257848;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x28];\n          bVar13 = puVar16[0x27];\n        }" else (compound_statement "{\n          puVar16[0x28] = bVar10;\n          puVar16[0x27] = bVar13;\n          iVar11 = **(int **)(puVar16 + 4);\n          *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n          pcVar1 = *(code **)(iVar11 + 0x24);\n          *(undefined4 *)(puVar16 + -0x14) = 0x257848;\n          iVar11 = (*pcVar1)();\n          bVar10 = puVar16[0x28];\n          bVar13 = puVar16[0x27];\n        }" { (expression_statement "puVar16[0x28] = bVar10;" (assignment_expression "puVar16[0x28] = bVar10" (subscript_expression "puVar16[0x28]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16[0x27] = bVar13;" (assignment_expression "puVar16[0x27] = bVar13" (subscript_expression "puVar16[0x27]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = **(int **)(puVar16 + 4);" (assignment_expression "iVar11 = **(int **)(puVar16 + 4)" identifier = (pointer_expression "**(int **)(puVar16 + 4)" * (pointer_expression "*(int **)(puVar16 + 4)" * (cast_expression "(int **)(puVar16 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) )))))) ;) (expression_statement "*(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);" (assignment_expression "*(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4)" (pointer_expression "*(int **)(puVar16 + -0x10)" * (cast_expression "(int **)(puVar16 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(int **)(puVar16 + 4)" * (cast_expression "(int **)(puVar16 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar1 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar1 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x257848;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x257848" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar1)();" (assignment_expression "iVar11 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "bVar10 = puVar16[0x28];" (assignment_expression "bVar10 = puVar16[0x28]" identifier = (subscript_expression "puVar16[0x28]" identifier [ number_literal ])) ;) (expression_statement "bVar13 = puVar16[0x27];" (assignment_expression "bVar13 = puVar16[0x27]" identifier = (subscript_expression "puVar16[0x27]" identifier [ number_literal ])) ;) }))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (if_statement "if (iVar11 != -1) {\n          bVar10 = 0;\n          uVar9 = *(undefined4 *)(puVar16 + 4);\n        }" if (parenthesized_expression "(iVar11 != -1)" ( (binary_expression "iVar11 != -1" identifier != number_literal) )) (compound_statement "{\n          bVar10 = 0;\n          uVar9 = *(undefined4 *)(puVar16 + 4);\n        }" { (expression_statement "bVar10 = 0;" (assignment_expression "bVar10 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = *(undefined4 *)(puVar16 + 4);" (assignment_expression "uVar9 = *(undefined4 *)(puVar16 + 4)" identifier = (pointer_expression "*(undefined4 *)(puVar16 + 4)" * (cast_expression "(undefined4 *)(puVar16 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) ))))) ;) })) (expression_statement "*(undefined4 *)(puVar16 + 4) = uVar9;" (assignment_expression "*(undefined4 *)(puVar16 + 4) = uVar9" (pointer_expression "*(undefined4 *)(puVar16 + 4)" * (cast_expression "(undefined4 *)(puVar16 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) )))) = identifier) ;) (if_statement "if (bVar13 == bVar10) goto LAB_002575b3;" if (parenthesized_expression "(bVar13 == bVar10)" ( (binary_expression "bVar13 == bVar10" identifier == identifier) )) (goto_statement "goto LAB_002575b3;" goto statement_identifier ;)) }))) (expression_statement "iVar11 = *(int *)pcVar6;" (assignment_expression "iVar11 = *(int *)pcVar6" identifier = (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar16 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar16 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar16 + -8)" * (cast_expression "(undefined4 *)(puVar16 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar16 + -0xc) = *param_10;" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = *param_10" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" * (cast_expression "(undefined4 *)(puVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = (pointer_expression "*param_10" * identifier)) ;) (expression_statement "*(ctype **)(puVar16 + -0x10) = pcVar6;" (assignment_expression "*(ctype **)(puVar16 + -0x10) = pcVar6" (pointer_expression "*(ctype **)(puVar16 + -0x10)" * (cast_expression "(ctype **)(puVar16 + -0x10)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar11 + 0x30);" (assignment_expression "pcVar1 = *(code **)(iVar11 + 0x30)" identifier = (pointer_expression "*(code **)(iVar11 + 0x30)" * (cast_expression "(code **)(iVar11 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x30)" ( (binary_expression "iVar11 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x25727f;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x25727f" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar4 = (*pcVar1)();" (assignment_expression "cVar4 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar4 == '%') {\n        *(undefined4 **)(puVar16 + 8) = param_10 + 1;\n        if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 1) {\nLAB_00257861:\n          **(undefined4 **)(puVar16 + 0x8c) = 4;\n          break;\n        }\n        iVar11 = *(int *)pcVar6;\n        *(undefined4 *)(puVar16 + -8) = 0;\n        *(undefined4 *)(puVar16 + -0xc) = param_10[1];\n        *(ctype **)(puVar16 + -0x10) = pcVar6;\n        pcVar1 = *(code **)(iVar11 + 0x30);\n        *(undefined4 *)(puVar16 + -0x14) = 0x2572ad;\n        cVar4 = (*pcVar1)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          *(undefined4 **)(puVar16 + 8) = param_10 + 2;\n          if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 2) goto LAB_00257861;\n          iVar11 = *(int *)pcVar6;\n          *(undefined4 *)(puVar16 + -8) = 0;\n          *(undefined4 *)(puVar16 + -0xc) = param_10[2];\n          *(ctype **)(puVar16 + -0x10) = pcVar6;\n          pcVar1 = *(code **)(iVar11 + 0x30);\n          *(undefined4 *)(puVar16 + -0x14) = 0x25762b;\n          cVar5 = (*pcVar1)();\n          iVar11 = (int)cVar4;\n          cVar12 = cVar4;\n        }\n        else {\n          iVar11 = 0;\n          cVar12 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        puVar16[0x27] = cVar12;\n        iVar17 = (int)cVar5;\n        pcVar1 = *(code **)(**(int **)(puVar16 + 0x74) + 0x20);\n        if (pcVar1 == *(code **)(puVar16 + 0x30)) {\n          *(int *)(puVar16 + 0x28) = iVar11;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x34);\n          *(undefined4 *)(puVar16 + -0x14) = 0x2572f4;\n          pcVar8 = use_facet<std::ctype<wchar_t>>(*(locale **)(puVar16 + -0x10));\n          iVar11 = *(int *)pcVar8;\n          **(undefined4 **)(puVar16 + 0x8c) = 0;\n          *(undefined4 *)(puVar16 + -0xc) = 0x25;\n          *(ctype **)(puVar16 + -0x10) = pcVar8;\n          pcVar1 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)(puVar16 + -0x14) = 0x25730b;\n          uVar9 = (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x40) = uVar9;\n          if (puVar16[0x27] == '\0') {\n            *(int *)(puVar16 + 0x44) = iVar17;\n            *(undefined4 *)(puVar16 + 0x48) = 0;\n          }\n          else {\n            *(undefined4 *)(puVar16 + 0x44) = *(undefined4 *)(puVar16 + 0x28);\n            *(int *)(puVar16 + 0x48) = iVar17;\n            *(undefined4 *)(puVar16 + 0x4c) = 0;\n          }\n          *(int **)(puVar16 + 0x10) = param_3;\n          *(undefined4 *)(puVar16 + 0x14) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x18) = *(undefined4 *)(puVar16 + 4);\n          *(undefined4 *)(puVar16 + 0x1c) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined1 **)(puVar16 + -0xc) = puVar16 + 0x40;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x1c);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x18);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x14);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x10);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x25738d;\n          _M_extract_via_format();\n          iVar11 = *(int *)(puVar16 + 0x3c);\n          param_3 = *(int **)(puVar16 + 0x38);\n          *(int *)(puVar16 + 0x14) = iVar11;\n          *(int *)(puVar16 + 0xc) = iVar11;\n          *(int **)(puVar16 + 0x10) = param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar11 == -1;\n          cVar12 = iVar11 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              puVar16[0x27] = cVar4;\n              iVar11 = *param_3;\n              *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x10);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2578ab;\n              iVar11 = (*pcVar1)();\n              cVar4 = puVar16[0x27];\n            }\n            cVar12 = '\0';\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              cVar12 = cVar4;\n            }\n          }\n          if ((*(int *)(puVar16 + 4) == 0) || (puVar16[0x26] == '\0')) {\n            cVar4 = puVar16[0x26];\n          }\n          else {\n            piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n            if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n              iVar11 = *piVar2;\n            }\n            else {\n              iVar11 = **(int **)(puVar16 + 4);\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257893;\n              iVar11 = (*pcVar1)();\n            }\n            cVar4 = iVar11 == -1;\n          }\n          if (cVar4 == cVar12) {\n            **(uint **)(puVar16 + 0x8c) = **(uint **)(puVar16 + 0x8c) | 2;\n          }\n        }\n        else {\n          *(int **)(puVar16 + 0x78) = param_3;\n          *(undefined4 *)(puVar16 + 0x7c) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x84) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined4 *)(puVar16 + 0x80) = *(undefined4 *)(puVar16 + 4);\n          *(int *)(puVar16 + -8) = iVar11;\n          *(int *)(puVar16 + -0xc) = iVar17;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x84);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x80);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x7c);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x78);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x257721;\n          (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x74) = *(undefined4 *)(puVar16 + 0x34);\n          param_3 = *(int **)(puVar16 + 0x74);\n          *(undefined4 *)(puVar16 + 0x78) = *(undefined4 *)(puVar16 + 0x38);\n          *(undefined4 *)(puVar16 + 8) = *(undefined4 *)(puVar16 + 0x78);\n          puVar16 = puVar16 + -4;\n        }\n        param_10 = (undefined4 *)(*(int *)(puVar16 + 8) + 4);\n        if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;\n      }\n      else {\n        iVar11 = *(int *)pcVar6;\n        *(undefined4 *)(puVar16 + -8) = *param_10;\n        *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n        *(ctype **)(puVar16 + -0x10) = pcVar6;\n        pcVar1 = *(code **)(iVar11 + 8);\n        *(undefined4 *)(puVar16 + -0x14) = 0x257191;\n        cVar4 = (*pcVar1)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || (puVar16[8] == '\0')) {\n            uVar9 = *(undefined4 *)(puVar16 + 0xc);\nLAB_002571af:\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = uVar9;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571ba;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571c7;\n            iVar7 = (*pcVar1)();\n            iVar11 = *(int *)(puVar16 + 0xc);\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *(int *)pcVar6;\n              *(int *)(puVar16 + -0xc) = iVar11;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar17 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571dd;\n              iVar17 = (*pcVar1)();\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -0xc) = *param_10;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571ea;\n              iVar11 = (*pcVar1)();\n              if (iVar11 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              iVar11 = *param_3;\n              *(int **)(puVar16 + -0x10) = param_3;\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x25787c;\n              iVar11 = (*pcVar1)();\n            }\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              uVar9 = 0xffffffff;\n              goto LAB_002571af;\n            }\n            iVar17 = *(int *)pcVar6;\n            *(int *)(puVar16 + -0xc) = iVar11;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar17 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x25767c;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257689;\n            iVar11 = (*pcVar1)();\n            if (iVar17 != iVar11) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar11 = *(int *)param_3[2];\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;\n                iVar11 = (*pcVar1)();\n              }\n              if (iVar11 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar11 = *param_3;\n            *(int **)(puVar16 + -0x10) = param_3;\n            pcVar1 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257811;\n            (*pcVar1)();\n          }\n          *(undefined4 *)(puVar16 + 0xc) = 0xffffffff;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if (*(undefined4 **)(puVar16 + 0x98) != param_10) {\n            puVar3 = *(undefined4 **)(puVar16 + 0x98);\n            do {\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -8) = *param_10;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257440;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          *(undefined4 **)(puVar16 + 0x94) = param_10;\n          iVar11 = *(int *)(puVar16 + 0xc);\n          *(ctype **)(puVar16 + 8) = pcVar6;\n          bVar10 = iVar11 == -1;\n          bVar14 = param_3 != (int *)0x0 && (bool)bVar10;\n          if (bVar14) goto LAB_002574dc;\nLAB_00257468:\n          bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n          bVar15 = (bool)bVar10;\n          if (bVar13 != 0) goto LAB_00257510;\n          while ((bool)puVar16[0x26] != bVar15) {\n            while( true ) {\n              iVar17 = iVar11;\n              if ((param_3 != (int *)0x0) && (bVar10 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = **(int **)(puVar16 + 8);\n              *(int *)(puVar16 + -8) = iVar17;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 8);\n              pcVar1 = *(code **)(iVar7 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2574ab;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x28);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;\n                (*pcVar1)();\n              }\n              iVar11 = -1;\n              bVar10 = true;\n              bVar14 = param_3 != (int *)0x0;\n              if (!bVar14) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }\n              bVar15 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar15 = bVar14;\n              }\n              bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n              if (bVar13 == 0) break;\nLAB_00257510:\n              piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n              if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n                iVar17 = *piVar2;\n              }\n              else {\n                puVar16[0x27] = bVar10;\n                puVar16[0xc] = bVar13;\n                iVar17 = **(int **)(puVar16 + 4);\n                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0x27];\n                bVar13 = puVar16[0xc];\n              }\n              uVar9 = 0;\n              if (iVar17 != -1) {\n                bVar13 = 0;\n                uVar9 = *(undefined4 *)(puVar16 + 4);\n              }\n              *(undefined4 *)(puVar16 + 4) = uVar9;\n              if ((bool)bVar13 == bVar15) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          *(int *)(puVar16 + 0xc) = iVar11;\n          pcVar6 = *(ctype **)(puVar16 + 8);\n          param_10 = *(undefined4 **)(puVar16 + 0x94);\n        }\n        if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;\n      }" if (parenthesized_expression "(cVar4 == '%')" ( (binary_expression "cVar4 == '%'" identifier == (char_literal "'%'" ' character ')) )) (compound_statement "{\n        *(undefined4 **)(puVar16 + 8) = param_10 + 1;\n        if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 1) {\nLAB_00257861:\n          **(undefined4 **)(puVar16 + 0x8c) = 4;\n          break;\n        }\n        iVar11 = *(int *)pcVar6;\n        *(undefined4 *)(puVar16 + -8) = 0;\n        *(undefined4 *)(puVar16 + -0xc) = param_10[1];\n        *(ctype **)(puVar16 + -0x10) = pcVar6;\n        pcVar1 = *(code **)(iVar11 + 0x30);\n        *(undefined4 *)(puVar16 + -0x14) = 0x2572ad;\n        cVar4 = (*pcVar1)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          *(undefined4 **)(puVar16 + 8) = param_10 + 2;\n          if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 2) goto LAB_00257861;\n          iVar11 = *(int *)pcVar6;\n          *(undefined4 *)(puVar16 + -8) = 0;\n          *(undefined4 *)(puVar16 + -0xc) = param_10[2];\n          *(ctype **)(puVar16 + -0x10) = pcVar6;\n          pcVar1 = *(code **)(iVar11 + 0x30);\n          *(undefined4 *)(puVar16 + -0x14) = 0x25762b;\n          cVar5 = (*pcVar1)();\n          iVar11 = (int)cVar4;\n          cVar12 = cVar4;\n        }\n        else {\n          iVar11 = 0;\n          cVar12 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        puVar16[0x27] = cVar12;\n        iVar17 = (int)cVar5;\n        pcVar1 = *(code **)(**(int **)(puVar16 + 0x74) + 0x20);\n        if (pcVar1 == *(code **)(puVar16 + 0x30)) {\n          *(int *)(puVar16 + 0x28) = iVar11;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x34);\n          *(undefined4 *)(puVar16 + -0x14) = 0x2572f4;\n          pcVar8 = use_facet<std::ctype<wchar_t>>(*(locale **)(puVar16 + -0x10));\n          iVar11 = *(int *)pcVar8;\n          **(undefined4 **)(puVar16 + 0x8c) = 0;\n          *(undefined4 *)(puVar16 + -0xc) = 0x25;\n          *(ctype **)(puVar16 + -0x10) = pcVar8;\n          pcVar1 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)(puVar16 + -0x14) = 0x25730b;\n          uVar9 = (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x40) = uVar9;\n          if (puVar16[0x27] == '\0') {\n            *(int *)(puVar16 + 0x44) = iVar17;\n            *(undefined4 *)(puVar16 + 0x48) = 0;\n          }\n          else {\n            *(undefined4 *)(puVar16 + 0x44) = *(undefined4 *)(puVar16 + 0x28);\n            *(int *)(puVar16 + 0x48) = iVar17;\n            *(undefined4 *)(puVar16 + 0x4c) = 0;\n          }\n          *(int **)(puVar16 + 0x10) = param_3;\n          *(undefined4 *)(puVar16 + 0x14) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x18) = *(undefined4 *)(puVar16 + 4);\n          *(undefined4 *)(puVar16 + 0x1c) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined1 **)(puVar16 + -0xc) = puVar16 + 0x40;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x1c);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x18);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x14);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x10);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x25738d;\n          _M_extract_via_format();\n          iVar11 = *(int *)(puVar16 + 0x3c);\n          param_3 = *(int **)(puVar16 + 0x38);\n          *(int *)(puVar16 + 0x14) = iVar11;\n          *(int *)(puVar16 + 0xc) = iVar11;\n          *(int **)(puVar16 + 0x10) = param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar11 == -1;\n          cVar12 = iVar11 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              puVar16[0x27] = cVar4;\n              iVar11 = *param_3;\n              *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x10);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2578ab;\n              iVar11 = (*pcVar1)();\n              cVar4 = puVar16[0x27];\n            }\n            cVar12 = '\0';\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              cVar12 = cVar4;\n            }\n          }\n          if ((*(int *)(puVar16 + 4) == 0) || (puVar16[0x26] == '\0')) {\n            cVar4 = puVar16[0x26];\n          }\n          else {\n            piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n            if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n              iVar11 = *piVar2;\n            }\n            else {\n              iVar11 = **(int **)(puVar16 + 4);\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257893;\n              iVar11 = (*pcVar1)();\n            }\n            cVar4 = iVar11 == -1;\n          }\n          if (cVar4 == cVar12) {\n            **(uint **)(puVar16 + 0x8c) = **(uint **)(puVar16 + 0x8c) | 2;\n          }\n        }\n        else {\n          *(int **)(puVar16 + 0x78) = param_3;\n          *(undefined4 *)(puVar16 + 0x7c) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x84) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined4 *)(puVar16 + 0x80) = *(undefined4 *)(puVar16 + 4);\n          *(int *)(puVar16 + -8) = iVar11;\n          *(int *)(puVar16 + -0xc) = iVar17;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x84);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x80);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x7c);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x78);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x257721;\n          (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x74) = *(undefined4 *)(puVar16 + 0x34);\n          param_3 = *(int **)(puVar16 + 0x74);\n          *(undefined4 *)(puVar16 + 0x78) = *(undefined4 *)(puVar16 + 0x38);\n          *(undefined4 *)(puVar16 + 8) = *(undefined4 *)(puVar16 + 0x78);\n          puVar16 = puVar16 + -4;\n        }\n        param_10 = (undefined4 *)(*(int *)(puVar16 + 8) + 4);\n        if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;\n      }" { (expression_statement "*(undefined4 **)(puVar16 + 8) = param_10 + 1;" (assignment_expression "*(undefined4 **)(puVar16 + 8) = param_10 + 1" (pointer_expression "*(undefined4 **)(puVar16 + 8)" * (cast_expression "(undefined4 **)(puVar16 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 8)" ( (binary_expression "puVar16 + 8" identifier + number_literal) )))) = (binary_expression "param_10 + 1" identifier + number_literal)) ;) (if_statement "if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 1) {\nLAB_00257861:\n          **(undefined4 **)(puVar16 + 0x8c) = 4;\n          break;\n        }" if (parenthesized_expression "(*(undefined4 **)(puVar16 + 0x98) == param_10 + 1)" ( (binary_expression "*(undefined4 **)(puVar16 + 0x98) == param_10 + 1" (pointer_expression "*(undefined4 **)(puVar16 + 0x98)" * (cast_expression "(undefined4 **)(puVar16 + 0x98)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x98)" ( (binary_expression "puVar16 + 0x98" identifier + number_literal) )))) == (binary_expression "param_10 + 1" identifier + number_literal)) )) (compound_statement "{\nLAB_00257861:\n          **(undefined4 **)(puVar16 + 0x8c) = 4;\n          break;\n        }" { (labeled_statement "LAB_00257861:\n          **(undefined4 **)(puVar16 + 0x8c) = 4;" statement_identifier : (expression_statement "**(undefined4 **)(puVar16 + 0x8c) = 4;" (assignment_expression "**(undefined4 **)(puVar16 + 0x8c) = 4" (pointer_expression "**(undefined4 **)(puVar16 + 0x8c)" * (pointer_expression "*(undefined4 **)(puVar16 + 0x8c)" * (cast_expression "(undefined4 **)(puVar16 + 0x8c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x8c)" ( (binary_expression "puVar16 + 0x8c" identifier + number_literal) ))))) = number_literal) ;)) (break_statement "break;" break ;) })) (expression_statement "iVar11 = *(int *)pcVar6;" (assignment_expression "iVar11 = *(int *)pcVar6" identifier = (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar16 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar16 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar16 + -8)" * (cast_expression "(undefined4 *)(puVar16 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar16 + -0xc) = param_10[1];" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = param_10[1]" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" * (cast_expression "(undefined4 *)(puVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = (subscript_expression "param_10[1]" identifier [ number_literal ])) ;) (expression_statement "*(ctype **)(puVar16 + -0x10) = pcVar6;" (assignment_expression "*(ctype **)(puVar16 + -0x10) = pcVar6" (pointer_expression "*(ctype **)(puVar16 + -0x10)" * (cast_expression "(ctype **)(puVar16 + -0x10)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar11 + 0x30);" (assignment_expression "pcVar1 = *(code **)(iVar11 + 0x30)" identifier = (pointer_expression "*(code **)(iVar11 + 0x30)" * (cast_expression "(code **)(iVar11 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x30)" ( (binary_expression "iVar11 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x2572ad;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x2572ad" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar4 = (*pcVar1)();" (assignment_expression "cVar4 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar4 == 'E') {\nLAB_00257608:\n          *(undefined4 **)(puVar16 + 8) = param_10 + 2;\n          if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 2) goto LAB_00257861;\n          iVar11 = *(int *)pcVar6;\n          *(undefined4 *)(puVar16 + -8) = 0;\n          *(undefined4 *)(puVar16 + -0xc) = param_10[2];\n          *(ctype **)(puVar16 + -0x10) = pcVar6;\n          pcVar1 = *(code **)(iVar11 + 0x30);\n          *(undefined4 *)(puVar16 + -0x14) = 0x25762b;\n          cVar5 = (*pcVar1)();\n          iVar11 = (int)cVar4;\n          cVar12 = cVar4;\n        }\n        else {\n          iVar11 = 0;\n          cVar12 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }" if (parenthesized_expression "(cVar4 == 'E')" ( (binary_expression "cVar4 == 'E'" identifier == (char_literal "'E'" ' character ')) )) (compound_statement "{\nLAB_00257608:\n          *(undefined4 **)(puVar16 + 8) = param_10 + 2;\n          if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 2) goto LAB_00257861;\n          iVar11 = *(int *)pcVar6;\n          *(undefined4 *)(puVar16 + -8) = 0;\n          *(undefined4 *)(puVar16 + -0xc) = param_10[2];\n          *(ctype **)(puVar16 + -0x10) = pcVar6;\n          pcVar1 = *(code **)(iVar11 + 0x30);\n          *(undefined4 *)(puVar16 + -0x14) = 0x25762b;\n          cVar5 = (*pcVar1)();\n          iVar11 = (int)cVar4;\n          cVar12 = cVar4;\n        }" { (labeled_statement "LAB_00257608:\n          *(undefined4 **)(puVar16 + 8) = param_10 + 2;" statement_identifier : (expression_statement "*(undefined4 **)(puVar16 + 8) = param_10 + 2;" (assignment_expression "*(undefined4 **)(puVar16 + 8) = param_10 + 2" (pointer_expression "*(undefined4 **)(puVar16 + 8)" * (cast_expression "(undefined4 **)(puVar16 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 8)" ( (binary_expression "puVar16 + 8" identifier + number_literal) )))) = (binary_expression "param_10 + 2" identifier + number_literal)) ;)) (if_statement "if (*(undefined4 **)(puVar16 + 0x98) == param_10 + 2) goto LAB_00257861;" if (parenthesized_expression "(*(undefined4 **)(puVar16 + 0x98) == param_10 + 2)" ( (binary_expression "*(undefined4 **)(puVar16 + 0x98) == param_10 + 2" (pointer_expression "*(undefined4 **)(puVar16 + 0x98)" * (cast_expression "(undefined4 **)(puVar16 + 0x98)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x98)" ( (binary_expression "puVar16 + 0x98" identifier + number_literal) )))) == (binary_expression "param_10 + 2" identifier + number_literal)) )) (goto_statement "goto LAB_00257861;" goto statement_identifier ;)) (expression_statement "iVar11 = *(int *)pcVar6;" (assignment_expression "iVar11 = *(int *)pcVar6" identifier = (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar16 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar16 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar16 + -8)" * (cast_expression "(undefined4 *)(puVar16 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar16 + -0xc) = param_10[2];" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = param_10[2]" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" * (cast_expression "(undefined4 *)(puVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = (subscript_expression "param_10[2]" identifier [ number_literal ])) ;) (expression_statement "*(ctype **)(puVar16 + -0x10) = pcVar6;" (assignment_expression "*(ctype **)(puVar16 + -0x10) = pcVar6" (pointer_expression "*(ctype **)(puVar16 + -0x10)" * (cast_expression "(ctype **)(puVar16 + -0x10)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar11 + 0x30);" (assignment_expression "pcVar1 = *(code **)(iVar11 + 0x30)" identifier = (pointer_expression "*(code **)(iVar11 + 0x30)" * (cast_expression "(code **)(iVar11 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x30)" ( (binary_expression "iVar11 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x25762b;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x25762b" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar5 = (*pcVar1)();" (assignment_expression "cVar5 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar11 = (int)cVar4;" (assignment_expression "iVar11 = (int)cVar4" identifier = (cast_expression "(int)cVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar12 = cVar4;" (assignment_expression "cVar12 = cVar4" identifier = identifier) ;) }) (else_clause "else {\n          iVar11 = 0;\n          cVar12 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }" else (compound_statement "{\n          iVar11 = 0;\n          cVar12 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "cVar12 = '\0';" (assignment_expression "cVar12 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar5 = cVar4;" (assignment_expression "cVar5 = cVar4" identifier = identifier) ;) (if_statement "if (cVar4 == 'O') goto LAB_00257608;" if (parenthesized_expression "(cVar4 == 'O')" ( (binary_expression "cVar4 == 'O'" identifier == (char_literal "'O'" ' character ')) )) (goto_statement "goto LAB_00257608;" goto statement_identifier ;)) }))) (expression_statement "puVar16[0x27] = cVar12;" (assignment_expression "puVar16[0x27] = cVar12" (subscript_expression "puVar16[0x27]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar17 = (int)cVar5;" (assignment_expression "iVar17 = (int)cVar5" identifier = (cast_expression "(int)cVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar1 = *(code **)(**(int **)(puVar16 + 0x74) + 0x20);" (assignment_expression "pcVar1 = *(code **)(**(int **)(puVar16 + 0x74) + 0x20)" identifier = (pointer_expression "*(code **)(**(int **)(puVar16 + 0x74) + 0x20)" * (cast_expression "(code **)(**(int **)(puVar16 + 0x74) + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(puVar16 + 0x74) + 0x20)" ( (binary_expression "**(int **)(puVar16 + 0x74) + 0x20" (pointer_expression "**(int **)(puVar16 + 0x74)" * (pointer_expression "*(int **)(puVar16 + 0x74)" * (cast_expression "(int **)(puVar16 + 0x74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x74)" ( (binary_expression "puVar16 + 0x74" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar1 == *(code **)(puVar16 + 0x30)) {\n          *(int *)(puVar16 + 0x28) = iVar11;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x34);\n          *(undefined4 *)(puVar16 + -0x14) = 0x2572f4;\n          pcVar8 = use_facet<std::ctype<wchar_t>>(*(locale **)(puVar16 + -0x10));\n          iVar11 = *(int *)pcVar8;\n          **(undefined4 **)(puVar16 + 0x8c) = 0;\n          *(undefined4 *)(puVar16 + -0xc) = 0x25;\n          *(ctype **)(puVar16 + -0x10) = pcVar8;\n          pcVar1 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)(puVar16 + -0x14) = 0x25730b;\n          uVar9 = (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x40) = uVar9;\n          if (puVar16[0x27] == '\0') {\n            *(int *)(puVar16 + 0x44) = iVar17;\n            *(undefined4 *)(puVar16 + 0x48) = 0;\n          }\n          else {\n            *(undefined4 *)(puVar16 + 0x44) = *(undefined4 *)(puVar16 + 0x28);\n            *(int *)(puVar16 + 0x48) = iVar17;\n            *(undefined4 *)(puVar16 + 0x4c) = 0;\n          }\n          *(int **)(puVar16 + 0x10) = param_3;\n          *(undefined4 *)(puVar16 + 0x14) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x18) = *(undefined4 *)(puVar16 + 4);\n          *(undefined4 *)(puVar16 + 0x1c) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined1 **)(puVar16 + -0xc) = puVar16 + 0x40;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x1c);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x18);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x14);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x10);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x25738d;\n          _M_extract_via_format();\n          iVar11 = *(int *)(puVar16 + 0x3c);\n          param_3 = *(int **)(puVar16 + 0x38);\n          *(int *)(puVar16 + 0x14) = iVar11;\n          *(int *)(puVar16 + 0xc) = iVar11;\n          *(int **)(puVar16 + 0x10) = param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar11 == -1;\n          cVar12 = iVar11 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              puVar16[0x27] = cVar4;\n              iVar11 = *param_3;\n              *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x10);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2578ab;\n              iVar11 = (*pcVar1)();\n              cVar4 = puVar16[0x27];\n            }\n            cVar12 = '\0';\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              cVar12 = cVar4;\n            }\n          }\n          if ((*(int *)(puVar16 + 4) == 0) || (puVar16[0x26] == '\0')) {\n            cVar4 = puVar16[0x26];\n          }\n          else {\n            piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n            if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n              iVar11 = *piVar2;\n            }\n            else {\n              iVar11 = **(int **)(puVar16 + 4);\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257893;\n              iVar11 = (*pcVar1)();\n            }\n            cVar4 = iVar11 == -1;\n          }\n          if (cVar4 == cVar12) {\n            **(uint **)(puVar16 + 0x8c) = **(uint **)(puVar16 + 0x8c) | 2;\n          }\n        }\n        else {\n          *(int **)(puVar16 + 0x78) = param_3;\n          *(undefined4 *)(puVar16 + 0x7c) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x84) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined4 *)(puVar16 + 0x80) = *(undefined4 *)(puVar16 + 4);\n          *(int *)(puVar16 + -8) = iVar11;\n          *(int *)(puVar16 + -0xc) = iVar17;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x84);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x80);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x7c);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x78);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x257721;\n          (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x74) = *(undefined4 *)(puVar16 + 0x34);\n          param_3 = *(int **)(puVar16 + 0x74);\n          *(undefined4 *)(puVar16 + 0x78) = *(undefined4 *)(puVar16 + 0x38);\n          *(undefined4 *)(puVar16 + 8) = *(undefined4 *)(puVar16 + 0x78);\n          puVar16 = puVar16 + -4;\n        }" if (parenthesized_expression "(pcVar1 == *(code **)(puVar16 + 0x30))" ( (binary_expression "pcVar1 == *(code **)(puVar16 + 0x30)" identifier == (pointer_expression "*(code **)(puVar16 + 0x30)" * (cast_expression "(code **)(puVar16 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x30)" ( (binary_expression "puVar16 + 0x30" identifier + number_literal) ))))) )) (compound_statement "{\n          *(int *)(puVar16 + 0x28) = iVar11;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x34);\n          *(undefined4 *)(puVar16 + -0x14) = 0x2572f4;\n          pcVar8 = use_facet<std::ctype<wchar_t>>(*(locale **)(puVar16 + -0x10));\n          iVar11 = *(int *)pcVar8;\n          **(undefined4 **)(puVar16 + 0x8c) = 0;\n          *(undefined4 *)(puVar16 + -0xc) = 0x25;\n          *(ctype **)(puVar16 + -0x10) = pcVar8;\n          pcVar1 = *(code **)(iVar11 + 0x28);\n          *(undefined4 *)(puVar16 + -0x14) = 0x25730b;\n          uVar9 = (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x40) = uVar9;\n          if (puVar16[0x27] == '\0') {\n            *(int *)(puVar16 + 0x44) = iVar17;\n            *(undefined4 *)(puVar16 + 0x48) = 0;\n          }\n          else {\n            *(undefined4 *)(puVar16 + 0x44) = *(undefined4 *)(puVar16 + 0x28);\n            *(int *)(puVar16 + 0x48) = iVar17;\n            *(undefined4 *)(puVar16 + 0x4c) = 0;\n          }\n          *(int **)(puVar16 + 0x10) = param_3;\n          *(undefined4 *)(puVar16 + 0x14) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x18) = *(undefined4 *)(puVar16 + 4);\n          *(undefined4 *)(puVar16 + 0x1c) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined1 **)(puVar16 + -0xc) = puVar16 + 0x40;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x1c);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x18);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x14);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x10);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x25738d;\n          _M_extract_via_format();\n          iVar11 = *(int *)(puVar16 + 0x3c);\n          param_3 = *(int **)(puVar16 + 0x38);\n          *(int *)(puVar16 + 0x14) = iVar11;\n          *(int *)(puVar16 + 0xc) = iVar11;\n          *(int **)(puVar16 + 0x10) = param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar11 == -1;\n          cVar12 = iVar11 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              puVar16[0x27] = cVar4;\n              iVar11 = *param_3;\n              *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x10);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2578ab;\n              iVar11 = (*pcVar1)();\n              cVar4 = puVar16[0x27];\n            }\n            cVar12 = '\0';\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              cVar12 = cVar4;\n            }\n          }\n          if ((*(int *)(puVar16 + 4) == 0) || (puVar16[0x26] == '\0')) {\n            cVar4 = puVar16[0x26];\n          }\n          else {\n            piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n            if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n              iVar11 = *piVar2;\n            }\n            else {\n              iVar11 = **(int **)(puVar16 + 4);\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257893;\n              iVar11 = (*pcVar1)();\n            }\n            cVar4 = iVar11 == -1;\n          }\n          if (cVar4 == cVar12) {\n            **(uint **)(puVar16 + 0x8c) = **(uint **)(puVar16 + 0x8c) | 2;\n          }\n        }" { (expression_statement "*(int *)(puVar16 + 0x28) = iVar11;" (assignment_expression "*(int *)(puVar16 + 0x28) = iVar11" (pointer_expression "*(int *)(puVar16 + 0x28)" * (cast_expression "(int *)(puVar16 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x28)" ( (binary_expression "puVar16 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x34);" (assignment_expression "*(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x34)" (pointer_expression "*(undefined4 *)(puVar16 + -0x10)" * (cast_expression "(undefined4 *)(puVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x34)" * (cast_expression "(undefined4 *)(puVar16 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x34)" ( (binary_expression "puVar16 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x2572f4;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x2572f4" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar8 = use_facet<std::ctype<wchar_t>>(*(locale **)(puVar16 + -0x10));" (binary_expression "pcVar8 = use_facet<std::ctype<wchar_t>>(*(locale **)(puVar16 + -0x10))" (assignment_expression "pcVar8 = use_facet<std" identifier = (binary_expression "use_facet<std" identifier < identifier)) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>(*(locale **)(puVar16 + -0x10))" identifier >> (parenthesized_expression "(*(locale **)(puVar16 + -0x10))" ( (pointer_expression "*(locale **)(puVar16 + -0x10)" * (cast_expression "(locale **)(puVar16 + -0x10)" ( (type_descriptor "locale **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) )))) ;) (expression_statement "iVar11 = *(int *)pcVar8;" (assignment_expression "iVar11 = *(int *)pcVar8" identifier = (pointer_expression "*(int *)pcVar8" * (cast_expression "(int *)pcVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "**(undefined4 **)(puVar16 + 0x8c) = 0;" (assignment_expression "**(undefined4 **)(puVar16 + 0x8c) = 0" (pointer_expression "**(undefined4 **)(puVar16 + 0x8c)" * (pointer_expression "*(undefined4 **)(puVar16 + 0x8c)" * (cast_expression "(undefined4 **)(puVar16 + 0x8c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x8c)" ( (binary_expression "puVar16 + 0x8c" identifier + number_literal) ))))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar16 + -0xc) = 0x25;" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = 0x25" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" * (cast_expression "(undefined4 *)(puVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(ctype **)(puVar16 + -0x10) = pcVar8;" (assignment_expression "*(ctype **)(puVar16 + -0x10) = pcVar8" (pointer_expression "*(ctype **)(puVar16 + -0x10)" * (cast_expression "(ctype **)(puVar16 + -0x10)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar11 + 0x28);" (assignment_expression "pcVar1 = *(code **)(iVar11 + 0x28)" identifier = (pointer_expression "*(code **)(iVar11 + 0x28)" * (cast_expression "(code **)(iVar11 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x25730b;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x25730b" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar9 = (*pcVar1)();" (assignment_expression "uVar9 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar16 + 0x40) = uVar9;" (assignment_expression "*(undefined4 *)(puVar16 + 0x40) = uVar9" (pointer_expression "*(undefined4 *)(puVar16 + 0x40)" * (cast_expression "(undefined4 *)(puVar16 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x40)" ( (binary_expression "puVar16 + 0x40" identifier + number_literal) )))) = identifier) ;) (if_statement "if (puVar16[0x27] == '\0') {\n            *(int *)(puVar16 + 0x44) = iVar17;\n            *(undefined4 *)(puVar16 + 0x48) = 0;\n          }\n          else {\n            *(undefined4 *)(puVar16 + 0x44) = *(undefined4 *)(puVar16 + 0x28);\n            *(int *)(puVar16 + 0x48) = iVar17;\n            *(undefined4 *)(puVar16 + 0x4c) = 0;\n          }" if (parenthesized_expression "(puVar16[0x27] == '\0')" ( (binary_expression "puVar16[0x27] == '\0'" (subscript_expression "puVar16[0x27]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            *(int *)(puVar16 + 0x44) = iVar17;\n            *(undefined4 *)(puVar16 + 0x48) = 0;\n          }" { (expression_statement "*(int *)(puVar16 + 0x44) = iVar17;" (assignment_expression "*(int *)(puVar16 + 0x44) = iVar17" (pointer_expression "*(int *)(puVar16 + 0x44)" * (cast_expression "(int *)(puVar16 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x44)" ( (binary_expression "puVar16 + 0x44" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + 0x48) = 0;" (assignment_expression "*(undefined4 *)(puVar16 + 0x48) = 0" (pointer_expression "*(undefined4 *)(puVar16 + 0x48)" * (cast_expression "(undefined4 *)(puVar16 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x48)" ( (binary_expression "puVar16 + 0x48" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            *(undefined4 *)(puVar16 + 0x44) = *(undefined4 *)(puVar16 + 0x28);\n            *(int *)(puVar16 + 0x48) = iVar17;\n            *(undefined4 *)(puVar16 + 0x4c) = 0;\n          }" else (compound_statement "{\n            *(undefined4 *)(puVar16 + 0x44) = *(undefined4 *)(puVar16 + 0x28);\n            *(int *)(puVar16 + 0x48) = iVar17;\n            *(undefined4 *)(puVar16 + 0x4c) = 0;\n          }" { (expression_statement "*(undefined4 *)(puVar16 + 0x44) = *(undefined4 *)(puVar16 + 0x28);" (assignment_expression "*(undefined4 *)(puVar16 + 0x44) = *(undefined4 *)(puVar16 + 0x28)" (pointer_expression "*(undefined4 *)(puVar16 + 0x44)" * (cast_expression "(undefined4 *)(puVar16 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x44)" ( (binary_expression "puVar16 + 0x44" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x28)" * (cast_expression "(undefined4 *)(puVar16 + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x28)" ( (binary_expression "puVar16 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar16 + 0x48) = iVar17;" (assignment_expression "*(int *)(puVar16 + 0x48) = iVar17" (pointer_expression "*(int *)(puVar16 + 0x48)" * (cast_expression "(int *)(puVar16 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x48)" ( (binary_expression "puVar16 + 0x48" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + 0x4c) = 0;" (assignment_expression "*(undefined4 *)(puVar16 + 0x4c) = 0" (pointer_expression "*(undefined4 *)(puVar16 + 0x4c)" * (cast_expression "(undefined4 *)(puVar16 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x4c)" ( (binary_expression "puVar16 + 0x4c" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "*(int **)(puVar16 + 0x10) = param_3;" (assignment_expression "*(int **)(puVar16 + 0x10) = param_3" (pointer_expression "*(int **)(puVar16 + 0x10)" * (cast_expression "(int **)(puVar16 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x10)" ( (binary_expression "puVar16 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + 0x14) = *(undefined4 *)(puVar16 + 0xc);" (assignment_expression "*(undefined4 *)(puVar16 + 0x14) = *(undefined4 *)(puVar16 + 0xc)" (pointer_expression "*(undefined4 *)(puVar16 + 0x14)" * (cast_expression "(undefined4 *)(puVar16 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x14)" ( (binary_expression "puVar16 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0xc)" * (cast_expression "(undefined4 *)(puVar16 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0xc)" ( (binary_expression "puVar16 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + 0x18) = *(undefined4 *)(puVar16 + 4);" (assignment_expression "*(undefined4 *)(puVar16 + 0x18) = *(undefined4 *)(puVar16 + 4)" (pointer_expression "*(undefined4 *)(puVar16 + 0x18)" * (cast_expression "(undefined4 *)(puVar16 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x18)" ( (binary_expression "puVar16 + 0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 4)" * (cast_expression "(undefined4 *)(puVar16 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + 0x1c) = *(undefined4 *)(puVar16 + 0x2c);" (assignment_expression "*(undefined4 *)(puVar16 + 0x1c) = *(undefined4 *)(puVar16 + 0x2c)" (pointer_expression "*(undefined4 *)(puVar16 + 0x1c)" * (cast_expression "(undefined4 *)(puVar16 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x1c)" ( (binary_expression "puVar16 + 0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x2c)" * (cast_expression "(undefined4 *)(puVar16 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x2c)" ( (binary_expression "puVar16 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar16 + -0xc) = puVar16 + 0x40;" (assignment_expression "*(undefined1 **)(puVar16 + -0xc) = puVar16 + 0x40" (pointer_expression "*(undefined1 **)(puVar16 + -0xc)" * (cast_expression "(undefined1 **)(puVar16 + -0xc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = (binary_expression "puVar16 + 0x40" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);" (assignment_expression "*(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90)" (pointer_expression "*(undefined4 *)(puVar16 + -0x10)" * (cast_expression "(undefined4 *)(puVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x90)" * (cast_expression "(undefined4 *)(puVar16 + 0x90)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x90)" ( (binary_expression "puVar16 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c)" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x8c)" * (cast_expression "(undefined4 *)(puVar16 + 0x8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x8c)" ( (binary_expression "puVar16 + 0x8c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);" (assignment_expression "*(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88)" (pointer_expression "*(undefined4 *)(puVar16 + -0x18)" * (cast_expression "(undefined4 *)(puVar16 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x88)" * (cast_expression "(undefined4 *)(puVar16 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x88)" ( (binary_expression "puVar16 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x1c);" (assignment_expression "*(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x1c)" (pointer_expression "*(undefined4 *)(puVar16 + -0x1c)" * (cast_expression "(undefined4 *)(puVar16 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x1c)" ( (binary_expression "puVar16 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x1c)" * (cast_expression "(undefined4 *)(puVar16 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x1c)" ( (binary_expression "puVar16 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x18);" (assignment_expression "*(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x18)" (pointer_expression "*(undefined4 *)(puVar16 + -0x20)" * (cast_expression "(undefined4 *)(puVar16 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x20)" ( (binary_expression "puVar16 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x18)" * (cast_expression "(undefined4 *)(puVar16 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x18)" ( (binary_expression "puVar16 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x14);" (assignment_expression "*(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x14)" (pointer_expression "*(undefined4 *)(puVar16 + -0x24)" * (cast_expression "(undefined4 *)(puVar16 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x24)" ( (binary_expression "puVar16 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x14)" * (cast_expression "(undefined4 *)(puVar16 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x14)" ( (binary_expression "puVar16 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x10);" (assignment_expression "*(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x10)" (pointer_expression "*(undefined4 *)(puVar16 + -0x28)" * (cast_expression "(undefined4 *)(puVar16 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x28)" ( (binary_expression "puVar16 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x10)" * (cast_expression "(undefined4 *)(puVar16 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x10)" ( (binary_expression "puVar16 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);" (assignment_expression "*(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74)" (pointer_expression "*(undefined4 *)(puVar16 + -0x2c)" * (cast_expression "(undefined4 *)(puVar16 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x2c)" ( (binary_expression "puVar16 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x74)" * (cast_expression "(undefined4 *)(puVar16 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x74)" ( (binary_expression "puVar16 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;" (assignment_expression "*(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38" (pointer_expression "*(undefined1 **)(puVar16 + -0x30)" * (cast_expression "(undefined1 **)(puVar16 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x30)" ( (binary_expression "puVar16 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar16 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x34) = 0x25738d;" (assignment_expression "*(undefined4 *)(puVar16 + -0x34) = 0x25738d" (pointer_expression "*(undefined4 *)(puVar16 + -0x34)" * (cast_expression "(undefined4 *)(puVar16 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x34)" ( (binary_expression "puVar16 + -0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "_M_extract_via_format();" (call_expression "_M_extract_via_format()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar11 = *(int *)(puVar16 + 0x3c);" (assignment_expression "iVar11 = *(int *)(puVar16 + 0x3c)" identifier = (pointer_expression "*(int *)(puVar16 + 0x3c)" * (cast_expression "(int *)(puVar16 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x3c)" ( (binary_expression "puVar16 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "param_3 = *(int **)(puVar16 + 0x38);" (assignment_expression "param_3 = *(int **)(puVar16 + 0x38)" identifier = (pointer_expression "*(int **)(puVar16 + 0x38)" * (cast_expression "(int **)(puVar16 + 0x38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x38)" ( (binary_expression "puVar16 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar16 + 0x14) = iVar11;" (assignment_expression "*(int *)(puVar16 + 0x14) = iVar11" (pointer_expression "*(int *)(puVar16 + 0x14)" * (cast_expression "(int *)(puVar16 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x14)" ( (binary_expression "puVar16 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar16 + 0xc) = iVar11;" (assignment_expression "*(int *)(puVar16 + 0xc) = iVar11" (pointer_expression "*(int *)(puVar16 + 0xc)" * (cast_expression "(int *)(puVar16 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0xc)" ( (binary_expression "puVar16 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar16 + 0x10) = param_3;" (assignment_expression "*(int **)(puVar16 + 0x10) = param_3" (pointer_expression "*(int **)(puVar16 + 0x10)" * (cast_expression "(int **)(puVar16 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x10)" ( (binary_expression "puVar16 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "cVar4 = param_3 != (int *)0x0 && iVar11 == -1;" (assignment_expression "cVar4 = param_3 != (int *)0x0 && iVar11 == -1" identifier = (binary_expression "param_3 != (int *)0x0 && iVar11 == -1" (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "iVar11 == -1" identifier == number_literal))) ;) (expression_statement "cVar12 = iVar11 == -1;" (assignment_expression "cVar12 = iVar11 == -1" identifier = (binary_expression "iVar11 == -1" identifier == number_literal)) ;) (if_statement "if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              puVar16[0x27] = cVar4;\n              iVar11 = *param_3;\n              *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x10);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2578ab;\n              iVar11 = (*pcVar1)();\n              cVar4 = puVar16[0x27];\n            }\n            cVar12 = '\0';\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              cVar12 = cVar4;\n            }\n          }" if (parenthesized_expression "((bool)cVar4)" ( (cast_expression "(bool)cVar4" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              puVar16[0x27] = cVar4;\n              iVar11 = *param_3;\n              *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x10);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2578ab;\n              iVar11 = (*pcVar1)();\n              cVar4 = puVar16[0x27];\n            }\n            cVar12 = '\0';\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              cVar12 = cVar4;\n            }\n          }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              puVar16[0x27] = cVar4;\n              iVar11 = *param_3;\n              *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x10);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2578ab;\n              iVar11 = (*pcVar1)();\n              cVar4 = puVar16[0x27];\n            }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n              iVar11 = *(int *)param_3[2];\n            }" { (expression_statement "iVar11 = *(int *)param_3[2];" (assignment_expression "iVar11 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n              puVar16[0x27] = cVar4;\n              iVar11 = *param_3;\n              *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x10);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2578ab;\n              iVar11 = (*pcVar1)();\n              cVar4 = puVar16[0x27];\n            }" else (compound_statement "{\n              puVar16[0x27] = cVar4;\n              iVar11 = *param_3;\n              *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x10);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2578ab;\n              iVar11 = (*pcVar1)();\n              cVar4 = puVar16[0x27];\n            }" { (expression_statement "puVar16[0x27] = cVar4;" (assignment_expression "puVar16[0x27] = cVar4" (subscript_expression "puVar16[0x27]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar11 = *param_3;" (assignment_expression "iVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x10);" (assignment_expression "*(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x10)" (pointer_expression "*(undefined4 *)(puVar16 + -0x10)" * (cast_expression "(undefined4 *)(puVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x10)" * (cast_expression "(undefined4 *)(puVar16 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x10)" ( (binary_expression "puVar16 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pcVar1 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar1 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x2578ab;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x2578ab" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar1)();" (assignment_expression "iVar11 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "cVar4 = puVar16[0x27];" (assignment_expression "cVar4 = puVar16[0x27]" identifier = (subscript_expression "puVar16[0x27]" identifier [ number_literal ])) ;) }))) (expression_statement "cVar12 = '\0';" (assignment_expression "cVar12 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              cVar12 = cVar4;\n            }" if (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) )) (compound_statement "{\n              param_3 = (int *)0x0;\n              cVar12 = cVar4;\n            }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "cVar12 = cVar4;" (assignment_expression "cVar12 = cVar4" identifier = identifier) ;) })) })) (if_statement "if ((*(int *)(puVar16 + 4) == 0) || (puVar16[0x26] == '\0')) {\n            cVar4 = puVar16[0x26];\n          }\n          else {\n            piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n            if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n              iVar11 = *piVar2;\n            }\n            else {\n              iVar11 = **(int **)(puVar16 + 4);\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257893;\n              iVar11 = (*pcVar1)();\n            }\n            cVar4 = iVar11 == -1;\n          }" if (parenthesized_expression "((*(int *)(puVar16 + 4) == 0) || (puVar16[0x26] == '\0'))" ( (binary_expression "(*(int *)(puVar16 + 4) == 0) || (puVar16[0x26] == '\0')" (parenthesized_expression "(*(int *)(puVar16 + 4) == 0)" ( (binary_expression "*(int *)(puVar16 + 4) == 0" (pointer_expression "*(int *)(puVar16 + 4)" * (cast_expression "(int *)(puVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(puVar16[0x26] == '\0')" ( (binary_expression "puVar16[0x26] == '\0'" (subscript_expression "puVar16[0x26]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            cVar4 = puVar16[0x26];\n          }" { (expression_statement "cVar4 = puVar16[0x26];" (assignment_expression "cVar4 = puVar16[0x26]" identifier = (subscript_expression "puVar16[0x26]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n            if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n              iVar11 = *piVar2;\n            }\n            else {\n              iVar11 = **(int **)(puVar16 + 4);\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257893;\n              iVar11 = (*pcVar1)();\n            }\n            cVar4 = iVar11 == -1;\n          }" else (compound_statement "{\n            piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n            if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n              iVar11 = *piVar2;\n            }\n            else {\n              iVar11 = **(int **)(puVar16 + 4);\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257893;\n              iVar11 = (*pcVar1)();\n            }\n            cVar4 = iVar11 == -1;\n          }" { (expression_statement "piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);" (assignment_expression "piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8)" identifier = (pointer_expression "*(int **)(*(int *)(puVar16 + 4) + 8)" * (cast_expression "(int **)(*(int *)(puVar16 + 4) + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar16 + 4) + 8)" ( (binary_expression "*(int *)(puVar16 + 4) + 8" (pointer_expression "*(int *)(puVar16 + 4)" * (cast_expression "(int *)(puVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n              iVar11 = *piVar2;\n            }\n            else {\n              iVar11 = **(int **)(puVar16 + 4);\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257893;\n              iVar11 = (*pcVar1)();\n            }" if (parenthesized_expression "(piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc))" ( (binary_expression "piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)" identifier < (pointer_expression "*(int **)(*(int *)(puVar16 + 4) + 0xc)" * (cast_expression "(int **)(*(int *)(puVar16 + 4) + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar16 + 4) + 0xc)" ( (binary_expression "*(int *)(puVar16 + 4) + 0xc" (pointer_expression "*(int *)(puVar16 + 4)" * (cast_expression "(int *)(puVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n              iVar11 = *piVar2;\n            }" { (expression_statement "iVar11 = *piVar2;" (assignment_expression "iVar11 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) }) (else_clause "else {\n              iVar11 = **(int **)(puVar16 + 4);\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257893;\n              iVar11 = (*pcVar1)();\n            }" else (compound_statement "{\n              iVar11 = **(int **)(puVar16 + 4);\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257893;\n              iVar11 = (*pcVar1)();\n            }" { (expression_statement "iVar11 = **(int **)(puVar16 + 4);" (assignment_expression "iVar11 = **(int **)(puVar16 + 4)" identifier = (pointer_expression "**(int **)(puVar16 + 4)" * (pointer_expression "*(int **)(puVar16 + 4)" * (cast_expression "(int **)(puVar16 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) )))))) ;) (expression_statement "*(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);" (assignment_expression "*(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4)" (pointer_expression "*(int **)(puVar16 + -0x10)" * (cast_expression "(int **)(puVar16 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(int **)(puVar16 + 4)" * (cast_expression "(int **)(puVar16 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar1 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar1 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x257893;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x257893" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar1)();" (assignment_expression "iVar11 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "cVar4 = iVar11 == -1;" (assignment_expression "cVar4 = iVar11 == -1" identifier = (binary_expression "iVar11 == -1" identifier == number_literal)) ;) }))) (if_statement "if (cVar4 == cVar12) {\n            **(uint **)(puVar16 + 0x8c) = **(uint **)(puVar16 + 0x8c) | 2;\n          }" if (parenthesized_expression "(cVar4 == cVar12)" ( (binary_expression "cVar4 == cVar12" identifier == identifier) )) (compound_statement "{\n            **(uint **)(puVar16 + 0x8c) = **(uint **)(puVar16 + 0x8c) | 2;\n          }" { (expression_statement "**(uint **)(puVar16 + 0x8c) = **(uint **)(puVar16 + 0x8c) | 2;" (assignment_expression "**(uint **)(puVar16 + 0x8c) = **(uint **)(puVar16 + 0x8c) | 2" (pointer_expression "**(uint **)(puVar16 + 0x8c)" * (pointer_expression "*(uint **)(puVar16 + 0x8c)" * (cast_expression "(uint **)(puVar16 + 0x8c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x8c)" ( (binary_expression "puVar16 + 0x8c" identifier + number_literal) ))))) = (binary_expression "**(uint **)(puVar16 + 0x8c) | 2" (pointer_expression "**(uint **)(puVar16 + 0x8c)" * (pointer_expression "*(uint **)(puVar16 + 0x8c)" * (cast_expression "(uint **)(puVar16 + 0x8c)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x8c)" ( (binary_expression "puVar16 + 0x8c" identifier + number_literal) ))))) | number_literal)) ;) })) }) (else_clause "else {\n          *(int **)(puVar16 + 0x78) = param_3;\n          *(undefined4 *)(puVar16 + 0x7c) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x84) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined4 *)(puVar16 + 0x80) = *(undefined4 *)(puVar16 + 4);\n          *(int *)(puVar16 + -8) = iVar11;\n          *(int *)(puVar16 + -0xc) = iVar17;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x84);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x80);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x7c);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x78);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x257721;\n          (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x74) = *(undefined4 *)(puVar16 + 0x34);\n          param_3 = *(int **)(puVar16 + 0x74);\n          *(undefined4 *)(puVar16 + 0x78) = *(undefined4 *)(puVar16 + 0x38);\n          *(undefined4 *)(puVar16 + 8) = *(undefined4 *)(puVar16 + 0x78);\n          puVar16 = puVar16 + -4;\n        }" else (compound_statement "{\n          *(int **)(puVar16 + 0x78) = param_3;\n          *(undefined4 *)(puVar16 + 0x7c) = *(undefined4 *)(puVar16 + 0xc);\n          *(undefined4 *)(puVar16 + 0x84) = *(undefined4 *)(puVar16 + 0x2c);\n          *(undefined4 *)(puVar16 + 0x80) = *(undefined4 *)(puVar16 + 4);\n          *(int *)(puVar16 + -8) = iVar11;\n          *(int *)(puVar16 + -0xc) = iVar17;\n          *(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);\n          *(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);\n          *(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);\n          *(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x84);\n          *(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x80);\n          *(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x7c);\n          *(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x78);\n          *(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);\n          *(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;\n          *(undefined4 *)(puVar16 + -0x34) = 0x257721;\n          (*pcVar1)();\n          *(undefined4 *)(puVar16 + 0x74) = *(undefined4 *)(puVar16 + 0x34);\n          param_3 = *(int **)(puVar16 + 0x74);\n          *(undefined4 *)(puVar16 + 0x78) = *(undefined4 *)(puVar16 + 0x38);\n          *(undefined4 *)(puVar16 + 8) = *(undefined4 *)(puVar16 + 0x78);\n          puVar16 = puVar16 + -4;\n        }" { (expression_statement "*(int **)(puVar16 + 0x78) = param_3;" (assignment_expression "*(int **)(puVar16 + 0x78) = param_3" (pointer_expression "*(int **)(puVar16 + 0x78)" * (cast_expression "(int **)(puVar16 + 0x78)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x78)" ( (binary_expression "puVar16 + 0x78" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + 0x7c) = *(undefined4 *)(puVar16 + 0xc);" (assignment_expression "*(undefined4 *)(puVar16 + 0x7c) = *(undefined4 *)(puVar16 + 0xc)" (pointer_expression "*(undefined4 *)(puVar16 + 0x7c)" * (cast_expression "(undefined4 *)(puVar16 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x7c)" ( (binary_expression "puVar16 + 0x7c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0xc)" * (cast_expression "(undefined4 *)(puVar16 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0xc)" ( (binary_expression "puVar16 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + 0x84) = *(undefined4 *)(puVar16 + 0x2c);" (assignment_expression "*(undefined4 *)(puVar16 + 0x84) = *(undefined4 *)(puVar16 + 0x2c)" (pointer_expression "*(undefined4 *)(puVar16 + 0x84)" * (cast_expression "(undefined4 *)(puVar16 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x84)" ( (binary_expression "puVar16 + 0x84" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x2c)" * (cast_expression "(undefined4 *)(puVar16 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x2c)" ( (binary_expression "puVar16 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + 0x80) = *(undefined4 *)(puVar16 + 4);" (assignment_expression "*(undefined4 *)(puVar16 + 0x80) = *(undefined4 *)(puVar16 + 4)" (pointer_expression "*(undefined4 *)(puVar16 + 0x80)" * (cast_expression "(undefined4 *)(puVar16 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x80)" ( (binary_expression "puVar16 + 0x80" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 4)" * (cast_expression "(undefined4 *)(puVar16 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar16 + -8) = iVar11;" (assignment_expression "*(int *)(puVar16 + -8) = iVar11" (pointer_expression "*(int *)(puVar16 + -8)" * (cast_expression "(int *)(puVar16 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar16 + -0xc) = iVar17;" (assignment_expression "*(int *)(puVar16 + -0xc) = iVar17" (pointer_expression "*(int *)(puVar16 + -0xc)" * (cast_expression "(int *)(puVar16 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90);" (assignment_expression "*(undefined4 *)(puVar16 + -0x10) = *(undefined4 *)(puVar16 + 0x90)" (pointer_expression "*(undefined4 *)(puVar16 + -0x10)" * (cast_expression "(undefined4 *)(puVar16 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x90)" * (cast_expression "(undefined4 *)(puVar16 + 0x90)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x90)" ( (binary_expression "puVar16 + 0x90" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c);" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = *(undefined4 *)(puVar16 + 0x8c)" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x8c)" * (cast_expression "(undefined4 *)(puVar16 + 0x8c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x8c)" ( (binary_expression "puVar16 + 0x8c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88);" (assignment_expression "*(undefined4 *)(puVar16 + -0x18) = *(undefined4 *)(puVar16 + 0x88)" (pointer_expression "*(undefined4 *)(puVar16 + -0x18)" * (cast_expression "(undefined4 *)(puVar16 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x18)" ( (binary_expression "puVar16 + -0x18" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x88)" * (cast_expression "(undefined4 *)(puVar16 + 0x88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x88)" ( (binary_expression "puVar16 + 0x88" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x84);" (assignment_expression "*(undefined4 *)(puVar16 + -0x1c) = *(undefined4 *)(puVar16 + 0x84)" (pointer_expression "*(undefined4 *)(puVar16 + -0x1c)" * (cast_expression "(undefined4 *)(puVar16 + -0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x1c)" ( (binary_expression "puVar16 + -0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x84)" * (cast_expression "(undefined4 *)(puVar16 + 0x84)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x84)" ( (binary_expression "puVar16 + 0x84" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x80);" (assignment_expression "*(undefined4 *)(puVar16 + -0x20) = *(undefined4 *)(puVar16 + 0x80)" (pointer_expression "*(undefined4 *)(puVar16 + -0x20)" * (cast_expression "(undefined4 *)(puVar16 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x20)" ( (binary_expression "puVar16 + -0x20" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x80)" * (cast_expression "(undefined4 *)(puVar16 + 0x80)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x80)" ( (binary_expression "puVar16 + 0x80" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x7c);" (assignment_expression "*(undefined4 *)(puVar16 + -0x24) = *(undefined4 *)(puVar16 + 0x7c)" (pointer_expression "*(undefined4 *)(puVar16 + -0x24)" * (cast_expression "(undefined4 *)(puVar16 + -0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x24)" ( (binary_expression "puVar16 + -0x24" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x7c)" * (cast_expression "(undefined4 *)(puVar16 + 0x7c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x7c)" ( (binary_expression "puVar16 + 0x7c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x78);" (assignment_expression "*(undefined4 *)(puVar16 + -0x28) = *(undefined4 *)(puVar16 + 0x78)" (pointer_expression "*(undefined4 *)(puVar16 + -0x28)" * (cast_expression "(undefined4 *)(puVar16 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x28)" ( (binary_expression "puVar16 + -0x28" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x78)" * (cast_expression "(undefined4 *)(puVar16 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x78)" ( (binary_expression "puVar16 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74);" (assignment_expression "*(undefined4 *)(puVar16 + -0x2c) = *(undefined4 *)(puVar16 + 0x74)" (pointer_expression "*(undefined4 *)(puVar16 + -0x2c)" * (cast_expression "(undefined4 *)(puVar16 + -0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x2c)" ( (binary_expression "puVar16 + -0x2c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x74)" * (cast_expression "(undefined4 *)(puVar16 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x74)" ( (binary_expression "puVar16 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38;" (assignment_expression "*(undefined1 **)(puVar16 + -0x30) = puVar16 + 0x38" (pointer_expression "*(undefined1 **)(puVar16 + -0x30)" * (cast_expression "(undefined1 **)(puVar16 + -0x30)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x30)" ( (binary_expression "puVar16 + -0x30" identifier + number_literal) )))) = (binary_expression "puVar16 + 0x38" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x34) = 0x257721;" (assignment_expression "*(undefined4 *)(puVar16 + -0x34) = 0x257721" (pointer_expression "*(undefined4 *)(puVar16 + -0x34)" * (cast_expression "(undefined4 *)(puVar16 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x34)" ( (binary_expression "puVar16 + -0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(puVar16 + 0x74) = *(undefined4 *)(puVar16 + 0x34);" (assignment_expression "*(undefined4 *)(puVar16 + 0x74) = *(undefined4 *)(puVar16 + 0x34)" (pointer_expression "*(undefined4 *)(puVar16 + 0x74)" * (cast_expression "(undefined4 *)(puVar16 + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x74)" ( (binary_expression "puVar16 + 0x74" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x34)" * (cast_expression "(undefined4 *)(puVar16 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x34)" ( (binary_expression "puVar16 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "param_3 = *(int **)(puVar16 + 0x74);" (assignment_expression "param_3 = *(int **)(puVar16 + 0x74)" identifier = (pointer_expression "*(int **)(puVar16 + 0x74)" * (cast_expression "(int **)(puVar16 + 0x74)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x74)" ( (binary_expression "puVar16 + 0x74" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + 0x78) = *(undefined4 *)(puVar16 + 0x38);" (assignment_expression "*(undefined4 *)(puVar16 + 0x78) = *(undefined4 *)(puVar16 + 0x38)" (pointer_expression "*(undefined4 *)(puVar16 + 0x78)" * (cast_expression "(undefined4 *)(puVar16 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x78)" ( (binary_expression "puVar16 + 0x78" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x38)" * (cast_expression "(undefined4 *)(puVar16 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x38)" ( (binary_expression "puVar16 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + 8) = *(undefined4 *)(puVar16 + 0x78);" (assignment_expression "*(undefined4 *)(puVar16 + 8) = *(undefined4 *)(puVar16 + 0x78)" (pointer_expression "*(undefined4 *)(puVar16 + 8)" * (cast_expression "(undefined4 *)(puVar16 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 8)" ( (binary_expression "puVar16 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar16 + 0x78)" * (cast_expression "(undefined4 *)(puVar16 + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0x78)" ( (binary_expression "puVar16 + 0x78" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = puVar16 + -4;" (assignment_expression "puVar16 = puVar16 + -4" identifier = (binary_expression "puVar16 + -4" identifier + number_literal)) ;) }))) (expression_statement "param_10 = (undefined4 *)(*(int *)(puVar16 + 8) + 4);" (assignment_expression "param_10 = (undefined4 *)(*(int *)(puVar16 + 8) + 4)" identifier = (cast_expression "(undefined4 *)(*(int *)(puVar16 + 8) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar16 + 8) + 4)" ( (binary_expression "*(int *)(puVar16 + 8) + 4" (pointer_expression "*(int *)(puVar16 + 8)" * (cast_expression "(int *)(puVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 8)" ( (binary_expression "puVar16 + 8" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;" if (parenthesized_expression "(param_10 == *(undefined4 **)(puVar16 + 0x98))" ( (binary_expression "param_10 == *(undefined4 **)(puVar16 + 0x98)" identifier == (pointer_expression "*(undefined4 **)(puVar16 + 0x98)" * (cast_expression "(undefined4 **)(puVar16 + 0x98)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x98)" ( (binary_expression "puVar16 + 0x98" identifier + number_literal) ))))) )) (break_statement "break;" break ;)) }) (else_clause "else {\n        iVar11 = *(int *)pcVar6;\n        *(undefined4 *)(puVar16 + -8) = *param_10;\n        *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n        *(ctype **)(puVar16 + -0x10) = pcVar6;\n        pcVar1 = *(code **)(iVar11 + 8);\n        *(undefined4 *)(puVar16 + -0x14) = 0x257191;\n        cVar4 = (*pcVar1)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || (puVar16[8] == '\0')) {\n            uVar9 = *(undefined4 *)(puVar16 + 0xc);\nLAB_002571af:\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = uVar9;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571ba;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571c7;\n            iVar7 = (*pcVar1)();\n            iVar11 = *(int *)(puVar16 + 0xc);\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *(int *)pcVar6;\n              *(int *)(puVar16 + -0xc) = iVar11;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar17 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571dd;\n              iVar17 = (*pcVar1)();\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -0xc) = *param_10;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571ea;\n              iVar11 = (*pcVar1)();\n              if (iVar11 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              iVar11 = *param_3;\n              *(int **)(puVar16 + -0x10) = param_3;\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x25787c;\n              iVar11 = (*pcVar1)();\n            }\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              uVar9 = 0xffffffff;\n              goto LAB_002571af;\n            }\n            iVar17 = *(int *)pcVar6;\n            *(int *)(puVar16 + -0xc) = iVar11;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar17 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x25767c;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257689;\n            iVar11 = (*pcVar1)();\n            if (iVar17 != iVar11) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar11 = *(int *)param_3[2];\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;\n                iVar11 = (*pcVar1)();\n              }\n              if (iVar11 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar11 = *param_3;\n            *(int **)(puVar16 + -0x10) = param_3;\n            pcVar1 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257811;\n            (*pcVar1)();\n          }\n          *(undefined4 *)(puVar16 + 0xc) = 0xffffffff;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if (*(undefined4 **)(puVar16 + 0x98) != param_10) {\n            puVar3 = *(undefined4 **)(puVar16 + 0x98);\n            do {\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -8) = *param_10;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257440;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          *(undefined4 **)(puVar16 + 0x94) = param_10;\n          iVar11 = *(int *)(puVar16 + 0xc);\n          *(ctype **)(puVar16 + 8) = pcVar6;\n          bVar10 = iVar11 == -1;\n          bVar14 = param_3 != (int *)0x0 && (bool)bVar10;\n          if (bVar14) goto LAB_002574dc;\nLAB_00257468:\n          bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n          bVar15 = (bool)bVar10;\n          if (bVar13 != 0) goto LAB_00257510;\n          while ((bool)puVar16[0x26] != bVar15) {\n            while( true ) {\n              iVar17 = iVar11;\n              if ((param_3 != (int *)0x0) && (bVar10 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = **(int **)(puVar16 + 8);\n              *(int *)(puVar16 + -8) = iVar17;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 8);\n              pcVar1 = *(code **)(iVar7 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2574ab;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x28);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;\n                (*pcVar1)();\n              }\n              iVar11 = -1;\n              bVar10 = true;\n              bVar14 = param_3 != (int *)0x0;\n              if (!bVar14) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }\n              bVar15 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar15 = bVar14;\n              }\n              bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n              if (bVar13 == 0) break;\nLAB_00257510:\n              piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n              if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n                iVar17 = *piVar2;\n              }\n              else {\n                puVar16[0x27] = bVar10;\n                puVar16[0xc] = bVar13;\n                iVar17 = **(int **)(puVar16 + 4);\n                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0x27];\n                bVar13 = puVar16[0xc];\n              }\n              uVar9 = 0;\n              if (iVar17 != -1) {\n                bVar13 = 0;\n                uVar9 = *(undefined4 *)(puVar16 + 4);\n              }\n              *(undefined4 *)(puVar16 + 4) = uVar9;\n              if ((bool)bVar13 == bVar15) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          *(int *)(puVar16 + 0xc) = iVar11;\n          pcVar6 = *(ctype **)(puVar16 + 8);\n          param_10 = *(undefined4 **)(puVar16 + 0x94);\n        }\n        if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;\n      }" else (compound_statement "{\n        iVar11 = *(int *)pcVar6;\n        *(undefined4 *)(puVar16 + -8) = *param_10;\n        *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n        *(ctype **)(puVar16 + -0x10) = pcVar6;\n        pcVar1 = *(code **)(iVar11 + 8);\n        *(undefined4 *)(puVar16 + -0x14) = 0x257191;\n        cVar4 = (*pcVar1)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || (puVar16[8] == '\0')) {\n            uVar9 = *(undefined4 *)(puVar16 + 0xc);\nLAB_002571af:\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = uVar9;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571ba;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571c7;\n            iVar7 = (*pcVar1)();\n            iVar11 = *(int *)(puVar16 + 0xc);\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *(int *)pcVar6;\n              *(int *)(puVar16 + -0xc) = iVar11;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar17 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571dd;\n              iVar17 = (*pcVar1)();\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -0xc) = *param_10;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571ea;\n              iVar11 = (*pcVar1)();\n              if (iVar11 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              iVar11 = *param_3;\n              *(int **)(puVar16 + -0x10) = param_3;\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x25787c;\n              iVar11 = (*pcVar1)();\n            }\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              uVar9 = 0xffffffff;\n              goto LAB_002571af;\n            }\n            iVar17 = *(int *)pcVar6;\n            *(int *)(puVar16 + -0xc) = iVar11;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar17 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x25767c;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257689;\n            iVar11 = (*pcVar1)();\n            if (iVar17 != iVar11) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar11 = *(int *)param_3[2];\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;\n                iVar11 = (*pcVar1)();\n              }\n              if (iVar11 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar11 = *param_3;\n            *(int **)(puVar16 + -0x10) = param_3;\n            pcVar1 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257811;\n            (*pcVar1)();\n          }\n          *(undefined4 *)(puVar16 + 0xc) = 0xffffffff;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if (*(undefined4 **)(puVar16 + 0x98) != param_10) {\n            puVar3 = *(undefined4 **)(puVar16 + 0x98);\n            do {\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -8) = *param_10;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257440;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          *(undefined4 **)(puVar16 + 0x94) = param_10;\n          iVar11 = *(int *)(puVar16 + 0xc);\n          *(ctype **)(puVar16 + 8) = pcVar6;\n          bVar10 = iVar11 == -1;\n          bVar14 = param_3 != (int *)0x0 && (bool)bVar10;\n          if (bVar14) goto LAB_002574dc;\nLAB_00257468:\n          bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n          bVar15 = (bool)bVar10;\n          if (bVar13 != 0) goto LAB_00257510;\n          while ((bool)puVar16[0x26] != bVar15) {\n            while( true ) {\n              iVar17 = iVar11;\n              if ((param_3 != (int *)0x0) && (bVar10 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = **(int **)(puVar16 + 8);\n              *(int *)(puVar16 + -8) = iVar17;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 8);\n              pcVar1 = *(code **)(iVar7 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2574ab;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x28);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;\n                (*pcVar1)();\n              }\n              iVar11 = -1;\n              bVar10 = true;\n              bVar14 = param_3 != (int *)0x0;\n              if (!bVar14) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }\n              bVar15 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar15 = bVar14;\n              }\n              bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n              if (bVar13 == 0) break;\nLAB_00257510:\n              piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n              if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n                iVar17 = *piVar2;\n              }\n              else {\n                puVar16[0x27] = bVar10;\n                puVar16[0xc] = bVar13;\n                iVar17 = **(int **)(puVar16 + 4);\n                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0x27];\n                bVar13 = puVar16[0xc];\n              }\n              uVar9 = 0;\n              if (iVar17 != -1) {\n                bVar13 = 0;\n                uVar9 = *(undefined4 *)(puVar16 + 4);\n              }\n              *(undefined4 *)(puVar16 + 4) = uVar9;\n              if ((bool)bVar13 == bVar15) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          *(int *)(puVar16 + 0xc) = iVar11;\n          pcVar6 = *(ctype **)(puVar16 + 8);\n          param_10 = *(undefined4 **)(puVar16 + 0x94);\n        }\n        if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;\n      }" { (expression_statement "iVar11 = *(int *)pcVar6;" (assignment_expression "iVar11 = *(int *)pcVar6" identifier = (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar16 + -8) = *param_10;" (assignment_expression "*(undefined4 *)(puVar16 + -8) = *param_10" (pointer_expression "*(undefined4 *)(puVar16 + -8)" * (cast_expression "(undefined4 *)(puVar16 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = (pointer_expression "*param_10" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar16 + -0xc) = 0x2000;" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = 0x2000" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" * (cast_expression "(undefined4 *)(puVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(ctype **)(puVar16 + -0x10) = pcVar6;" (assignment_expression "*(ctype **)(puVar16 + -0x10) = pcVar6" (pointer_expression "*(ctype **)(puVar16 + -0x10)" * (cast_expression "(ctype **)(puVar16 + -0x10)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar11 + 8);" (assignment_expression "pcVar1 = *(code **)(iVar11 + 8)" identifier = (pointer_expression "*(code **)(iVar11 + 8)" * (cast_expression "(code **)(iVar11 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x257191;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x257191" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar4 = (*pcVar1)();" (assignment_expression "cVar4 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || (puVar16[8] == '\0')) {\n            uVar9 = *(undefined4 *)(puVar16 + 0xc);\nLAB_002571af:\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = uVar9;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571ba;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571c7;\n            iVar7 = (*pcVar1)();\n            iVar11 = *(int *)(puVar16 + 0xc);\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *(int *)pcVar6;\n              *(int *)(puVar16 + -0xc) = iVar11;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar17 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571dd;\n              iVar17 = (*pcVar1)();\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -0xc) = *param_10;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571ea;\n              iVar11 = (*pcVar1)();\n              if (iVar11 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              iVar11 = *param_3;\n              *(int **)(puVar16 + -0x10) = param_3;\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x25787c;\n              iVar11 = (*pcVar1)();\n            }\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              uVar9 = 0xffffffff;\n              goto LAB_002571af;\n            }\n            iVar17 = *(int *)pcVar6;\n            *(int *)(puVar16 + -0xc) = iVar11;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar17 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x25767c;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257689;\n            iVar11 = (*pcVar1)();\n            if (iVar17 != iVar11) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar11 = *(int *)param_3[2];\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;\n                iVar11 = (*pcVar1)();\n              }\n              if (iVar11 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar11 = *param_3;\n            *(int **)(puVar16 + -0x10) = param_3;\n            pcVar1 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257811;\n            (*pcVar1)();\n          }\n          *(undefined4 *)(puVar16 + 0xc) = 0xffffffff;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if (*(undefined4 **)(puVar16 + 0x98) != param_10) {\n            puVar3 = *(undefined4 **)(puVar16 + 0x98);\n            do {\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -8) = *param_10;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257440;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          *(undefined4 **)(puVar16 + 0x94) = param_10;\n          iVar11 = *(int *)(puVar16 + 0xc);\n          *(ctype **)(puVar16 + 8) = pcVar6;\n          bVar10 = iVar11 == -1;\n          bVar14 = param_3 != (int *)0x0 && (bool)bVar10;\n          if (bVar14) goto LAB_002574dc;\nLAB_00257468:\n          bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n          bVar15 = (bool)bVar10;\n          if (bVar13 != 0) goto LAB_00257510;\n          while ((bool)puVar16[0x26] != bVar15) {\n            while( true ) {\n              iVar17 = iVar11;\n              if ((param_3 != (int *)0x0) && (bVar10 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = **(int **)(puVar16 + 8);\n              *(int *)(puVar16 + -8) = iVar17;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 8);\n              pcVar1 = *(code **)(iVar7 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2574ab;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x28);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;\n                (*pcVar1)();\n              }\n              iVar11 = -1;\n              bVar10 = true;\n              bVar14 = param_3 != (int *)0x0;\n              if (!bVar14) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }\n              bVar15 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar15 = bVar14;\n              }\n              bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n              if (bVar13 == 0) break;\nLAB_00257510:\n              piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n              if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n                iVar17 = *piVar2;\n              }\n              else {\n                puVar16[0x27] = bVar10;\n                puVar16[0xc] = bVar13;\n                iVar17 = **(int **)(puVar16 + 4);\n                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0x27];\n                bVar13 = puVar16[0xc];\n              }\n              uVar9 = 0;\n              if (iVar17 != -1) {\n                bVar13 = 0;\n                uVar9 = *(undefined4 *)(puVar16 + 4);\n              }\n              *(undefined4 *)(puVar16 + 4) = uVar9;\n              if ((bool)bVar13 == bVar15) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          *(int *)(puVar16 + 0xc) = iVar11;\n          pcVar6 = *(ctype **)(puVar16 + 8);\n          param_10 = *(undefined4 **)(puVar16 + 0x94);\n        }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if ((param_3 == (int *)0x0) || (puVar16[8] == '\0')) {\n            uVar9 = *(undefined4 *)(puVar16 + 0xc);\nLAB_002571af:\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = uVar9;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571ba;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571c7;\n            iVar7 = (*pcVar1)();\n            iVar11 = *(int *)(puVar16 + 0xc);\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *(int *)pcVar6;\n              *(int *)(puVar16 + -0xc) = iVar11;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar17 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571dd;\n              iVar17 = (*pcVar1)();\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -0xc) = *param_10;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571ea;\n              iVar11 = (*pcVar1)();\n              if (iVar11 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              iVar11 = *param_3;\n              *(int **)(puVar16 + -0x10) = param_3;\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x25787c;\n              iVar11 = (*pcVar1)();\n            }\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              uVar9 = 0xffffffff;\n              goto LAB_002571af;\n            }\n            iVar17 = *(int *)pcVar6;\n            *(int *)(puVar16 + -0xc) = iVar11;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar17 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x25767c;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257689;\n            iVar11 = (*pcVar1)();\n            if (iVar17 != iVar11) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar11 = *(int *)param_3[2];\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;\n                iVar11 = (*pcVar1)();\n              }\n              if (iVar11 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar11 = *param_3;\n            *(int **)(puVar16 + -0x10) = param_3;\n            pcVar1 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257811;\n            (*pcVar1)();\n          }\n          *(undefined4 *)(puVar16 + 0xc) = 0xffffffff;\n          param_10 = param_10 + 1;\n        }" { (if_statement "if ((param_3 == (int *)0x0) || (puVar16[8] == '\0')) {\n            uVar9 = *(undefined4 *)(puVar16 + 0xc);\nLAB_002571af:\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = uVar9;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571ba;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571c7;\n            iVar7 = (*pcVar1)();\n            iVar11 = *(int *)(puVar16 + 0xc);\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *(int *)pcVar6;\n              *(int *)(puVar16 + -0xc) = iVar11;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar17 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571dd;\n              iVar17 = (*pcVar1)();\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -0xc) = *param_10;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571ea;\n              iVar11 = (*pcVar1)();\n              if (iVar11 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              iVar11 = *param_3;\n              *(int **)(puVar16 + -0x10) = param_3;\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x25787c;\n              iVar11 = (*pcVar1)();\n            }\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              uVar9 = 0xffffffff;\n              goto LAB_002571af;\n            }\n            iVar17 = *(int *)pcVar6;\n            *(int *)(puVar16 + -0xc) = iVar11;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar17 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x25767c;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257689;\n            iVar11 = (*pcVar1)();\n            if (iVar17 != iVar11) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar11 = *(int *)param_3[2];\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;\n                iVar11 = (*pcVar1)();\n              }\n              if (iVar11 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }" if (parenthesized_expression "((param_3 == (int *)0x0) || (puVar16[8] == '\0'))" ( (binary_expression "(param_3 == (int *)0x0) || (puVar16[8] == '\0')" (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar16[8] == '\0')" ( (binary_expression "puVar16[8] == '\0'" (subscript_expression "puVar16[8]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            uVar9 = *(undefined4 *)(puVar16 + 0xc);\nLAB_002571af:\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = uVar9;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571ba;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x2571c7;\n            iVar7 = (*pcVar1)();\n            iVar11 = *(int *)(puVar16 + 0xc);\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *(int *)pcVar6;\n              *(int *)(puVar16 + -0xc) = iVar11;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar17 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571dd;\n              iVar17 = (*pcVar1)();\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -0xc) = *param_10;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571ea;\n              iVar11 = (*pcVar1)();\n              if (iVar11 != iVar17) goto LAB_00257861;\n            }\n          }" { (expression_statement "uVar9 = *(undefined4 *)(puVar16 + 0xc);" (assignment_expression "uVar9 = *(undefined4 *)(puVar16 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(puVar16 + 0xc)" * (cast_expression "(undefined4 *)(puVar16 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0xc)" ( (binary_expression "puVar16 + 0xc" identifier + number_literal) ))))) ;) (labeled_statement "LAB_002571af:\n            iVar11 = *(int *)pcVar6;" statement_identifier : (expression_statement "iVar11 = *(int *)pcVar6;" (assignment_expression "iVar11 = *(int *)pcVar6" identifier = (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "*(undefined4 *)(puVar16 + -0xc) = uVar9;" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = uVar9" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" * (cast_expression "(undefined4 *)(puVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(ctype **)(puVar16 + -0x10) = pcVar6;" (assignment_expression "*(ctype **)(puVar16 + -0x10) = pcVar6" (pointer_expression "*(ctype **)(puVar16 + -0x10)" * (cast_expression "(ctype **)(puVar16 + -0x10)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar11 + 0x20);" (assignment_expression "pcVar1 = *(code **)(iVar11 + 0x20)" identifier = (pointer_expression "*(code **)(iVar11 + 0x20)" * (cast_expression "(code **)(iVar11 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x20)" ( (binary_expression "iVar11 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x2571ba;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x2571ba" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar17 = (*pcVar1)();" (assignment_expression "iVar17 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar11 = *(int *)pcVar6;" (assignment_expression "iVar11 = *(int *)pcVar6" identifier = (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0xc) = *param_10;" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = *param_10" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" * (cast_expression "(undefined4 *)(puVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = (pointer_expression "*param_10" * identifier)) ;) (expression_statement "*(ctype **)(puVar16 + -0x10) = pcVar6;" (assignment_expression "*(ctype **)(puVar16 + -0x10) = pcVar6" (pointer_expression "*(ctype **)(puVar16 + -0x10)" * (cast_expression "(ctype **)(puVar16 + -0x10)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar11 + 0x20);" (assignment_expression "pcVar1 = *(code **)(iVar11 + 0x20)" identifier = (pointer_expression "*(code **)(iVar11 + 0x20)" * (cast_expression "(code **)(iVar11 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x20)" ( (binary_expression "iVar11 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x2571c7;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x2571c7" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = (*pcVar1)();" (assignment_expression "iVar7 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar11 = *(int *)(puVar16 + 0xc);" (assignment_expression "iVar11 = *(int *)(puVar16 + 0xc)" identifier = (pointer_expression "*(int *)(puVar16 + 0xc)" * (cast_expression "(int *)(puVar16 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0xc)" ( (binary_expression "puVar16 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *(int *)pcVar6;\n              *(int *)(puVar16 + -0xc) = iVar11;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar17 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571dd;\n              iVar17 = (*pcVar1)();\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -0xc) = *param_10;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571ea;\n              iVar11 = (*pcVar1)();\n              if (iVar11 != iVar17) goto LAB_00257861;\n            }" if (parenthesized_expression "(iVar7 != iVar17)" ( (binary_expression "iVar7 != iVar17" identifier != identifier) )) (compound_statement "{\nLAB_002571d2:\n              iVar17 = *(int *)pcVar6;\n              *(int *)(puVar16 + -0xc) = iVar11;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar17 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571dd;\n              iVar17 = (*pcVar1)();\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -0xc) = *param_10;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 0x18);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2571ea;\n              iVar11 = (*pcVar1)();\n              if (iVar11 != iVar17) goto LAB_00257861;\n            }" { (labeled_statement "LAB_002571d2:\n              iVar17 = *(int *)pcVar6;" statement_identifier : (expression_statement "iVar17 = *(int *)pcVar6;" (assignment_expression "iVar17 = *(int *)pcVar6" identifier = (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "*(int *)(puVar16 + -0xc) = iVar11;" (assignment_expression "*(int *)(puVar16 + -0xc) = iVar11" (pointer_expression "*(int *)(puVar16 + -0xc)" * (cast_expression "(int *)(puVar16 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(ctype **)(puVar16 + -0x10) = pcVar6;" (assignment_expression "*(ctype **)(puVar16 + -0x10) = pcVar6" (pointer_expression "*(ctype **)(puVar16 + -0x10)" * (cast_expression "(ctype **)(puVar16 + -0x10)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar17 + 0x18);" (assignment_expression "pcVar1 = *(code **)(iVar17 + 0x18)" identifier = (pointer_expression "*(code **)(iVar17 + 0x18)" * (cast_expression "(code **)(iVar17 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x2571dd;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x2571dd" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar17 = (*pcVar1)();" (assignment_expression "iVar17 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar11 = *(int *)pcVar6;" (assignment_expression "iVar11 = *(int *)pcVar6" identifier = (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0xc) = *param_10;" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = *param_10" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" * (cast_expression "(undefined4 *)(puVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = (pointer_expression "*param_10" * identifier)) ;) (expression_statement "*(ctype **)(puVar16 + -0x10) = pcVar6;" (assignment_expression "*(ctype **)(puVar16 + -0x10) = pcVar6" (pointer_expression "*(ctype **)(puVar16 + -0x10)" * (cast_expression "(ctype **)(puVar16 + -0x10)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar11 + 0x18);" (assignment_expression "pcVar1 = *(code **)(iVar11 + 0x18)" identifier = (pointer_expression "*(code **)(iVar11 + 0x18)" * (cast_expression "(code **)(iVar11 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x18)" ( (binary_expression "iVar11 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x2571ea;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x2571ea" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar1)();" (assignment_expression "iVar11 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar11 != iVar17) goto LAB_00257861;" if (parenthesized_expression "(iVar11 != iVar17)" ( (binary_expression "iVar11 != iVar17" identifier != identifier) )) (goto_statement "goto LAB_00257861;" goto statement_identifier ;)) })) }) (else_clause "else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              iVar11 = *param_3;\n              *(int **)(puVar16 + -0x10) = param_3;\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x25787c;\n              iVar11 = (*pcVar1)();\n            }\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              uVar9 = 0xffffffff;\n              goto LAB_002571af;\n            }\n            iVar17 = *(int *)pcVar6;\n            *(int *)(puVar16 + -0xc) = iVar11;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar17 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x25767c;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257689;\n            iVar11 = (*pcVar1)();\n            if (iVar17 != iVar11) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar11 = *(int *)param_3[2];\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;\n                iVar11 = (*pcVar1)();\n              }\n              if (iVar11 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }" else (compound_statement "{\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              iVar11 = *param_3;\n              *(int **)(puVar16 + -0x10) = param_3;\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x25787c;\n              iVar11 = (*pcVar1)();\n            }\n            if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              uVar9 = 0xffffffff;\n              goto LAB_002571af;\n            }\n            iVar17 = *(int *)pcVar6;\n            *(int *)(puVar16 + -0xc) = iVar11;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar17 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x25767c;\n            iVar17 = (*pcVar1)();\n            iVar11 = *(int *)pcVar6;\n            *(undefined4 *)(puVar16 + -0xc) = *param_10;\n            *(ctype **)(puVar16 + -0x10) = pcVar6;\n            pcVar1 = *(code **)(iVar11 + 0x20);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257689;\n            iVar11 = (*pcVar1)();\n            if (iVar17 != iVar11) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar11 = *(int *)param_3[2];\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;\n                iVar11 = (*pcVar1)();\n              }\n              if (iVar11 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar11 = *(int *)param_3[2];\n            }\n            else {\n              iVar11 = *param_3;\n              *(int **)(puVar16 + -0x10) = param_3;\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x25787c;\n              iVar11 = (*pcVar1)();\n            }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n              iVar11 = *(int *)param_3[2];\n            }" { (expression_statement "iVar11 = *(int *)param_3[2];" (assignment_expression "iVar11 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n              iVar11 = *param_3;\n              *(int **)(puVar16 + -0x10) = param_3;\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x25787c;\n              iVar11 = (*pcVar1)();\n            }" else (compound_statement "{\n              iVar11 = *param_3;\n              *(int **)(puVar16 + -0x10) = param_3;\n              pcVar1 = *(code **)(iVar11 + 0x24);\n              *(undefined4 *)(puVar16 + -0x14) = 0x25787c;\n              iVar11 = (*pcVar1)();\n            }" { (expression_statement "iVar11 = *param_3;" (assignment_expression "iVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "*(int **)(puVar16 + -0x10) = param_3;" (assignment_expression "*(int **)(puVar16 + -0x10) = param_3" (pointer_expression "*(int **)(puVar16 + -0x10)" * (cast_expression "(int **)(puVar16 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar1 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x25787c;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x25787c" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar1)();" (assignment_expression "iVar11 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar11 == -1) {\n              param_3 = (int *)0x0;\n              uVar9 = 0xffffffff;\n              goto LAB_002571af;\n            }" if (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) )) (compound_statement "{\n              param_3 = (int *)0x0;\n              uVar9 = 0xffffffff;\n              goto LAB_002571af;\n            }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar9 = 0xffffffff;" (assignment_expression "uVar9 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_002571af;" goto statement_identifier ;) })) (expression_statement "iVar17 = *(int *)pcVar6;" (assignment_expression "iVar17 = *(int *)pcVar6" identifier = (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(int *)(puVar16 + -0xc) = iVar11;" (assignment_expression "*(int *)(puVar16 + -0xc) = iVar11" (pointer_expression "*(int *)(puVar16 + -0xc)" * (cast_expression "(int *)(puVar16 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(ctype **)(puVar16 + -0x10) = pcVar6;" (assignment_expression "*(ctype **)(puVar16 + -0x10) = pcVar6" (pointer_expression "*(ctype **)(puVar16 + -0x10)" * (cast_expression "(ctype **)(puVar16 + -0x10)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar17 + 0x20);" (assignment_expression "pcVar1 = *(code **)(iVar17 + 0x20)" identifier = (pointer_expression "*(code **)(iVar17 + 0x20)" * (cast_expression "(code **)(iVar17 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x20)" ( (binary_expression "iVar17 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x25767c;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x25767c" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar17 = (*pcVar1)();" (assignment_expression "iVar17 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar11 = *(int *)pcVar6;" (assignment_expression "iVar11 = *(int *)pcVar6" identifier = (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0xc) = *param_10;" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = *param_10" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" * (cast_expression "(undefined4 *)(puVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = (pointer_expression "*param_10" * identifier)) ;) (expression_statement "*(ctype **)(puVar16 + -0x10) = pcVar6;" (assignment_expression "*(ctype **)(puVar16 + -0x10) = pcVar6" (pointer_expression "*(ctype **)(puVar16 + -0x10)" * (cast_expression "(ctype **)(puVar16 + -0x10)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar11 + 0x20);" (assignment_expression "pcVar1 = *(code **)(iVar11 + 0x20)" identifier = (pointer_expression "*(code **)(iVar11 + 0x20)" * (cast_expression "(code **)(iVar11 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x20)" ( (binary_expression "iVar11 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x257689;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x257689" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar1)();" (assignment_expression "iVar11 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar17 != iVar11) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar11 = *(int *)param_3[2];\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;\n                iVar11 = (*pcVar1)();\n              }\n              if (iVar11 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }" if (parenthesized_expression "(iVar17 != iVar11)" ( (binary_expression "iVar17 != iVar11" identifier != identifier) )) (compound_statement "{\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar11 = *(int *)param_3[2];\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;\n                iVar11 = (*pcVar1)();\n              }\n              if (iVar11 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar11 = *(int *)param_3[2];\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;\n                iVar11 = (*pcVar1)();\n              }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                iVar11 = *(int *)param_3[2];\n              }" { (expression_statement "iVar11 = *(int *)param_3[2];" (assignment_expression "iVar11 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;\n                iVar11 = (*pcVar1)();\n              }" else (compound_statement "{\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2578c1;\n                iVar11 = (*pcVar1)();\n              }" { (expression_statement "iVar11 = *param_3;" (assignment_expression "iVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "*(int **)(puVar16 + -0x10) = param_3;" (assignment_expression "*(int **)(puVar16 + -0x10) = param_3" (pointer_expression "*(int **)(puVar16 + -0x10)" * (cast_expression "(int **)(puVar16 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar11 + 0x24);" (assignment_expression "pcVar1 = *(code **)(iVar11 + 0x24)" identifier = (pointer_expression "*(code **)(iVar11 + 0x24)" * (cast_expression "(code **)(iVar11 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x24)" ( (binary_expression "iVar11 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x2578c1;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x2578c1" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar11 = (*pcVar1)();" (assignment_expression "iVar11 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar11 == -1) {\n                param_3 = (int *)0x0;\n              }" if (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) )) (compound_statement "{\n                param_3 = (int *)0x0;\n              }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (goto_statement "goto LAB_002571d2;" goto statement_identifier ;) })) }))) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar11 = *param_3;\n            *(int **)(puVar16 + -0x10) = param_3;\n            pcVar1 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257811;\n            (*pcVar1)();\n          }" if (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" ( (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            param_3[2] = param_3[2] + 4;\n          }" { (expression_statement "param_3[2] = param_3[2] + 4;" (assignment_expression "param_3[2] = param_3[2] + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (binary_expression "param_3[2] + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n            iVar11 = *param_3;\n            *(int **)(puVar16 + -0x10) = param_3;\n            pcVar1 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257811;\n            (*pcVar1)();\n          }" else (compound_statement "{\n            iVar11 = *param_3;\n            *(int **)(puVar16 + -0x10) = param_3;\n            pcVar1 = *(code **)(iVar11 + 0x28);\n            *(undefined4 *)(puVar16 + -0x14) = 0x257811;\n            (*pcVar1)();\n          }" { (expression_statement "iVar11 = *param_3;" (assignment_expression "iVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "*(int **)(puVar16 + -0x10) = param_3;" (assignment_expression "*(int **)(puVar16 + -0x10) = param_3" (pointer_expression "*(int **)(puVar16 + -0x10)" * (cast_expression "(int **)(puVar16 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar11 + 0x28);" (assignment_expression "pcVar1 = *(code **)(iVar11 + 0x28)" identifier = (pointer_expression "*(code **)(iVar11 + 0x28)" * (cast_expression "(code **)(iVar11 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x257811;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x257811" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( ))) ;) }))) (expression_statement "*(undefined4 *)(puVar16 + 0xc) = 0xffffffff;" (assignment_expression "*(undefined4 *)(puVar16 + 0xc) = 0xffffffff" (pointer_expression "*(undefined4 *)(puVar16 + 0xc)" * (cast_expression "(undefined4 *)(puVar16 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0xc)" ( (binary_expression "puVar16 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" identifier = (binary_expression "param_10 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          param_10 = param_10 + 1;\n          if (*(undefined4 **)(puVar16 + 0x98) != param_10) {\n            puVar3 = *(undefined4 **)(puVar16 + 0x98);\n            do {\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -8) = *param_10;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257440;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          *(undefined4 **)(puVar16 + 0x94) = param_10;\n          iVar11 = *(int *)(puVar16 + 0xc);\n          *(ctype **)(puVar16 + 8) = pcVar6;\n          bVar10 = iVar11 == -1;\n          bVar14 = param_3 != (int *)0x0 && (bool)bVar10;\n          if (bVar14) goto LAB_002574dc;\nLAB_00257468:\n          bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n          bVar15 = (bool)bVar10;\n          if (bVar13 != 0) goto LAB_00257510;\n          while ((bool)puVar16[0x26] != bVar15) {\n            while( true ) {\n              iVar17 = iVar11;\n              if ((param_3 != (int *)0x0) && (bVar10 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = **(int **)(puVar16 + 8);\n              *(int *)(puVar16 + -8) = iVar17;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 8);\n              pcVar1 = *(code **)(iVar7 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2574ab;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x28);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;\n                (*pcVar1)();\n              }\n              iVar11 = -1;\n              bVar10 = true;\n              bVar14 = param_3 != (int *)0x0;\n              if (!bVar14) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }\n              bVar15 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar15 = bVar14;\n              }\n              bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n              if (bVar13 == 0) break;\nLAB_00257510:\n              piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n              if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n                iVar17 = *piVar2;\n              }\n              else {\n                puVar16[0x27] = bVar10;\n                puVar16[0xc] = bVar13;\n                iVar17 = **(int **)(puVar16 + 4);\n                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0x27];\n                bVar13 = puVar16[0xc];\n              }\n              uVar9 = 0;\n              if (iVar17 != -1) {\n                bVar13 = 0;\n                uVar9 = *(undefined4 *)(puVar16 + 4);\n              }\n              *(undefined4 *)(puVar16 + 4) = uVar9;\n              if ((bool)bVar13 == bVar15) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          *(int *)(puVar16 + 0xc) = iVar11;\n          pcVar6 = *(ctype **)(puVar16 + 8);\n          param_10 = *(undefined4 **)(puVar16 + 0x94);\n        }" else (compound_statement "{\n          param_10 = param_10 + 1;\n          if (*(undefined4 **)(puVar16 + 0x98) != param_10) {\n            puVar3 = *(undefined4 **)(puVar16 + 0x98);\n            do {\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -8) = *param_10;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257440;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          *(undefined4 **)(puVar16 + 0x94) = param_10;\n          iVar11 = *(int *)(puVar16 + 0xc);\n          *(ctype **)(puVar16 + 8) = pcVar6;\n          bVar10 = iVar11 == -1;\n          bVar14 = param_3 != (int *)0x0 && (bool)bVar10;\n          if (bVar14) goto LAB_002574dc;\nLAB_00257468:\n          bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n          bVar15 = (bool)bVar10;\n          if (bVar13 != 0) goto LAB_00257510;\n          while ((bool)puVar16[0x26] != bVar15) {\n            while( true ) {\n              iVar17 = iVar11;\n              if ((param_3 != (int *)0x0) && (bVar10 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = **(int **)(puVar16 + 8);\n              *(int *)(puVar16 + -8) = iVar17;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 8);\n              pcVar1 = *(code **)(iVar7 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2574ab;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x28);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;\n                (*pcVar1)();\n              }\n              iVar11 = -1;\n              bVar10 = true;\n              bVar14 = param_3 != (int *)0x0;\n              if (!bVar14) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }\n              bVar15 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar15 = bVar14;\n              }\n              bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n              if (bVar13 == 0) break;\nLAB_00257510:\n              piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n              if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n                iVar17 = *piVar2;\n              }\n              else {\n                puVar16[0x27] = bVar10;\n                puVar16[0xc] = bVar13;\n                iVar17 = **(int **)(puVar16 + 4);\n                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0x27];\n                bVar13 = puVar16[0xc];\n              }\n              uVar9 = 0;\n              if (iVar17 != -1) {\n                bVar13 = 0;\n                uVar9 = *(undefined4 *)(puVar16 + 4);\n              }\n              *(undefined4 *)(puVar16 + 4) = uVar9;\n              if ((bool)bVar13 == bVar15) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          *(int *)(puVar16 + 0xc) = iVar11;\n          pcVar6 = *(ctype **)(puVar16 + 8);\n          param_10 = *(undefined4 **)(puVar16 + 0x94);\n        }" { (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" identifier = (binary_expression "param_10 + 1" identifier + number_literal)) ;) (if_statement "if (*(undefined4 **)(puVar16 + 0x98) != param_10) {\n            puVar3 = *(undefined4 **)(puVar16 + 0x98);\n            do {\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -8) = *param_10;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257440;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }" if (parenthesized_expression "(*(undefined4 **)(puVar16 + 0x98) != param_10)" ( (binary_expression "*(undefined4 **)(puVar16 + 0x98) != param_10" (pointer_expression "*(undefined4 **)(puVar16 + 0x98)" * (cast_expression "(undefined4 **)(puVar16 + 0x98)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x98)" ( (binary_expression "puVar16 + 0x98" identifier + number_literal) )))) != identifier) )) (compound_statement "{\n            puVar3 = *(undefined4 **)(puVar16 + 0x98);\n            do {\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -8) = *param_10;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257440;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }" { (expression_statement "puVar3 = *(undefined4 **)(puVar16 + 0x98);" (assignment_expression "puVar3 = *(undefined4 **)(puVar16 + 0x98)" identifier = (pointer_expression "*(undefined4 **)(puVar16 + 0x98)" * (cast_expression "(undefined4 **)(puVar16 + 0x98)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x98)" ( (binary_expression "puVar16 + 0x98" identifier + number_literal) ))))) ;) (do_statement "do {\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -8) = *param_10;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257440;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);" do (compound_statement "{\n              iVar11 = *(int *)pcVar6;\n              *(undefined4 *)(puVar16 + -8) = *param_10;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(ctype **)(puVar16 + -0x10) = pcVar6;\n              pcVar1 = *(code **)(iVar11 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x257440;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            }" { (expression_statement "iVar11 = *(int *)pcVar6;" (assignment_expression "iVar11 = *(int *)pcVar6" identifier = (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(puVar16 + -8) = *param_10;" (assignment_expression "*(undefined4 *)(puVar16 + -8) = *param_10" (pointer_expression "*(undefined4 *)(puVar16 + -8)" * (cast_expression "(undefined4 *)(puVar16 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = (pointer_expression "*param_10" * identifier)) ;) (expression_statement "*(undefined4 *)(puVar16 + -0xc) = 0x2000;" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = 0x2000" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" * (cast_expression "(undefined4 *)(puVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(ctype **)(puVar16 + -0x10) = pcVar6;" (assignment_expression "*(ctype **)(puVar16 + -0x10) = pcVar6" (pointer_expression "*(ctype **)(puVar16 + -0x10)" * (cast_expression "(ctype **)(puVar16 + -0x10)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar11 + 8);" (assignment_expression "pcVar1 = *(code **)(iVar11 + 8)" identifier = (pointer_expression "*(code **)(iVar11 + 8)" * (cast_expression "(code **)(iVar11 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x257440;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x257440" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar4 = (*pcVar1)();" (assignment_expression "cVar4 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar4 == '\0') break;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" identifier = (binary_expression "param_10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar3 != param_10)" ( (binary_expression "puVar3 != param_10" identifier != identifier) )) ;) })) (expression_statement "*(undefined4 **)(puVar16 + 0x94) = param_10;" (assignment_expression "*(undefined4 **)(puVar16 + 0x94) = param_10" (pointer_expression "*(undefined4 **)(puVar16 + 0x94)" * (cast_expression "(undefined4 **)(puVar16 + 0x94)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x94)" ( (binary_expression "puVar16 + 0x94" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar11 = *(int *)(puVar16 + 0xc);" (assignment_expression "iVar11 = *(int *)(puVar16 + 0xc)" identifier = (pointer_expression "*(int *)(puVar16 + 0xc)" * (cast_expression "(int *)(puVar16 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0xc)" ( (binary_expression "puVar16 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(ctype **)(puVar16 + 8) = pcVar6;" (assignment_expression "*(ctype **)(puVar16 + 8) = pcVar6" (pointer_expression "*(ctype **)(puVar16 + 8)" * (cast_expression "(ctype **)(puVar16 + 8)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 8)" ( (binary_expression "puVar16 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "bVar10 = iVar11 == -1;" (assignment_expression "bVar10 = iVar11 == -1" identifier = (binary_expression "iVar11 == -1" identifier == number_literal)) ;) (expression_statement "bVar14 = param_3 != (int *)0x0 && (bool)bVar10;" (assignment_expression "bVar14 = param_3 != (int *)0x0 && (bool)bVar10" identifier = (binary_expression "param_3 != (int *)0x0 && (bool)bVar10" (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (cast_expression "(bool)bVar10" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar14) goto LAB_002574dc;" if (parenthesized_expression "(bVar14)" ( identifier )) (goto_statement "goto LAB_002574dc;" goto statement_identifier ;)) (labeled_statement "LAB_00257468:\n          bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];" statement_identifier : (expression_statement "bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];" (assignment_expression "bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26]" identifier = (binary_expression "*(int *)(puVar16 + 4) != 0 & puVar16[0x26]" (binary_expression "*(int *)(puVar16 + 4) != 0" (pointer_expression "*(int *)(puVar16 + 4)" * (cast_expression "(int *)(puVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) )))) != number_literal) & (subscript_expression "puVar16[0x26]" identifier [ number_literal ]))) ;)) (expression_statement "bVar15 = (bool)bVar10;" (assignment_expression "bVar15 = (bool)bVar10" identifier = (cast_expression "(bool)bVar10" ( (type_descriptor "bool" primitive_type) ) identifier)) ;) (if_statement "if (bVar13 != 0) goto LAB_00257510;" if (parenthesized_expression "(bVar13 != 0)" ( (binary_expression "bVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00257510;" goto statement_identifier ;)) (while_statement "while ((bool)puVar16[0x26] != bVar15) {\n            while( true ) {\n              iVar17 = iVar11;\n              if ((param_3 != (int *)0x0) && (bVar10 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = **(int **)(puVar16 + 8);\n              *(int *)(puVar16 + -8) = iVar17;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 8);\n              pcVar1 = *(code **)(iVar7 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2574ab;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x28);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;\n                (*pcVar1)();\n              }\n              iVar11 = -1;\n              bVar10 = true;\n              bVar14 = param_3 != (int *)0x0;\n              if (!bVar14) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }\n              bVar15 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar15 = bVar14;\n              }\n              bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n              if (bVar13 == 0) break;\nLAB_00257510:\n              piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n              if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n                iVar17 = *piVar2;\n              }\n              else {\n                puVar16[0x27] = bVar10;\n                puVar16[0xc] = bVar13;\n                iVar17 = **(int **)(puVar16 + 4);\n                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0x27];\n                bVar13 = puVar16[0xc];\n              }\n              uVar9 = 0;\n              if (iVar17 != -1) {\n                bVar13 = 0;\n                uVar9 = *(undefined4 *)(puVar16 + 4);\n              }\n              *(undefined4 *)(puVar16 + 4) = uVar9;\n              if ((bool)bVar13 == bVar15) goto LAB_00257548;\n            }\n          }" while (parenthesized_expression "((bool)puVar16[0x26] != bVar15)" ( (binary_expression "(bool)puVar16[0x26] != bVar15" (cast_expression "(bool)puVar16[0x26]" ( (type_descriptor "bool" primitive_type) ) (subscript_expression "puVar16[0x26]" identifier [ number_literal ])) != identifier) )) (compound_statement "{\n            while( true ) {\n              iVar17 = iVar11;\n              if ((param_3 != (int *)0x0) && (bVar10 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = **(int **)(puVar16 + 8);\n              *(int *)(puVar16 + -8) = iVar17;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 8);\n              pcVar1 = *(code **)(iVar7 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2574ab;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x28);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;\n                (*pcVar1)();\n              }\n              iVar11 = -1;\n              bVar10 = true;\n              bVar14 = param_3 != (int *)0x0;\n              if (!bVar14) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }\n              bVar15 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar15 = bVar14;\n              }\n              bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n              if (bVar13 == 0) break;\nLAB_00257510:\n              piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n              if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n                iVar17 = *piVar2;\n              }\n              else {\n                puVar16[0x27] = bVar10;\n                puVar16[0xc] = bVar13;\n                iVar17 = **(int **)(puVar16 + 4);\n                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0x27];\n                bVar13 = puVar16[0xc];\n              }\n              uVar9 = 0;\n              if (iVar17 != -1) {\n                bVar13 = 0;\n                uVar9 = *(undefined4 *)(puVar16 + 4);\n              }\n              *(undefined4 *)(puVar16 + 4) = uVar9;\n              if ((bool)bVar13 == bVar15) goto LAB_00257548;\n            }\n          }" { (while_statement "while( true ) {\n              iVar17 = iVar11;\n              if ((param_3 != (int *)0x0) && (bVar10 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = **(int **)(puVar16 + 8);\n              *(int *)(puVar16 + -8) = iVar17;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 8);\n              pcVar1 = *(code **)(iVar7 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2574ab;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x28);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;\n                (*pcVar1)();\n              }\n              iVar11 = -1;\n              bVar10 = true;\n              bVar14 = param_3 != (int *)0x0;\n              if (!bVar14) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }\n              bVar15 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar15 = bVar14;\n              }\n              bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n              if (bVar13 == 0) break;\nLAB_00257510:\n              piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n              if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n                iVar17 = *piVar2;\n              }\n              else {\n                puVar16[0x27] = bVar10;\n                puVar16[0xc] = bVar13;\n                iVar17 = **(int **)(puVar16 + 4);\n                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0x27];\n                bVar13 = puVar16[0xc];\n              }\n              uVar9 = 0;\n              if (iVar17 != -1) {\n                bVar13 = 0;\n                uVar9 = *(undefined4 *)(puVar16 + 4);\n              }\n              *(undefined4 *)(puVar16 + 4) = uVar9;\n              if ((bool)bVar13 == bVar15) goto LAB_00257548;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              iVar17 = iVar11;\n              if ((param_3 != (int *)0x0) && (bVar10 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = **(int **)(puVar16 + 8);\n              *(int *)(puVar16 + -8) = iVar17;\n              *(undefined4 *)(puVar16 + -0xc) = 0x2000;\n              *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 8);\n              pcVar1 = *(code **)(iVar7 + 8);\n              *(undefined4 *)(puVar16 + -0x14) = 0x2574ab;\n              cVar4 = (*pcVar1)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x28);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;\n                (*pcVar1)();\n              }\n              iVar11 = -1;\n              bVar10 = true;\n              bVar14 = param_3 != (int *)0x0;\n              if (!bVar14) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }\n              bVar15 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar15 = bVar14;\n              }\n              bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];\n              if (bVar13 == 0) break;\nLAB_00257510:\n              piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);\n              if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n                iVar17 = *piVar2;\n              }\n              else {\n                puVar16[0x27] = bVar10;\n                puVar16[0xc] = bVar13;\n                iVar17 = **(int **)(puVar16 + 4);\n                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0x27];\n                bVar13 = puVar16[0xc];\n              }\n              uVar9 = 0;\n              if (iVar17 != -1) {\n                bVar13 = 0;\n                uVar9 = *(undefined4 *)(puVar16 + 4);\n              }\n              *(undefined4 *)(puVar16 + 4) = uVar9;\n              if ((bool)bVar13 == bVar15) goto LAB_00257548;\n            }" { (expression_statement "iVar17 = iVar11;" (assignment_expression "iVar17 = iVar11" identifier = identifier) ;) (if_statement "if ((param_3 != (int *)0x0) && (bVar10 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" if (parenthesized_expression "((param_3 != (int *)0x0) && (bVar10 != 0))" ( (binary_expression "(param_3 != (int *)0x0) && (bVar10 != 0)" (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar10 != 0)" ( (binary_expression "bVar10 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                  iVar17 = *(int *)param_3[2];\n                }" { (expression_statement "iVar17 = *(int *)param_3[2];" (assignment_expression "iVar17 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }" else (compound_statement "{\n                  iVar17 = *param_3;\n                  *(int **)(puVar16 + -0x10) = param_3;\n                  pcVar1 = *(code **)(iVar17 + 0x24);\n                  *(undefined4 *)(puVar16 + -0x14) = 0x2577f9;\n                  iVar17 = (*pcVar1)();\n                }" { (expression_statement "iVar17 = *param_3;" (assignment_expression "iVar17 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "*(int **)(puVar16 + -0x10) = param_3;" (assignment_expression "*(int **)(puVar16 + -0x10) = param_3" (pointer_expression "*(int **)(puVar16 + -0x10)" * (cast_expression "(int **)(puVar16 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar17 + 0x24);" (assignment_expression "pcVar1 = *(code **)(iVar17 + 0x24)" identifier = (pointer_expression "*(code **)(iVar17 + 0x24)" * (cast_expression "(code **)(iVar17 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x24)" ( (binary_expression "iVar17 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x2577f9;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x2577f9" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar17 = (*pcVar1)();" (assignment_expression "iVar17 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }" if (parenthesized_expression "(iVar17 == -1)" ( (binary_expression "iVar17 == -1" identifier == number_literal) )) (compound_statement "{\n                  param_3 = (int *)0x0;\n                }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (expression_statement "iVar7 = **(int **)(puVar16 + 8);" (assignment_expression "iVar7 = **(int **)(puVar16 + 8)" identifier = (pointer_expression "**(int **)(puVar16 + 8)" * (pointer_expression "*(int **)(puVar16 + 8)" * (cast_expression "(int **)(puVar16 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 8)" ( (binary_expression "puVar16 + 8" identifier + number_literal) )))))) ;) (expression_statement "*(int *)(puVar16 + -8) = iVar17;" (assignment_expression "*(int *)(puVar16 + -8) = iVar17" (pointer_expression "*(int *)(puVar16 + -8)" * (cast_expression "(int *)(puVar16 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -8)" ( (binary_expression "puVar16 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar16 + -0xc) = 0x2000;" (assignment_expression "*(undefined4 *)(puVar16 + -0xc) = 0x2000" (pointer_expression "*(undefined4 *)(puVar16 + -0xc)" * (cast_expression "(undefined4 *)(puVar16 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0xc)" ( (binary_expression "puVar16 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 8);" (assignment_expression "*(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 8)" (pointer_expression "*(int **)(puVar16 + -0x10)" * (cast_expression "(int **)(puVar16 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(int **)(puVar16 + 8)" * (cast_expression "(int **)(puVar16 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 8)" ( (binary_expression "puVar16 + 8" identifier + number_literal) ))))) ;) (expression_statement "pcVar1 = *(code **)(iVar7 + 8);" (assignment_expression "pcVar1 = *(code **)(iVar7 + 8)" identifier = (pointer_expression "*(code **)(iVar7 + 8)" * (cast_expression "(code **)(iVar7 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x2574ab;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x2574ab" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "cVar4 = (*pcVar1)();" (assignment_expression "cVar4 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar4 == '\0') goto LAB_00257548;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00257548;" goto statement_identifier ;)) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x28);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;\n                (*pcVar1)();\n              }" if (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" ( (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                param_3[2] = param_3[2] + 4;\n              }" { (expression_statement "param_3[2] = param_3[2] + 4;" (assignment_expression "param_3[2] = param_3[2] + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (binary_expression "param_3[2] + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x28);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;\n                (*pcVar1)();\n              }" else (compound_statement "{\n                iVar11 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar11 + 0x28);\n                *(undefined4 *)(puVar16 + -0x14) = 0x2575f9;\n                (*pcVar1)();\n              }" { (expression_statement "iVar11 = *param_3;" (assignment_expression "iVar11 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "*(int **)(puVar16 + -0x10) = param_3;" (assignment_expression "*(int **)(puVar16 + -0x10) = param_3" (pointer_expression "*(int **)(puVar16 + -0x10)" * (cast_expression "(int **)(puVar16 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar11 + 0x28);" (assignment_expression "pcVar1 = *(code **)(iVar11 + 0x28)" identifier = (pointer_expression "*(code **)(iVar11 + 0x28)" * (cast_expression "(code **)(iVar11 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x28)" ( (binary_expression "iVar11 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x2575f9;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x2575f9" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar1)();" (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( ))) ;) }))) (expression_statement "iVar11 = -1;" (assignment_expression "iVar11 = -1" identifier = number_literal) ;) (expression_statement "bVar10 = true;" (assignment_expression "bVar10 = true" identifier = true) ;) (expression_statement "bVar14 = param_3 != (int *)0x0;" (assignment_expression "bVar14 = param_3 != (int *)0x0" identifier = (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (!bVar14) goto LAB_00257468;" if (parenthesized_expression "(!bVar14)" ( (unary_expression "!bVar14" ! identifier) )) (goto_statement "goto LAB_00257468;" goto statement_identifier ;)) (labeled_statement "LAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }" statement_identifier : (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                iVar17 = *(int *)param_3[2];\n              }" { (expression_statement "iVar17 = *(int *)param_3[2];" (assignment_expression "iVar17 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }" else (compound_statement "{\n                puVar16[0xc] = bVar10;\n                iVar17 = *param_3;\n                *(int **)(puVar16 + -0x10) = param_3;\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x257765;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0xc];\n              }" { (expression_statement "puVar16[0xc] = bVar10;" (assignment_expression "puVar16[0xc] = bVar10" (subscript_expression "puVar16[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar17 = *param_3;" (assignment_expression "iVar17 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "*(int **)(puVar16 + -0x10) = param_3;" (assignment_expression "*(int **)(puVar16 + -0x10) = param_3" (pointer_expression "*(int **)(puVar16 + -0x10)" * (cast_expression "(int **)(puVar16 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar1 = *(code **)(iVar17 + 0x24);" (assignment_expression "pcVar1 = *(code **)(iVar17 + 0x24)" identifier = (pointer_expression "*(code **)(iVar17 + 0x24)" * (cast_expression "(code **)(iVar17 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x24)" ( (binary_expression "iVar17 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x257765;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x257765" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar17 = (*pcVar1)();" (assignment_expression "iVar17 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "bVar10 = puVar16[0xc];" (assignment_expression "bVar10 = puVar16[0xc]" identifier = (subscript_expression "puVar16[0xc]" identifier [ number_literal ])) ;) })))) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (if_statement "if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar15 = bVar14;\n              }" if (parenthesized_expression "(iVar17 == -1)" ( (binary_expression "iVar17 == -1" identifier == number_literal) )) (compound_statement "{\n                param_3 = (int *)0x0;\n                bVar15 = bVar14;\n              }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar15 = bVar14;" (assignment_expression "bVar15 = bVar14" identifier = identifier) ;) })) (expression_statement "bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26];" (assignment_expression "bVar13 = *(int *)(puVar16 + 4) != 0 & puVar16[0x26]" identifier = (binary_expression "*(int *)(puVar16 + 4) != 0 & puVar16[0x26]" (binary_expression "*(int *)(puVar16 + 4) != 0" (pointer_expression "*(int *)(puVar16 + 4)" * (cast_expression "(int *)(puVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) )))) != number_literal) & (subscript_expression "puVar16[0x26]" identifier [ number_literal ]))) ;) (if_statement "if (bVar13 == 0) break;" if (parenthesized_expression "(bVar13 == 0)" ( (binary_expression "bVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00257510:\n              piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);" statement_identifier : (expression_statement "piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8);" (assignment_expression "piVar2 = *(int **)(*(int *)(puVar16 + 4) + 8)" identifier = (pointer_expression "*(int **)(*(int *)(puVar16 + 4) + 8)" * (cast_expression "(int **)(*(int *)(puVar16 + 4) + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar16 + 4) + 8)" ( (binary_expression "*(int *)(puVar16 + 4) + 8" (pointer_expression "*(int *)(puVar16 + 4)" * (cast_expression "(int *)(puVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) )))) + number_literal) ))))) ;)) (if_statement "if (piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)) {\n                iVar17 = *piVar2;\n              }\n              else {\n                puVar16[0x27] = bVar10;\n                puVar16[0xc] = bVar13;\n                iVar17 = **(int **)(puVar16 + 4);\n                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0x27];\n                bVar13 = puVar16[0xc];\n              }" if (parenthesized_expression "(piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc))" ( (binary_expression "piVar2 < *(int **)(*(int *)(puVar16 + 4) + 0xc)" identifier < (pointer_expression "*(int **)(*(int *)(puVar16 + 4) + 0xc)" * (cast_expression "(int **)(*(int *)(puVar16 + 4) + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar16 + 4) + 0xc)" ( (binary_expression "*(int *)(puVar16 + 4) + 0xc" (pointer_expression "*(int *)(puVar16 + 4)" * (cast_expression "(int *)(puVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (compound_statement "{\n                iVar17 = *piVar2;\n              }" { (expression_statement "iVar17 = *piVar2;" (assignment_expression "iVar17 = *piVar2" identifier = (pointer_expression "*piVar2" * identifier)) ;) }) (else_clause "else {\n                puVar16[0x27] = bVar10;\n                puVar16[0xc] = bVar13;\n                iVar17 = **(int **)(puVar16 + 4);\n                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0x27];\n                bVar13 = puVar16[0xc];\n              }" else (compound_statement "{\n                puVar16[0x27] = bVar10;\n                puVar16[0xc] = bVar13;\n                iVar17 = **(int **)(puVar16 + 4);\n                *(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);\n                pcVar1 = *(code **)(iVar17 + 0x24);\n                *(undefined4 *)(puVar16 + -0x14) = 0x25778d;\n                iVar17 = (*pcVar1)();\n                bVar10 = puVar16[0x27];\n                bVar13 = puVar16[0xc];\n              }" { (expression_statement "puVar16[0x27] = bVar10;" (assignment_expression "puVar16[0x27] = bVar10" (subscript_expression "puVar16[0x27]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar16[0xc] = bVar13;" (assignment_expression "puVar16[0xc] = bVar13" (subscript_expression "puVar16[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar17 = **(int **)(puVar16 + 4);" (assignment_expression "iVar17 = **(int **)(puVar16 + 4)" identifier = (pointer_expression "**(int **)(puVar16 + 4)" * (pointer_expression "*(int **)(puVar16 + 4)" * (cast_expression "(int **)(puVar16 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) )))))) ;) (expression_statement "*(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4);" (assignment_expression "*(int **)(puVar16 + -0x10) = *(int **)(puVar16 + 4)" (pointer_expression "*(int **)(puVar16 + -0x10)" * (cast_expression "(int **)(puVar16 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + -0x10)" ( (binary_expression "puVar16 + -0x10" identifier + number_literal) )))) = (pointer_expression "*(int **)(puVar16 + 4)" * (cast_expression "(int **)(puVar16 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar1 = *(code **)(iVar17 + 0x24);" (assignment_expression "pcVar1 = *(code **)(iVar17 + 0x24)" identifier = (pointer_expression "*(code **)(iVar17 + 0x24)" * (cast_expression "(code **)(iVar17 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x24)" ( (binary_expression "iVar17 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar16 + -0x14) = 0x25778d;" (assignment_expression "*(undefined4 *)(puVar16 + -0x14) = 0x25778d" (pointer_expression "*(undefined4 *)(puVar16 + -0x14)" * (cast_expression "(undefined4 *)(puVar16 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + -0x14)" ( (binary_expression "puVar16 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar17 = (*pcVar1)();" (assignment_expression "iVar17 = (*pcVar1)()" identifier = (call_expression "(*pcVar1)()" (parenthesized_expression "(*pcVar1)" ( (pointer_expression "*pcVar1" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "bVar10 = puVar16[0x27];" (assignment_expression "bVar10 = puVar16[0x27]" identifier = (subscript_expression "puVar16[0x27]" identifier [ number_literal ])) ;) (expression_statement "bVar13 = puVar16[0xc];" (assignment_expression "bVar13 = puVar16[0xc]" identifier = (subscript_expression "puVar16[0xc]" identifier [ number_literal ])) ;) }))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (if_statement "if (iVar17 != -1) {\n                bVar13 = 0;\n                uVar9 = *(undefined4 *)(puVar16 + 4);\n              }" if (parenthesized_expression "(iVar17 != -1)" ( (binary_expression "iVar17 != -1" identifier != number_literal) )) (compound_statement "{\n                bVar13 = 0;\n                uVar9 = *(undefined4 *)(puVar16 + 4);\n              }" { (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = *(undefined4 *)(puVar16 + 4);" (assignment_expression "uVar9 = *(undefined4 *)(puVar16 + 4)" identifier = (pointer_expression "*(undefined4 *)(puVar16 + 4)" * (cast_expression "(undefined4 *)(puVar16 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) ))))) ;) })) (expression_statement "*(undefined4 *)(puVar16 + 4) = uVar9;" (assignment_expression "*(undefined4 *)(puVar16 + 4) = uVar9" (pointer_expression "*(undefined4 *)(puVar16 + 4)" * (cast_expression "(undefined4 *)(puVar16 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 4)" ( (binary_expression "puVar16 + 4" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((bool)bVar13 == bVar15) goto LAB_00257548;" if (parenthesized_expression "((bool)bVar13 == bVar15)" ( (binary_expression "(bool)bVar13 == bVar15" (cast_expression "(bool)bVar13" ( (type_descriptor "bool" primitive_type) ) identifier) == identifier) )) (goto_statement "goto LAB_00257548;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_00257548:\n          *(int *)(puVar16 + 0xc) = iVar11;" statement_identifier : (expression_statement "*(int *)(puVar16 + 0xc) = iVar11;" (assignment_expression "*(int *)(puVar16 + 0xc) = iVar11" (pointer_expression "*(int *)(puVar16 + 0xc)" * (cast_expression "(int *)(puVar16 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0xc)" ( (binary_expression "puVar16 + 0xc" identifier + number_literal) )))) = identifier) ;)) (expression_statement "pcVar6 = *(ctype **)(puVar16 + 8);" (assignment_expression "pcVar6 = *(ctype **)(puVar16 + 8)" identifier = (pointer_expression "*(ctype **)(puVar16 + 8)" * (cast_expression "(ctype **)(puVar16 + 8)" ( (type_descriptor "ctype **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 8)" ( (binary_expression "puVar16 + 8" identifier + number_literal) ))))) ;) (expression_statement "param_10 = *(undefined4 **)(puVar16 + 0x94);" (assignment_expression "param_10 = *(undefined4 **)(puVar16 + 0x94)" identifier = (pointer_expression "*(undefined4 **)(puVar16 + 0x94)" * (cast_expression "(undefined4 **)(puVar16 + 0x94)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x94)" ( (binary_expression "puVar16 + 0x94" identifier + number_literal) ))))) ;) }))) (if_statement "if (param_10 == *(undefined4 **)(puVar16 + 0x98)) break;" if (parenthesized_expression "(param_10 == *(undefined4 **)(puVar16 + 0x98))" ( (binary_expression "param_10 == *(undefined4 **)(puVar16 + 0x98)" identifier == (pointer_expression "*(undefined4 **)(puVar16 + 0x98)" * (cast_expression "(undefined4 **)(puVar16 + 0x98)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x98)" ( (binary_expression "puVar16 + 0x98" identifier + number_literal) ))))) )) (break_statement "break;" break ;)) }))) }) while (parenthesized_expression "(**(int **)(puVar16 + 0x8c) == 0)" ( (binary_expression "**(int **)(puVar16 + 0x8c) == 0" (pointer_expression "**(int **)(puVar16 + 0x8c)" * (pointer_expression "*(int **)(puVar16 + 0x8c)" * (cast_expression "(int **)(puVar16 + 0x8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x8c)" ( (binary_expression "puVar16 + 0x8c" identifier + number_literal) ))))) == number_literal) )) ;) })) (expression_statement "piVar2 = *(int **)(puVar16 + 0x70);" (assignment_expression "piVar2 = *(int **)(puVar16 + 0x70)" identifier = (pointer_expression "*(int **)(puVar16 + 0x70)" * (cast_expression "(int **)(puVar16 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x70)" ( (binary_expression "puVar16 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(puVar16 + 0xc);" (assignment_expression "iVar11 = *(int *)(puVar16 + 0xc)" identifier = (pointer_expression "*(int *)(puVar16 + 0xc)" * (cast_expression "(int *)(puVar16 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0xc)" ( (binary_expression "puVar16 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*piVar2 = (int)param_3;" (assignment_expression "*piVar2 = (int)param_3" (pointer_expression "*piVar2" * identifier) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar2[1] = iVar11;" (assignment_expression "piVar2[1] = iVar11" (subscript_expression "piVar2[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "void FUN_002570e0(undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,\n                 undefined4 *param_10,undefined4 *param_11)\n\n{\n  int *piVar1;\n  code *pcVar2;\n  undefined4 *puVar3;\n  char cVar4;\n  char cVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  byte bVar9;\n  int iVar10;\n  char cVar11;\n  byte bVar12;\n  bool bVar13;\n  bool bVar14;\n  int *piVar15;\n  int *piVar16;\n  int iVar17;\n  int aiStackY_a0 [9];\n  undefined4 local_68;\n  byte local_64 [4];\n  int local_60 [5];\n  undefined4 local_4c;\n  bool local_46;\n  byte local_45;\n  int local_44 [2];\n  undefined **local_3c;\n  int local_38 [10];\n  \n  local_4c = &__DT_PLTGOT;\n  local_60[0] = param_4;\n  local_68 = param_5;\n  local_44[1] = param_6;\n  local_38[0] = param_7 + 0x6c;\n  piVar6 = (int *)FUN_0023c1d0(local_38[0]);\n  *param_8 = 0;\n  piVar16 = (int *)&stack0xffffff94;\n  if (param_10 != param_11) {\n    local_46 = local_44[1] == -1;\n    local_3c = local_4c + -0x4e0a4;\n    piVar16 = (int *)&stack0xffffff94;\n    do {\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    } while (**(int **)((int)piVar16 + 0x8c) == 0);\n  }\n  piVar6 = *(int **)((int)piVar16 + 0x70);\n  iVar10 = *(int *)((int)piVar16 + 0xc);\n  *piVar6 = (int)param_3;\n  piVar6[1] = iVar10;\n  return;\n}\n\n" (function_definition "void FUN_002570e0(undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,\n                 undefined4 *param_10,undefined4 *param_11)\n\n{\n  int *piVar1;\n  code *pcVar2;\n  undefined4 *puVar3;\n  char cVar4;\n  char cVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  byte bVar9;\n  int iVar10;\n  char cVar11;\n  byte bVar12;\n  bool bVar13;\n  bool bVar14;\n  int *piVar15;\n  int *piVar16;\n  int iVar17;\n  int aiStackY_a0 [9];\n  undefined4 local_68;\n  byte local_64 [4];\n  int local_60 [5];\n  undefined4 local_4c;\n  bool local_46;\n  byte local_45;\n  int local_44 [2];\n  undefined **local_3c;\n  int local_38 [10];\n  \n  local_4c = &__DT_PLTGOT;\n  local_60[0] = param_4;\n  local_68 = param_5;\n  local_44[1] = param_6;\n  local_38[0] = param_7 + 0x6c;\n  piVar6 = (int *)FUN_0023c1d0(local_38[0]);\n  *param_8 = 0;\n  piVar16 = (int *)&stack0xffffff94;\n  if (param_10 != param_11) {\n    local_46 = local_44[1] == -1;\n    local_3c = local_4c + -0x4e0a4;\n    piVar16 = (int *)&stack0xffffff94;\n    do {\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    } while (**(int **)((int)piVar16 + 0x8c) == 0);\n  }\n  piVar6 = *(int **)((int)piVar16 + 0x70);\n  iVar10 = *(int *)((int)piVar16 + 0xc);\n  *piVar6 = (int)param_3;\n  piVar6[1] = iVar10;\n  return;\n}" primitive_type (function_declarator "FUN_002570e0(undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,\n                 undefined4 *param_10,undefined4 *param_11)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,\n                 undefined4 *param_10,undefined4 *param_11)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "undefined4 *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "undefined4 param_9" type_identifier identifier) , (parameter_declaration "undefined4 *param_10" type_identifier (pointer_declarator "*param_10" * identifier)) , (parameter_declaration "undefined4 *param_11" type_identifier (pointer_declarator "*param_11" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  code *pcVar2;\n  undefined4 *puVar3;\n  char cVar4;\n  char cVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  byte bVar9;\n  int iVar10;\n  char cVar11;\n  byte bVar12;\n  bool bVar13;\n  bool bVar14;\n  int *piVar15;\n  int *piVar16;\n  int iVar17;\n  int aiStackY_a0 [9];\n  undefined4 local_68;\n  byte local_64 [4];\n  int local_60 [5];\n  undefined4 local_4c;\n  bool local_46;\n  byte local_45;\n  int local_44 [2];\n  undefined **local_3c;\n  int local_38 [10];\n  \n  local_4c = &__DT_PLTGOT;\n  local_60[0] = param_4;\n  local_68 = param_5;\n  local_44[1] = param_6;\n  local_38[0] = param_7 + 0x6c;\n  piVar6 = (int *)FUN_0023c1d0(local_38[0]);\n  *param_8 = 0;\n  piVar16 = (int *)&stack0xffffff94;\n  if (param_10 != param_11) {\n    local_46 = local_44[1] == -1;\n    local_3c = local_4c + -0x4e0a4;\n    piVar16 = (int *)&stack0xffffff94;\n    do {\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    } while (**(int **)((int)piVar16 + 0x8c) == 0);\n  }\n  piVar6 = *(int **)((int)piVar16 + 0x70);\n  iVar10 = *(int *)((int)piVar16 + 0xc);\n  *piVar6 = (int)param_3;\n  piVar6[1] = iVar10;\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "byte bVar12;" type_identifier identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "bool bVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int aiStackY_a0 [9];" primitive_type (array_declarator "aiStackY_a0 [9]" identifier [ number_literal ]) ;) (declaration "undefined4 local_68;" type_identifier identifier ;) (declaration "byte local_64 [4];" type_identifier (array_declarator "local_64 [4]" identifier [ number_literal ]) ;) (declaration "int local_60 [5];" primitive_type (array_declarator "local_60 [5]" identifier [ number_literal ]) ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "bool local_46;" primitive_type identifier ;) (declaration "byte local_45;" type_identifier identifier ;) (declaration "int local_44 [2];" primitive_type (array_declarator "local_44 [2]" identifier [ number_literal ]) ;) (declaration "undefined **local_3c;" type_identifier (pointer_declarator "**local_3c" * (pointer_declarator "*local_3c" * identifier)) ;) (declaration "int local_38 [10];" primitive_type (array_declarator "local_38 [10]" identifier [ number_literal ]) ;) (expression_statement "local_4c = &__DT_PLTGOT;" (assignment_expression "local_4c = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_60[0] = param_4;" (assignment_expression "local_60[0] = param_4" (subscript_expression "local_60[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_68 = param_5;" (assignment_expression "local_68 = param_5" identifier = identifier) ;) (expression_statement "local_44[1] = param_6;" (assignment_expression "local_44[1] = param_6" (subscript_expression "local_44[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_38[0] = param_7 + 0x6c;" (assignment_expression "local_38[0] = param_7 + 0x6c" (subscript_expression "local_38[0]" identifier [ number_literal ]) = (binary_expression "param_7 + 0x6c" identifier + number_literal)) ;) (expression_statement "piVar6 = (int *)FUN_0023c1d0(local_38[0]);" (assignment_expression "piVar6 = (int *)FUN_0023c1d0(local_38[0])" identifier = (cast_expression "(int *)FUN_0023c1d0(local_38[0])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0023c1d0(local_38[0])" identifier (argument_list "(local_38[0])" ( (subscript_expression "local_38[0]" identifier [ number_literal ]) ))))) ;) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "piVar16 = (int *)&stack0xffffff94;" (assignment_expression "piVar16 = (int *)&stack0xffffff94" identifier = (cast_expression "(int *)&stack0xffffff94" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffff94" & identifier))) ;) (if_statement "if (param_10 != param_11) {\n    local_46 = local_44[1] == -1;\n    local_3c = local_4c + -0x4e0a4;\n    piVar16 = (int *)&stack0xffffff94;\n    do {\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    } while (**(int **)((int)piVar16 + 0x8c) == 0);\n  }" if (parenthesized_expression "(param_10 != param_11)" ( (binary_expression "param_10 != param_11" identifier != identifier) )) (compound_statement "{\n    local_46 = local_44[1] == -1;\n    local_3c = local_4c + -0x4e0a4;\n    piVar16 = (int *)&stack0xffffff94;\n    do {\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    } while (**(int **)((int)piVar16 + 0x8c) == 0);\n  }" { (expression_statement "local_46 = local_44[1] == -1;" (assignment_expression "local_46 = local_44[1] == -1" identifier = (binary_expression "local_44[1] == -1" (subscript_expression "local_44[1]" identifier [ number_literal ]) == number_literal)) ;) (expression_statement "local_3c = local_4c + -0x4e0a4;" (assignment_expression "local_3c = local_4c + -0x4e0a4" identifier = (binary_expression "local_4c + -0x4e0a4" identifier + number_literal)) ;) (expression_statement "piVar16 = (int *)&stack0xffffff94;" (assignment_expression "piVar16 = (int *)&stack0xffffff94" identifier = (cast_expression "(int *)&stack0xffffff94" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xffffff94" & identifier))) ;) (do_statement "do {\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    } while (**(int **)((int)piVar16 + 0x8c) == 0);" do (compound_statement "{\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    }" { (expression_statement "*(bool *)(piVar16 + 2) = piVar16[3] == -1;" (assignment_expression "*(bool *)(piVar16 + 2) = piVar16[3] == -1" (pointer_expression "*(bool *)(piVar16 + 2)" * (cast_expression "(bool *)(piVar16 + 2)" ( (type_descriptor "bool *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 2)" ( (binary_expression "piVar16 + 2" identifier + number_literal) )))) = (binary_expression "piVar16[3] == -1" (subscript_expression "piVar16[3]" identifier [ number_literal ]) == number_literal)) ;) (expression_statement "bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);" (assignment_expression "bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2)" identifier = (binary_expression "param_3 != (int *)0x0 & *(byte *)(piVar16 + 2)" (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) & (pointer_expression "*(byte *)(piVar16 + 2)" * (cast_expression "(byte *)(piVar16 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 2)" ( (binary_expression "piVar16 + 2" identifier + number_literal) )))))) ;) (if_statement "if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        bVar12 = *(byte *)(piVar16 + 2);\n      }" { (expression_statement "bVar12 = *(byte *)(piVar16 + 2);" (assignment_expression "bVar12 = *(byte *)(piVar16 + 2)" identifier = (pointer_expression "*(byte *)(piVar16 + 2)" * (cast_expression "(byte *)(piVar16 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 2)" ( (binary_expression "piVar16 + 2" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }" else (compound_statement "{\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n          iVar10 = *(int *)param_3[2];\n        }" { (expression_statement "iVar10 = *(int *)param_3[2];" (assignment_expression "iVar10 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }" else (compound_statement "{\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }" { (expression_statement "*(byte *)((int)piVar16 + 0x27) = bVar9;" (assignment_expression "*(byte *)((int)piVar16 + 0x27) = bVar9" (pointer_expression "*(byte *)((int)piVar16 + 0x27)" * (cast_expression "(byte *)((int)piVar16 + 0x27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x27)" ( (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar10 = *param_3;" (assignment_expression "iVar10 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x24)" identifier = (pointer_expression "*(code **)(iVar10 + 0x24)" * (cast_expression "(code **)(iVar10 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x24)" ( (binary_expression "iVar10 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x257826;" (assignment_expression "piVar16[-5] = 0x257826" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "bVar9 = *(byte *)((int)piVar16 + 0x27);" (assignment_expression "bVar9 = *(byte *)((int)piVar16 + 0x27)" identifier = (pointer_expression "*(byte *)((int)piVar16 + 0x27)" * (cast_expression "(byte *)((int)piVar16 + 0x27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x27)" ( (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (if_statement "if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }" if (parenthesized_expression "(iVar10 == -1)" ( (binary_expression "iVar10 == -1" identifier == number_literal) )) (compound_statement "{\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar12 = bVar9;" (assignment_expression "bVar12 = bVar9" identifier = identifier) ;) })) }))) (expression_statement "bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);" (assignment_expression "bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26)" identifier = (binary_expression "piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26)" (binary_expression "piVar16[1] != 0" (subscript_expression "piVar16[1]" identifier [ number_literal ]) != number_literal) & (pointer_expression "*(byte *)((int)piVar16 + 0x26)" * (cast_expression "(byte *)((int)piVar16 + 0x26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x26)" ( (binary_expression "(int)piVar16 + 0x26" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }" if (parenthesized_expression "(bVar9 == 0)" ( (binary_expression "bVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }" { (if_statement "if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }" if (parenthesized_expression "(bVar12 == *(byte *)((int)piVar16 + 0x26))" ( (binary_expression "bVar12 == *(byte *)((int)piVar16 + 0x26)" identifier == (pointer_expression "*(byte *)((int)piVar16 + 0x26)" * (cast_expression "(byte *)((int)piVar16 + 0x26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x26)" ( (binary_expression "(int)piVar16 + 0x26" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }" { (labeled_statement "LAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;" statement_identifier : (expression_statement "*(undefined4 *)piVar16[0x23] = 6;" (assignment_expression "*(undefined4 *)piVar16[0x23] = 6" (pointer_expression "*(undefined4 *)piVar16[0x23]" * (cast_expression "(undefined4 *)piVar16[0x23]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x23]" identifier [ number_literal ]))) = number_literal) ;)) (break_statement "break;" break ;) })) }) (else_clause "else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }" else (compound_statement "{\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }" { (expression_statement "piVar8 = *(int **)(piVar16[1] + 8);" (assignment_expression "piVar8 = *(int **)(piVar16[1] + 8)" identifier = (pointer_expression "*(int **)(piVar16[1] + 8)" * (cast_expression "(int **)(piVar16[1] + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar16[1] + 8)" ( (binary_expression "piVar16[1] + 8" (subscript_expression "piVar16[1]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }" if (parenthesized_expression "(piVar8 < *(int **)(piVar16[1] + 0xc))" ( (binary_expression "piVar8 < *(int **)(piVar16[1] + 0xc)" identifier < (pointer_expression "*(int **)(piVar16[1] + 0xc)" * (cast_expression "(int **)(piVar16[1] + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar16[1] + 0xc)" ( (binary_expression "piVar16[1] + 0xc" (subscript_expression "piVar16[1]" identifier [ number_literal ]) + number_literal) ))))) )) (compound_statement "{\n          iVar10 = *piVar8;\n        }" { (expression_statement "iVar10 = *piVar8;" (assignment_expression "iVar10 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) }) (else_clause "else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }" else (compound_statement "{\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }" { (expression_statement "*(byte *)(piVar16 + 10) = bVar9;" (assignment_expression "*(byte *)(piVar16 + 10) = bVar9" (pointer_expression "*(byte *)(piVar16 + 10)" * (cast_expression "(byte *)(piVar16 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 10)" ( (binary_expression "piVar16 + 10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)((int)piVar16 + 0x27) = bVar12;" (assignment_expression "*(byte *)((int)piVar16 + 0x27) = bVar12" (pointer_expression "*(byte *)((int)piVar16 + 0x27)" * (cast_expression "(byte *)((int)piVar16 + 0x27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x27)" ( (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar10 = *(int *)piVar16[1];" (assignment_expression "iVar10 = *(int *)piVar16[1]" identifier = (pointer_expression "*(int *)piVar16[1]" * (cast_expression "(int *)piVar16[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[1]" identifier [ number_literal ])))) ;) (expression_statement "piVar16[-4] = piVar16[1];" (assignment_expression "piVar16[-4] = piVar16[1]" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (subscript_expression "piVar16[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x24)" identifier = (pointer_expression "*(code **)(iVar10 + 0x24)" * (cast_expression "(code **)(iVar10 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x24)" ( (binary_expression "iVar10 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x257848;" (assignment_expression "piVar16[-5] = 0x257848" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "bVar9 = *(byte *)(piVar16 + 10);" (assignment_expression "bVar9 = *(byte *)(piVar16 + 10)" identifier = (pointer_expression "*(byte *)(piVar16 + 10)" * (cast_expression "(byte *)(piVar16 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 10)" ( (binary_expression "piVar16 + 10" identifier + number_literal) ))))) ;) (expression_statement "bVar12 = *(byte *)((int)piVar16 + 0x27);" (assignment_expression "bVar12 = *(byte *)((int)piVar16 + 0x27)" identifier = (pointer_expression "*(byte *)((int)piVar16 + 0x27)" * (cast_expression "(byte *)((int)piVar16 + 0x27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x27)" ( (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (if_statement "if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }" if (parenthesized_expression "(iVar10 != -1)" ( (binary_expression "iVar10 != -1" identifier != number_literal) )) (compound_statement "{\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }" { (expression_statement "bVar9 = 0;" (assignment_expression "bVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = piVar16[1];" (assignment_expression "iVar17 = piVar16[1]" identifier = (subscript_expression "piVar16[1]" identifier [ number_literal ])) ;) })) (expression_statement "piVar16[1] = iVar17;" (assignment_expression "piVar16[1] = iVar17" (subscript_expression "piVar16[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (bVar12 == bVar9) goto LAB_002575b3;" if (parenthesized_expression "(bVar12 == bVar9)" ( (binary_expression "bVar12 == bVar9" identifier == identifier) )) (goto_statement "goto LAB_002575b3;" goto statement_identifier ;)) }))) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar16[-2] = 0;" (assignment_expression "piVar16[-2] = 0" (subscript_expression "piVar16[-2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar16[-3] = *param_10;" (assignment_expression "piVar16[-3] = *param_10" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = (pointer_expression "*param_10" * identifier)) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x30);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x30)" identifier = (pointer_expression "*(code **)(iVar10 + 0x30)" * (cast_expression "(code **)(iVar10 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x25727f;" (assignment_expression "piVar16[-5] = 0x25727f" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar4 = (*pcVar2)();" (assignment_expression "cVar4 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }" if (parenthesized_expression "(cVar4 == '%')" ( (binary_expression "cVar4 == '%'" identifier == (char_literal "'%'" ' character ')) )) (compound_statement "{\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }" { (expression_statement "piVar16[2] = (int)(param_10 + 1);" (assignment_expression "piVar16[2] = (int)(param_10 + 1)" (subscript_expression "piVar16[2]" identifier [ number_literal ]) = (cast_expression "(int)(param_10 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_10 + 1)" ( (binary_expression "param_10 + 1" identifier + number_literal) )))) ;) (if_statement "if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }" if (parenthesized_expression "((undefined4 *)piVar16[0x26] == param_10 + 1)" ( (binary_expression "(undefined4 *)piVar16[0x26] == param_10 + 1" (cast_expression "(undefined4 *)piVar16[0x26]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x26]" identifier [ number_literal ])) == (binary_expression "param_10 + 1" identifier + number_literal)) )) (compound_statement "{\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }" { (labeled_statement "LAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;" statement_identifier : (expression_statement "*(undefined4 *)piVar16[0x23] = 4;" (assignment_expression "*(undefined4 *)piVar16[0x23] = 4" (pointer_expression "*(undefined4 *)piVar16[0x23]" * (cast_expression "(undefined4 *)piVar16[0x23]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x23]" identifier [ number_literal ]))) = number_literal) ;)) (break_statement "break;" break ;) })) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar16[-2] = 0;" (assignment_expression "piVar16[-2] = 0" (subscript_expression "piVar16[-2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar16[-3] = param_10[1];" (assignment_expression "piVar16[-3] = param_10[1]" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = (subscript_expression "param_10[1]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x30);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x30)" identifier = (pointer_expression "*(code **)(iVar10 + 0x30)" * (cast_expression "(code **)(iVar10 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x2572ad;" (assignment_expression "piVar16[-5] = 0x2572ad" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar4 = (*pcVar2)();" (assignment_expression "cVar4 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }" if (parenthesized_expression "(cVar4 == 'E')" ( (binary_expression "cVar4 == 'E'" identifier == (char_literal "'E'" ' character ')) )) (compound_statement "{\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }" { (labeled_statement "LAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);" statement_identifier : (expression_statement "piVar16[2] = (int)(param_10 + 2);" (assignment_expression "piVar16[2] = (int)(param_10 + 2)" (subscript_expression "piVar16[2]" identifier [ number_literal ]) = (cast_expression "(int)(param_10 + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_10 + 2)" ( (binary_expression "param_10 + 2" identifier + number_literal) )))) ;)) (if_statement "if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;" if (parenthesized_expression "((undefined4 *)piVar16[0x26] == param_10 + 2)" ( (binary_expression "(undefined4 *)piVar16[0x26] == param_10 + 2" (cast_expression "(undefined4 *)piVar16[0x26]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x26]" identifier [ number_literal ])) == (binary_expression "param_10 + 2" identifier + number_literal)) )) (goto_statement "goto LAB_00257861;" goto statement_identifier ;)) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar16[-2] = 0;" (assignment_expression "piVar16[-2] = 0" (subscript_expression "piVar16[-2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar16[-3] = param_10[2];" (assignment_expression "piVar16[-3] = param_10[2]" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = (subscript_expression "param_10[2]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x30);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x30)" identifier = (pointer_expression "*(code **)(iVar10 + 0x30)" * (cast_expression "(code **)(iVar10 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x25762b;" (assignment_expression "piVar16[-5] = 0x25762b" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar5 = (*pcVar2)();" (assignment_expression "cVar5 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar10 = (int)cVar4;" (assignment_expression "iVar10 = (int)cVar4" identifier = (cast_expression "(int)cVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar11 = cVar4;" (assignment_expression "cVar11 = cVar4" identifier = identifier) ;) }) (else_clause "else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }" else (compound_statement "{\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "cVar11 = '\0';" (assignment_expression "cVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "cVar5 = cVar4;" (assignment_expression "cVar5 = cVar4" identifier = identifier) ;) (if_statement "if (cVar4 == 'O') goto LAB_00257608;" if (parenthesized_expression "(cVar4 == 'O')" ( (binary_expression "cVar4 == 'O'" identifier == (char_literal "'O'" ' character ')) )) (goto_statement "goto LAB_00257608;" goto statement_identifier ;)) }))) (expression_statement "*(char *)((int)piVar16 + 0x27) = cVar11;" (assignment_expression "*(char *)((int)piVar16 + 0x27) = cVar11" (pointer_expression "*(char *)((int)piVar16 + 0x27)" * (cast_expression "(char *)((int)piVar16 + 0x27)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x27)" ( (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar17 = (int)cVar5;" (assignment_expression "iVar17 = (int)cVar5" identifier = (cast_expression "(int)cVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);" (assignment_expression "pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20)" identifier = (pointer_expression "*(code **)(*(int *)piVar16[0x1d] + 0x20)" * (cast_expression "(code **)(*(int *)piVar16[0x1d] + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)piVar16[0x1d] + 0x20)" ( (binary_expression "*(int *)piVar16[0x1d] + 0x20" (pointer_expression "*(int *)piVar16[0x1d]" * (cast_expression "(int *)piVar16[0x1d]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x1d]" identifier [ number_literal ]))) + number_literal) ))))) ;) (if_statement "if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }" if (parenthesized_expression "(pcVar2 == (code *)piVar16[0xc])" ( (binary_expression "pcVar2 == (code *)piVar16[0xc]" identifier == (cast_expression "(code *)piVar16[0xc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0xc]" identifier [ number_literal ]))) )) (compound_statement "{\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }" { (expression_statement "piVar16[10] = iVar10;" (assignment_expression "piVar16[10] = iVar10" (subscript_expression "piVar16[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[-4] = piVar16[0xd];" (assignment_expression "piVar16[-4] = piVar16[0xd]" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (subscript_expression "piVar16[0xd]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-5] = 0x2572f4;" (assignment_expression "piVar16[-5] = 0x2572f4" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8 = (int *)FUN_0023c1d0();" (assignment_expression "piVar8 = (int *)FUN_0023c1d0()" identifier = (cast_expression "(int *)FUN_0023c1d0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0023c1d0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar10 = *piVar8;" (assignment_expression "iVar10 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "*(undefined4 *)piVar16[0x23] = 0;" (assignment_expression "*(undefined4 *)piVar16[0x23] = 0" (pointer_expression "*(undefined4 *)piVar16[0x23]" * (cast_expression "(undefined4 *)piVar16[0x23]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x23]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "piVar16[-3] = 0x25;" (assignment_expression "piVar16[-3] = 0x25" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar16[-4] = (int)piVar8;" (assignment_expression "piVar16[-4] = (int)piVar8" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x28);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x28)" identifier = (pointer_expression "*(code **)(iVar10 + 0x28)" * (cast_expression "(code **)(iVar10 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x25730b;" (assignment_expression "piVar16[-5] = 0x25730b" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "piVar16[0x10] = iVar10;" (assignment_expression "piVar16[0x10] = iVar10" (subscript_expression "piVar16[0x10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }" if (parenthesized_expression "(*(char *)((int)piVar16 + 0x27) == '\0')" ( (binary_expression "*(char *)((int)piVar16 + 0x27) == '\0'" (pointer_expression "*(char *)((int)piVar16 + 0x27)" * (cast_expression "(char *)((int)piVar16 + 0x27)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x27)" ( (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }" { (expression_statement "piVar16[0x11] = iVar17;" (assignment_expression "piVar16[0x11] = iVar17" (subscript_expression "piVar16[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[0x12] = 0;" (assignment_expression "piVar16[0x12] = 0" (subscript_expression "piVar16[0x12]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }" else (compound_statement "{\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }" { (expression_statement "piVar16[0x11] = piVar16[10];" (assignment_expression "piVar16[0x11] = piVar16[10]" (subscript_expression "piVar16[0x11]" identifier [ number_literal ]) = (subscript_expression "piVar16[10]" identifier [ number_literal ])) ;) (expression_statement "piVar16[0x12] = iVar17;" (assignment_expression "piVar16[0x12] = iVar17" (subscript_expression "piVar16[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[0x13] = 0;" (assignment_expression "piVar16[0x13] = 0" (subscript_expression "piVar16[0x13]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "piVar16[4] = (int)param_3;" (assignment_expression "piVar16[4] = (int)param_3" (subscript_expression "piVar16[4]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar16[5] = piVar16[3];" (assignment_expression "piVar16[5] = piVar16[3]" (subscript_expression "piVar16[5]" identifier [ number_literal ]) = (subscript_expression "piVar16[3]" identifier [ number_literal ])) ;) (expression_statement "piVar16[6] = piVar16[1];" (assignment_expression "piVar16[6] = piVar16[1]" (subscript_expression "piVar16[6]" identifier [ number_literal ]) = (subscript_expression "piVar16[1]" identifier [ number_literal ])) ;) (expression_statement "piVar16[7] = piVar16[0xb];" (assignment_expression "piVar16[7] = piVar16[0xb]" (subscript_expression "piVar16[7]" identifier [ number_literal ]) = (subscript_expression "piVar16[0xb]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-3] = (int)(piVar16 + 0x10);" (assignment_expression "piVar16[-3] = (int)(piVar16 + 0x10)" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = (cast_expression "(int)(piVar16 + 0x10)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar16 + 0x10)" ( (binary_expression "piVar16 + 0x10" identifier + number_literal) )))) ;) (expression_statement "piVar16[-4] = piVar16[0x24];" (assignment_expression "piVar16[-4] = piVar16[0x24]" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x24]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-5] = piVar16[0x23];" (assignment_expression "piVar16[-5] = piVar16[0x23]" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x23]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-6] = piVar16[0x22];" (assignment_expression "piVar16[-6] = piVar16[0x22]" (subscript_expression "piVar16[-6]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x22]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-7] = piVar16[7];" (assignment_expression "piVar16[-7] = piVar16[7]" (subscript_expression "piVar16[-7]" identifier [ number_literal ]) = (subscript_expression "piVar16[7]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-8] = piVar16[6];" (assignment_expression "piVar16[-8] = piVar16[6]" (subscript_expression "piVar16[-8]" identifier [ number_literal ]) = (subscript_expression "piVar16[6]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-9] = piVar16[5];" (assignment_expression "piVar16[-9] = piVar16[5]" (subscript_expression "piVar16[-9]" identifier [ number_literal ]) = (subscript_expression "piVar16[5]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-10] = piVar16[4];" (assignment_expression "piVar16[-10] = piVar16[4]" (subscript_expression "piVar16[-10]" identifier [ number_literal ]) = (subscript_expression "piVar16[4]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-0xb] = piVar16[0x1d];" (assignment_expression "piVar16[-0xb] = piVar16[0x1d]" (subscript_expression "piVar16[-0xb]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x1d]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-0xc] = (int)(piVar16 + 0xe);" (assignment_expression "piVar16[-0xc] = (int)(piVar16 + 0xe)" (subscript_expression "piVar16[-0xc]" identifier [ number_literal ]) = (cast_expression "(int)(piVar16 + 0xe)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar16 + 0xe)" ( (binary_expression "piVar16 + 0xe" identifier + number_literal) )))) ;) (expression_statement "piVar16[-0xd] = 0x25738d;" (assignment_expression "piVar16[-0xd] = 0x25738d" (subscript_expression "piVar16[-0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00255da0();" (call_expression "FUN_00255da0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar10 = piVar16[0xe];" (assignment_expression "iVar10 = piVar16[0xe]" identifier = (subscript_expression "piVar16[0xe]" identifier [ number_literal ])) ;) (expression_statement "param_3 = (int *)piVar16[0xd];" (assignment_expression "param_3 = (int *)piVar16[0xd]" identifier = (cast_expression "(int *)piVar16[0xd]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0xd]" identifier [ number_literal ]))) ;) (expression_statement "piVar16[4] = iVar10;" (assignment_expression "piVar16[4] = iVar10" (subscript_expression "piVar16[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[2] = iVar10;" (assignment_expression "piVar16[2] = iVar10" (subscript_expression "piVar16[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[3] = (int)param_3;" (assignment_expression "piVar16[3] = (int)param_3" (subscript_expression "piVar16[3]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cVar4 = param_3 != (int *)0x0 && iVar10 == -1;" (assignment_expression "cVar4 = param_3 != (int *)0x0 && iVar10 == -1" identifier = (binary_expression "param_3 != (int *)0x0 && iVar10 == -1" (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "iVar10 == -1" identifier == number_literal))) ;) (expression_statement "cVar11 = iVar10 == -1;" (assignment_expression "cVar11 = iVar10 == -1" identifier = (binary_expression "iVar10 == -1" identifier == number_literal)) ;) (if_statement "if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }" if (parenthesized_expression "((bool)cVar4)" ( (cast_expression "(bool)cVar4" ( (type_descriptor "bool" primitive_type) ) identifier) )) (compound_statement "{\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n              iVar10 = *(int *)param_3[2];\n            }" { (expression_statement "iVar10 = *(int *)param_3[2];" (assignment_expression "iVar10 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }" else (compound_statement "{\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }" { (expression_statement "*(char *)((int)piVar16 + 0x23) = cVar4;" (assignment_expression "*(char *)((int)piVar16 + 0x23) = cVar4" (pointer_expression "*(char *)((int)piVar16 + 0x23)" * (cast_expression "(char *)((int)piVar16 + 0x23)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x23)" ( (binary_expression "(int)piVar16 + 0x23" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar10 = *param_3;" (assignment_expression "iVar10 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "piVar16[-5] = piVar16[3];" (assignment_expression "piVar16[-5] = piVar16[3]" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = (subscript_expression "piVar16[3]" identifier [ number_literal ])) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x24)" identifier = (pointer_expression "*(code **)(iVar10 + 0x24)" * (cast_expression "(code **)(iVar10 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x24)" ( (binary_expression "iVar10 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-6] = 0x2578ab;" (assignment_expression "piVar16[-6] = 0x2578ab" (subscript_expression "piVar16[-6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "cVar4 = *(char *)((int)piVar16 + 0x23);" (assignment_expression "cVar4 = *(char *)((int)piVar16 + 0x23)" identifier = (pointer_expression "*(char *)((int)piVar16 + 0x23)" * (cast_expression "(char *)((int)piVar16 + 0x23)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x23)" ( (binary_expression "(int)piVar16 + 0x23" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (expression_statement "cVar11 = '\0';" (assignment_expression "cVar11 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }" if (parenthesized_expression "(iVar10 == -1)" ( (binary_expression "iVar10 == -1" identifier == number_literal) )) (compound_statement "{\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "cVar11 = cVar4;" (assignment_expression "cVar11 = cVar4" identifier = identifier) ;) })) })) (if_statement "if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }" if (parenthesized_expression "((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0'))" ( (binary_expression "(*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')" (parenthesized_expression "(*piVar16 == 0)" ( (binary_expression "*piVar16 == 0" (pointer_expression "*piVar16" * identifier) == number_literal) )) || (parenthesized_expression "(*(char *)((int)piVar16 + 0x22) == '\0')" ( (binary_expression "*(char *)((int)piVar16 + 0x22) == '\0'" (pointer_expression "*(char *)((int)piVar16 + 0x22)" * (cast_expression "(char *)((int)piVar16 + 0x22)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x22)" ( (binary_expression "(int)piVar16 + 0x22" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }" { (expression_statement "cVar4 = *(char *)((int)piVar16 + 0x22);" (assignment_expression "cVar4 = *(char *)((int)piVar16 + 0x22)" identifier = (pointer_expression "*(char *)((int)piVar16 + 0x22)" * (cast_expression "(char *)((int)piVar16 + 0x22)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x22)" ( (binary_expression "(int)piVar16 + 0x22" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }) (else_clause "else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }" else (compound_statement "{\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }" { (expression_statement "piVar8 = *(int **)(*piVar16 + 8);" (assignment_expression "piVar8 = *(int **)(*piVar16 + 8)" identifier = (pointer_expression "*(int **)(*piVar16 + 8)" * (cast_expression "(int **)(*piVar16 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar16 + 8)" ( (binary_expression "*piVar16 + 8" (pointer_expression "*piVar16" * identifier) + number_literal) ))))) ;) (if_statement "if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }" if (parenthesized_expression "(piVar8 < *(int **)(*piVar16 + 0xc))" ( (binary_expression "piVar8 < *(int **)(*piVar16 + 0xc)" identifier < (pointer_expression "*(int **)(*piVar16 + 0xc)" * (cast_expression "(int **)(*piVar16 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar16 + 0xc)" ( (binary_expression "*piVar16 + 0xc" (pointer_expression "*piVar16" * identifier) + number_literal) ))))) )) (compound_statement "{\n              iVar10 = *piVar8;\n            }" { (expression_statement "iVar10 = *piVar8;" (assignment_expression "iVar10 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) }) (else_clause "else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }" else (compound_statement "{\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }" { (expression_statement "iVar10 = *(int *)*piVar16;" (assignment_expression "iVar10 = *(int *)*piVar16" identifier = (pointer_expression "*(int *)*piVar16" * (cast_expression "(int *)*piVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar16" * identifier)))) ;) (expression_statement "piVar16[-5] = *piVar16;" (assignment_expression "piVar16[-5] = *piVar16" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x24)" identifier = (pointer_expression "*(code **)(iVar10 + 0x24)" * (cast_expression "(code **)(iVar10 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x24)" ( (binary_expression "iVar10 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-6] = 0x257893;" (assignment_expression "piVar16[-6] = 0x257893" (subscript_expression "piVar16[-6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) }))) (expression_statement "cVar4 = iVar10 == -1;" (assignment_expression "cVar4 = iVar10 == -1" identifier = (binary_expression "iVar10 == -1" identifier == number_literal)) ;) }))) (if_statement "if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }" if (parenthesized_expression "(cVar4 == cVar11)" ( (binary_expression "cVar4 == cVar11" identifier == identifier) )) (compound_statement "{\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }" { (expression_statement "*(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;" (assignment_expression "*(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2" (pointer_expression "*(uint *)piVar16[0x22]" * (cast_expression "(uint *)piVar16[0x22]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x22]" identifier [ number_literal ]))) = (binary_expression "*(uint *)piVar16[0x22] | 2" (pointer_expression "*(uint *)piVar16[0x22]" * (cast_expression "(uint *)piVar16[0x22]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x22]" identifier [ number_literal ]))) | number_literal)) ;) })) }) (else_clause "else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }" else (compound_statement "{\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }" { (expression_statement "piVar16[0x1e] = (int)param_3;" (assignment_expression "piVar16[0x1e] = (int)param_3" (subscript_expression "piVar16[0x1e]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar16[0x1f] = piVar16[3];" (assignment_expression "piVar16[0x1f] = piVar16[3]" (subscript_expression "piVar16[0x1f]" identifier [ number_literal ]) = (subscript_expression "piVar16[3]" identifier [ number_literal ])) ;) (expression_statement "piVar16[0x21] = piVar16[0xb];" (assignment_expression "piVar16[0x21] = piVar16[0xb]" (subscript_expression "piVar16[0x21]" identifier [ number_literal ]) = (subscript_expression "piVar16[0xb]" identifier [ number_literal ])) ;) (expression_statement "piVar16[0x20] = piVar16[1];" (assignment_expression "piVar16[0x20] = piVar16[1]" (subscript_expression "piVar16[0x20]" identifier [ number_literal ]) = (subscript_expression "piVar16[1]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-2] = iVar10;" (assignment_expression "piVar16[-2] = iVar10" (subscript_expression "piVar16[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[-3] = iVar17;" (assignment_expression "piVar16[-3] = iVar17" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[-4] = piVar16[0x24];" (assignment_expression "piVar16[-4] = piVar16[0x24]" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x24]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-5] = piVar16[0x23];" (assignment_expression "piVar16[-5] = piVar16[0x23]" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x23]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-6] = piVar16[0x22];" (assignment_expression "piVar16[-6] = piVar16[0x22]" (subscript_expression "piVar16[-6]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x22]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-7] = piVar16[0x21];" (assignment_expression "piVar16[-7] = piVar16[0x21]" (subscript_expression "piVar16[-7]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x21]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-8] = piVar16[0x20];" (assignment_expression "piVar16[-8] = piVar16[0x20]" (subscript_expression "piVar16[-8]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x20]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-9] = piVar16[0x1f];" (assignment_expression "piVar16[-9] = piVar16[0x1f]" (subscript_expression "piVar16[-9]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x1f]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-10] = piVar16[0x1e];" (assignment_expression "piVar16[-10] = piVar16[0x1e]" (subscript_expression "piVar16[-10]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x1e]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-0xb] = piVar16[0x1d];" (assignment_expression "piVar16[-0xb] = piVar16[0x1d]" (subscript_expression "piVar16[-0xb]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x1d]" identifier [ number_literal ])) ;) (expression_statement "piVar16[-0xc] = (int)(piVar16 + 0xe);" (assignment_expression "piVar16[-0xc] = (int)(piVar16 + 0xe)" (subscript_expression "piVar16[-0xc]" identifier [ number_literal ]) = (cast_expression "(int)(piVar16 + 0xe)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar16 + 0xe)" ( (binary_expression "piVar16 + 0xe" identifier + number_literal) )))) ;) (expression_statement "piVar16[-0xd] = 0x257721;" (assignment_expression "piVar16[-0xd] = 0x257721" (subscript_expression "piVar16[-0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar16[0x1d] = piVar16[0xd];" (assignment_expression "piVar16[0x1d] = piVar16[0xd]" (subscript_expression "piVar16[0x1d]" identifier [ number_literal ]) = (subscript_expression "piVar16[0xd]" identifier [ number_literal ])) ;) (expression_statement "param_3 = (int *)piVar16[0x1d];" (assignment_expression "param_3 = (int *)piVar16[0x1d]" identifier = (cast_expression "(int *)piVar16[0x1d]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x1d]" identifier [ number_literal ]))) ;) (expression_statement "piVar16[0x1e] = piVar16[0xe];" (assignment_expression "piVar16[0x1e] = piVar16[0xe]" (subscript_expression "piVar16[0x1e]" identifier [ number_literal ]) = (subscript_expression "piVar16[0xe]" identifier [ number_literal ])) ;) (expression_statement "piVar16[2] = piVar16[0x1e];" (assignment_expression "piVar16[2] = piVar16[0x1e]" (subscript_expression "piVar16[2]" identifier [ number_literal ]) = (subscript_expression "piVar16[0x1e]" identifier [ number_literal ])) ;) }))) (expression_statement "piVar15 = piVar16 + -1;" (assignment_expression "piVar15 = piVar16 + -1" identifier = (binary_expression "piVar16 + -1" identifier + number_literal)) ;) (expression_statement "param_10 = (undefined4 *)(piVar16[1] + 4);" (assignment_expression "param_10 = (undefined4 *)(piVar16[1] + 4)" identifier = (cast_expression "(undefined4 *)(piVar16[1] + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16[1] + 4)" ( (binary_expression "piVar16[1] + 4" (subscript_expression "piVar16[1]" identifier [ number_literal ]) + number_literal) )))) ;) (expression_statement "piVar1 = piVar16 + 0x25;" (assignment_expression "piVar1 = piVar16 + 0x25" identifier = (binary_expression "piVar16 + 0x25" identifier + number_literal)) ;) (expression_statement "piVar16 = piVar16 + -1;" (assignment_expression "piVar16 = piVar16 + -1" identifier = (binary_expression "piVar16 + -1" identifier + number_literal)) ;) (expression_statement "piVar8 = piVar15;" (assignment_expression "piVar8 = piVar15" identifier = identifier) ;) (if_statement "if (param_10 == (undefined4 *)*piVar1) break;" if (parenthesized_expression "(param_10 == (undefined4 *)*piVar1)" ( (binary_expression "param_10 == (undefined4 *)*piVar1" identifier == (cast_expression "(undefined4 *)*piVar1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) )) (break_statement "break;" break ;)) }) (else_clause "else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }" else (compound_statement "{\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }" { (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar16[-2] = *param_10;" (assignment_expression "piVar16[-2] = *param_10" (subscript_expression "piVar16[-2]" identifier [ number_literal ]) = (pointer_expression "*param_10" * identifier)) ;) (expression_statement "piVar16[-3] = 0x2000;" (assignment_expression "piVar16[-3] = 0x2000" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 8);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 8)" identifier = (pointer_expression "*(code **)(iVar10 + 8)" * (cast_expression "(code **)(iVar10 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x257191;" (assignment_expression "piVar16[-5] = 0x257191" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar4 = (*pcVar2)();" (assignment_expression "cVar4 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }" { (if_statement "if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }" if (parenthesized_expression "((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0'))" ( (binary_expression "(param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')" (parenthesized_expression "(param_3 == (int *)0x0)" ( (binary_expression "param_3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((char)piVar16[2] == '\0')" ( (binary_expression "(char)piVar16[2] == '\0'" (cast_expression "(char)piVar16[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar16[2]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }" { (expression_statement "iVar10 = piVar16[3];" (assignment_expression "iVar10 = piVar16[3]" identifier = (subscript_expression "piVar16[3]" identifier [ number_literal ])) ;) (labeled_statement "LAB_002571af:\n            iVar17 = *piVar6;" statement_identifier : (expression_statement "iVar17 = *piVar6;" (assignment_expression "iVar17 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;)) (expression_statement "piVar16[-3] = iVar10;" (assignment_expression "piVar16[-3] = iVar10" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar17 + 0x20);" (assignment_expression "pcVar2 = *(code **)(iVar17 + 0x20)" identifier = (pointer_expression "*(code **)(iVar17 + 0x20)" * (cast_expression "(code **)(iVar17 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x20)" ( (binary_expression "iVar17 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x2571ba;" (assignment_expression "piVar16[-5] = 0x2571ba" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar17 = (*pcVar2)();" (assignment_expression "iVar17 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar16[-3] = *param_10;" (assignment_expression "piVar16[-3] = *param_10" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = (pointer_expression "*param_10" * identifier)) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x20);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x20)" identifier = (pointer_expression "*(code **)(iVar10 + 0x20)" * (cast_expression "(code **)(iVar10 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x2571c7;" (assignment_expression "piVar16[-5] = 0x2571c7" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = (*pcVar2)();" (assignment_expression "iVar7 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar10 = piVar16[3];" (assignment_expression "iVar10 = piVar16[3]" identifier = (subscript_expression "piVar16[3]" identifier [ number_literal ])) ;) (if_statement "if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }" if (parenthesized_expression "(iVar7 != iVar17)" ( (binary_expression "iVar7 != iVar17" identifier != identifier) )) (compound_statement "{\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }" { (labeled_statement "LAB_002571d2:\n              iVar17 = *piVar6;" statement_identifier : (expression_statement "iVar17 = *piVar6;" (assignment_expression "iVar17 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;)) (expression_statement "piVar16[-3] = iVar10;" (assignment_expression "piVar16[-3] = iVar10" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar17 + 0x18);" (assignment_expression "pcVar2 = *(code **)(iVar17 + 0x18)" identifier = (pointer_expression "*(code **)(iVar17 + 0x18)" * (cast_expression "(code **)(iVar17 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x2571dd;" (assignment_expression "piVar16[-5] = 0x2571dd" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar17 = (*pcVar2)();" (assignment_expression "iVar17 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar16[-3] = *param_10;" (assignment_expression "piVar16[-3] = *param_10" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = (pointer_expression "*param_10" * identifier)) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x18);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x18)" identifier = (pointer_expression "*(code **)(iVar10 + 0x18)" * (cast_expression "(code **)(iVar10 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x2571ea;" (assignment_expression "piVar16[-5] = 0x2571ea" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar10 != iVar17) goto LAB_00257861;" if (parenthesized_expression "(iVar10 != iVar17)" ( (binary_expression "iVar10 != iVar17" identifier != identifier) )) (goto_statement "goto LAB_00257861;" goto statement_identifier ;)) })) }) (else_clause "else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }" else (compound_statement "{\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n              iVar10 = *(int *)param_3[2];\n            }" { (expression_statement "iVar10 = *(int *)param_3[2];" (assignment_expression "iVar10 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }" else (compound_statement "{\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }" { (expression_statement "iVar10 = *param_3;" (assignment_expression "iVar10 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x24)" identifier = (pointer_expression "*(code **)(iVar10 + 0x24)" * (cast_expression "(code **)(iVar10 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x24)" ( (binary_expression "iVar10 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x25787c;" (assignment_expression "piVar16[-5] = 0x25787c" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }" if (parenthesized_expression "(iVar10 == -1)" ( (binary_expression "iVar10 == -1" identifier == number_literal) )) (compound_statement "{\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar10 = -1;" (assignment_expression "iVar10 = -1" identifier = number_literal) ;) (goto_statement "goto LAB_002571af;" goto statement_identifier ;) })) (expression_statement "iVar17 = *piVar6;" (assignment_expression "iVar17 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar16[-3] = iVar10;" (assignment_expression "piVar16[-3] = iVar10" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar17 + 0x20);" (assignment_expression "pcVar2 = *(code **)(iVar17 + 0x20)" identifier = (pointer_expression "*(code **)(iVar17 + 0x20)" * (cast_expression "(code **)(iVar17 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x20)" ( (binary_expression "iVar17 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x25767c;" (assignment_expression "piVar16[-5] = 0x25767c" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar17 = (*pcVar2)();" (assignment_expression "iVar17 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar16[-3] = *param_10;" (assignment_expression "piVar16[-3] = *param_10" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = (pointer_expression "*param_10" * identifier)) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x20);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x20)" identifier = (pointer_expression "*(code **)(iVar10 + 0x20)" * (cast_expression "(code **)(iVar10 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x20)" ( (binary_expression "iVar10 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x257689;" (assignment_expression "piVar16[-5] = 0x257689" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }" if (parenthesized_expression "(iVar17 != iVar10)" ( (binary_expression "iVar17 != iVar10" identifier != identifier) )) (compound_statement "{\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                iVar10 = *(int *)param_3[2];\n              }" { (expression_statement "iVar10 = *(int *)param_3[2];" (assignment_expression "iVar10 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }" else (compound_statement "{\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }" { (expression_statement "iVar10 = *param_3;" (assignment_expression "iVar10 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x24)" identifier = (pointer_expression "*(code **)(iVar10 + 0x24)" * (cast_expression "(code **)(iVar10 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x24)" ( (binary_expression "iVar10 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x2578c1;" (assignment_expression "piVar16[-5] = 0x2578c1" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }" if (parenthesized_expression "(iVar10 == -1)" ( (binary_expression "iVar10 == -1" identifier == number_literal) )) (compound_statement "{\n                param_3 = (int *)0x0;\n              }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (goto_statement "goto LAB_002571d2;" goto statement_identifier ;) })) }))) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }" if (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" ( (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n            param_3[2] = param_3[2] + 4;\n          }" { (expression_statement "param_3[2] = param_3[2] + 4;" (assignment_expression "param_3[2] = param_3[2] + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (binary_expression "param_3[2] + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }" else (compound_statement "{\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }" { (expression_statement "iVar10 = *param_3;" (assignment_expression "iVar10 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x28);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x28)" identifier = (pointer_expression "*(code **)(iVar10 + 0x28)" * (cast_expression "(code **)(iVar10 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x257811;" (assignment_expression "piVar16[-5] = 0x257811" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) }))) (expression_statement "piVar16[3] = -1;" (assignment_expression "piVar16[3] = -1" (subscript_expression "piVar16[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" identifier = (binary_expression "param_10 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }" else (compound_statement "{\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }" { (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" identifier = (binary_expression "param_10 + 1" identifier + number_literal)) ;) (if_statement "if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }" if (parenthesized_expression "((undefined4 *)piVar16[0x26] != param_10)" ( (binary_expression "(undefined4 *)piVar16[0x26] != param_10" (cast_expression "(undefined4 *)piVar16[0x26]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x26]" identifier [ number_literal ])) != identifier) )) (compound_statement "{\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }" { (expression_statement "puVar3 = (undefined4 *)piVar16[0x26];" (assignment_expression "puVar3 = (undefined4 *)piVar16[0x26]" identifier = (cast_expression "(undefined4 *)piVar16[0x26]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x26]" identifier [ number_literal ]))) ;) (do_statement "do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);" do (compound_statement "{\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            }" { (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) (expression_statement "piVar16[-2] = *param_10;" (assignment_expression "piVar16[-2] = *param_10" (subscript_expression "piVar16[-2]" identifier [ number_literal ]) = (pointer_expression "*param_10" * identifier)) ;) (expression_statement "piVar16[-3] = 0x2000;" (assignment_expression "piVar16[-3] = 0x2000" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 8);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 8)" identifier = (pointer_expression "*(code **)(iVar10 + 8)" * (cast_expression "(code **)(iVar10 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x257440;" (assignment_expression "piVar16[-5] = 0x257440" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar4 = (*pcVar2)();" (assignment_expression "cVar4 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar4 == '\0') break;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" identifier = (binary_expression "param_10 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar3 != param_10)" ( (binary_expression "puVar3 != param_10" identifier != identifier) )) ;) })) (expression_statement "piVar16[0x25] = (int)param_10;" (assignment_expression "piVar16[0x25] = (int)param_10" (subscript_expression "piVar16[0x25]" identifier [ number_literal ]) = (cast_expression "(int)param_10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar10 = piVar16[3];" (assignment_expression "iVar10 = piVar16[3]" identifier = (subscript_expression "piVar16[3]" identifier [ number_literal ])) ;) (expression_statement "piVar16[2] = (int)piVar6;" (assignment_expression "piVar16[2] = (int)piVar6" (subscript_expression "piVar16[2]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "bVar9 = iVar10 == -1;" (assignment_expression "bVar9 = iVar10 == -1" identifier = (binary_expression "iVar10 == -1" identifier == number_literal)) ;) (expression_statement "bVar13 = param_3 != (int *)0x0 && (bool)bVar9;" (assignment_expression "bVar13 = param_3 != (int *)0x0 && (bool)bVar9" identifier = (binary_expression "param_3 != (int *)0x0 && (bool)bVar9" (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (cast_expression "(bool)bVar9" ( (type_descriptor "bool" primitive_type) ) identifier))) ;) (if_statement "if (bVar13) goto LAB_002574dc;" if (parenthesized_expression "(bVar13)" ( identifier )) (goto_statement "goto LAB_002574dc;" goto statement_identifier ;)) (labeled_statement "LAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);" statement_identifier : (expression_statement "bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);" (assignment_expression "bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26)" identifier = (binary_expression "piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26)" (binary_expression "piVar16[1] != 0" (subscript_expression "piVar16[1]" identifier [ number_literal ]) != number_literal) & (pointer_expression "*(byte *)((int)piVar16 + 0x26)" * (cast_expression "(byte *)((int)piVar16 + 0x26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x26)" ( (binary_expression "(int)piVar16 + 0x26" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;)) (expression_statement "bVar14 = (bool)bVar9;" (assignment_expression "bVar14 = (bool)bVar9" identifier = (cast_expression "(bool)bVar9" ( (type_descriptor "bool" primitive_type) ) identifier)) ;) (if_statement "if (bVar12 != 0) goto LAB_00257510;" if (parenthesized_expression "(bVar12 != 0)" ( (binary_expression "bVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00257510;" goto statement_identifier ;)) (while_statement "while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }" while (parenthesized_expression "((bool)*(byte *)((int)piVar16 + 0x26) != bVar14)" ( (binary_expression "(bool)*(byte *)((int)piVar16 + 0x26) != bVar14" (cast_expression "(bool)*(byte *)((int)piVar16 + 0x26)" ( (type_descriptor "bool" primitive_type) ) (pointer_expression "*(byte *)((int)piVar16 + 0x26)" * (cast_expression "(byte *)((int)piVar16 + 0x26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x26)" ( (binary_expression "(int)piVar16 + 0x26" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) != identifier) )) (compound_statement "{\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }" { (while_statement "while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }" { (expression_statement "iVar17 = iVar10;" (assignment_expression "iVar17 = iVar10" identifier = identifier) ;) (if_statement "if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" if (parenthesized_expression "((param_3 != (int *)0x0) && (bVar9 != 0))" ( (binary_expression "(param_3 != (int *)0x0) && (bVar9 != 0)" (parenthesized_expression "(param_3 != (int *)0x0)" ( (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" { (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                  iVar17 = *(int *)param_3[2];\n                }" { (expression_statement "iVar17 = *(int *)param_3[2];" (assignment_expression "iVar17 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }" else (compound_statement "{\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }" { (expression_statement "iVar17 = *param_3;" (assignment_expression "iVar17 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar17 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar17 + 0x24)" identifier = (pointer_expression "*(code **)(iVar17 + 0x24)" * (cast_expression "(code **)(iVar17 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x24)" ( (binary_expression "iVar17 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x2577f9;" (assignment_expression "piVar16[-5] = 0x2577f9" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar17 = (*pcVar2)();" (assignment_expression "iVar17 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) }))) (if_statement "if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }" if (parenthesized_expression "(iVar17 == -1)" ( (binary_expression "iVar17 == -1" identifier == number_literal) )) (compound_statement "{\n                  param_3 = (int *)0x0;\n                }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (expression_statement "iVar7 = *(int *)piVar16[2];" (assignment_expression "iVar7 = *(int *)piVar16[2]" identifier = (pointer_expression "*(int *)piVar16[2]" * (cast_expression "(int *)piVar16[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[2]" identifier [ number_literal ])))) ;) (expression_statement "piVar16[-2] = iVar17;" (assignment_expression "piVar16[-2] = iVar17" (subscript_expression "piVar16[-2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[-3] = 0x2000;" (assignment_expression "piVar16[-3] = 0x2000" (subscript_expression "piVar16[-3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar16[-4] = piVar16[2];" (assignment_expression "piVar16[-4] = piVar16[2]" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (subscript_expression "piVar16[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar2 = *(code **)(iVar7 + 8);" (assignment_expression "pcVar2 = *(code **)(iVar7 + 8)" identifier = (pointer_expression "*(code **)(iVar7 + 8)" * (cast_expression "(code **)(iVar7 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x2574ab;" (assignment_expression "piVar16[-5] = 0x2574ab" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar4 = (*pcVar2)();" (assignment_expression "cVar4 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (cVar4 == '\0') goto LAB_00257548;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00257548;" goto statement_identifier ;)) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }" if (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" ( (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(uint)param_3[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                param_3[2] = param_3[2] + 4;\n              }" { (expression_statement "param_3[2] = param_3[2] + 4;" (assignment_expression "param_3[2] = param_3[2] + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) = (binary_expression "param_3[2] + 4" (subscript_expression "param_3[2]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }" else (compound_statement "{\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }" { (expression_statement "iVar10 = *param_3;" (assignment_expression "iVar10 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x28);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x28)" identifier = (pointer_expression "*(code **)(iVar10 + 0x28)" * (cast_expression "(code **)(iVar10 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 0x28)" ( (binary_expression "iVar10 + 0x28" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x2575f9;" (assignment_expression "piVar16[-5] = 0x2575f9" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( ))) ;) }))) (expression_statement "iVar10 = -1;" (assignment_expression "iVar10 = -1" identifier = number_literal) ;) (expression_statement "bVar9 = true;" (assignment_expression "bVar9 = true" identifier = true) ;) (expression_statement "bVar13 = param_3 != (int *)0x0;" (assignment_expression "bVar13 = param_3 != (int *)0x0" identifier = (binary_expression "param_3 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (if_statement "if (!bVar13) goto LAB_00257468;" if (parenthesized_expression "(!bVar13)" ( (unary_expression "!bVar13" ! identifier) )) (goto_statement "goto LAB_00257468;" goto statement_identifier ;)) (labeled_statement "LAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }" statement_identifier : (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }" if (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" ( (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_3[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[3]" identifier [ number_literal ]))) )) (compound_statement "{\n                iVar17 = *(int *)param_3[2];\n              }" { (expression_statement "iVar17 = *(int *)param_3[2];" (assignment_expression "iVar17 = *(int *)param_3[2]" identifier = (pointer_expression "*(int *)param_3[2]" * (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }" else (compound_statement "{\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }" { (expression_statement "*(byte *)(piVar16 + 3) = bVar9;" (assignment_expression "*(byte *)(piVar16 + 3) = bVar9" (pointer_expression "*(byte *)(piVar16 + 3)" * (cast_expression "(byte *)(piVar16 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 3)" ( (binary_expression "piVar16 + 3" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar17 = *param_3;" (assignment_expression "iVar17 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pcVar2 = *(code **)(iVar17 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar17 + 0x24)" identifier = (pointer_expression "*(code **)(iVar17 + 0x24)" * (cast_expression "(code **)(iVar17 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x24)" ( (binary_expression "iVar17 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x257765;" (assignment_expression "piVar16[-5] = 0x257765" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar17 = (*pcVar2)();" (assignment_expression "iVar17 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "bVar9 = *(byte *)(piVar16 + 3);" (assignment_expression "bVar9 = *(byte *)(piVar16 + 3)" identifier = (pointer_expression "*(byte *)(piVar16 + 3)" * (cast_expression "(byte *)(piVar16 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 3)" ( (binary_expression "piVar16 + 3" identifier + number_literal) ))))) ;) })))) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" identifier = false) ;) (if_statement "if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }" if (parenthesized_expression "(iVar17 == -1)" ( (binary_expression "iVar17 == -1" identifier == number_literal) )) (compound_statement "{\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }" { (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar14 = bVar13;" (assignment_expression "bVar14 = bVar13" identifier = identifier) ;) })) (expression_statement "bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);" (assignment_expression "bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26)" identifier = (binary_expression "piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26)" (binary_expression "piVar16[1] != 0" (subscript_expression "piVar16[1]" identifier [ number_literal ]) != number_literal) & (pointer_expression "*(byte *)((int)piVar16 + 0x26)" * (cast_expression "(byte *)((int)piVar16 + 0x26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x26)" ( (binary_expression "(int)piVar16 + 0x26" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (bVar12 == 0) break;" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);" statement_identifier : (expression_statement "piVar6 = *(int **)(piVar16[1] + 8);" (assignment_expression "piVar6 = *(int **)(piVar16[1] + 8)" identifier = (pointer_expression "*(int **)(piVar16[1] + 8)" * (cast_expression "(int **)(piVar16[1] + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar16[1] + 8)" ( (binary_expression "piVar16[1] + 8" (subscript_expression "piVar16[1]" identifier [ number_literal ]) + number_literal) ))))) ;)) (if_statement "if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }" if (parenthesized_expression "(piVar6 < *(int **)(piVar16[1] + 0xc))" ( (binary_expression "piVar6 < *(int **)(piVar16[1] + 0xc)" identifier < (pointer_expression "*(int **)(piVar16[1] + 0xc)" * (cast_expression "(int **)(piVar16[1] + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar16[1] + 0xc)" ( (binary_expression "piVar16[1] + 0xc" (subscript_expression "piVar16[1]" identifier [ number_literal ]) + number_literal) ))))) )) (compound_statement "{\n                iVar17 = *piVar6;\n              }" { (expression_statement "iVar17 = *piVar6;" (assignment_expression "iVar17 = *piVar6" identifier = (pointer_expression "*piVar6" * identifier)) ;) }) (else_clause "else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }" else (compound_statement "{\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }" { (expression_statement "*(byte *)((int)piVar16 + 0x27) = bVar9;" (assignment_expression "*(byte *)((int)piVar16 + 0x27) = bVar9" (pointer_expression "*(byte *)((int)piVar16 + 0x27)" * (cast_expression "(byte *)((int)piVar16 + 0x27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x27)" ( (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(piVar16 + 3) = bVar12;" (assignment_expression "*(byte *)(piVar16 + 3) = bVar12" (pointer_expression "*(byte *)(piVar16 + 3)" * (cast_expression "(byte *)(piVar16 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 3)" ( (binary_expression "piVar16 + 3" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar17 = *(int *)piVar16[1];" (assignment_expression "iVar17 = *(int *)piVar16[1]" identifier = (pointer_expression "*(int *)piVar16[1]" * (cast_expression "(int *)piVar16[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[1]" identifier [ number_literal ])))) ;) (expression_statement "piVar16[-4] = piVar16[1];" (assignment_expression "piVar16[-4] = piVar16[1]" (subscript_expression "piVar16[-4]" identifier [ number_literal ]) = (subscript_expression "piVar16[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar2 = *(code **)(iVar17 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar17 + 0x24)" identifier = (pointer_expression "*(code **)(iVar17 + 0x24)" * (cast_expression "(code **)(iVar17 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar17 + 0x24)" ( (binary_expression "iVar17 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "piVar16[-5] = 0x25778d;" (assignment_expression "piVar16[-5] = 0x25778d" (subscript_expression "piVar16[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar17 = (*pcVar2)();" (assignment_expression "iVar17 = (*pcVar2)()" identifier = (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "bVar9 = *(byte *)((int)piVar16 + 0x27);" (assignment_expression "bVar9 = *(byte *)((int)piVar16 + 0x27)" identifier = (pointer_expression "*(byte *)((int)piVar16 + 0x27)" * (cast_expression "(byte *)((int)piVar16 + 0x27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x27)" ( (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "bVar12 = *(byte *)(piVar16 + 3);" (assignment_expression "bVar12 = *(byte *)(piVar16 + 3)" identifier = (pointer_expression "*(byte *)(piVar16 + 3)" * (cast_expression "(byte *)(piVar16 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar16 + 3)" ( (binary_expression "piVar16 + 3" identifier + number_literal) ))))) ;) }))) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (if_statement "if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }" if (parenthesized_expression "(iVar17 != -1)" ( (binary_expression "iVar17 != -1" identifier != number_literal) )) (compound_statement "{\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }" { (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = piVar16[1];" (assignment_expression "iVar7 = piVar16[1]" identifier = (subscript_expression "piVar16[1]" identifier [ number_literal ])) ;) })) (expression_statement "piVar16[1] = iVar7;" (assignment_expression "piVar16[1] = iVar7" (subscript_expression "piVar16[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((bool)bVar12 == bVar14) goto LAB_00257548;" if (parenthesized_expression "((bool)bVar12 == bVar14)" ( (binary_expression "(bool)bVar12 == bVar14" (cast_expression "(bool)bVar12" ( (type_descriptor "bool" primitive_type) ) identifier) == identifier) )) (goto_statement "goto LAB_00257548;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_00257548:\n          piVar16[3] = iVar10;" statement_identifier : (expression_statement "piVar16[3] = iVar10;" (assignment_expression "piVar16[3] = iVar10" (subscript_expression "piVar16[3]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "piVar6 = (int *)piVar16[2];" (assignment_expression "piVar6 = (int *)piVar16[2]" identifier = (cast_expression "(int *)piVar16[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[2]" identifier [ number_literal ]))) ;) (expression_statement "param_10 = (undefined4 *)piVar16[0x25];" (assignment_expression "param_10 = (undefined4 *)piVar16[0x25]" identifier = (cast_expression "(undefined4 *)piVar16[0x25]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x25]" identifier [ number_literal ]))) ;) }))) (expression_statement "piVar8 = piVar16;" (assignment_expression "piVar8 = piVar16" identifier = identifier) ;) (if_statement "if (param_10 == (undefined4 *)piVar16[0x26]) break;" if (parenthesized_expression "(param_10 == (undefined4 *)piVar16[0x26])" ( (binary_expression "param_10 == (undefined4 *)piVar16[0x26]" identifier == (cast_expression "(undefined4 *)piVar16[0x26]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar16[0x26]" identifier [ number_literal ]))) )) (break_statement "break;" break ;)) }))) (expression_statement "piVar16 = piVar8;" (assignment_expression "piVar16 = piVar8" identifier = identifier) ;) }) while (parenthesized_expression "(**(int **)((int)piVar16 + 0x8c) == 0)" ( (binary_expression "**(int **)((int)piVar16 + 0x8c) == 0" (pointer_expression "**(int **)((int)piVar16 + 0x8c)" * (pointer_expression "*(int **)((int)piVar16 + 0x8c)" * (cast_expression "(int **)((int)piVar16 + 0x8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + 0x8c)" ( (binary_expression "(int)piVar16 + 0x8c" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) == number_literal) )) ;) })) (expression_statement "piVar6 = *(int **)((int)piVar16 + 0x70);" (assignment_expression "piVar6 = *(int **)((int)piVar16 + 0x70)" identifier = (pointer_expression "*(int **)((int)piVar16 + 0x70)" * (cast_expression "(int **)((int)piVar16 + 0x70)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar16 + 0x70)" ( (binary_expression "(int)piVar16 + 0x70" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)((int)piVar16 + 0xc);" (assignment_expression "iVar10 = *(int *)((int)piVar16 + 0xc)" identifier = (pointer_expression "*(int *)((int)piVar16 + 0xc)" * (cast_expression "(int *)((int)piVar16 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0xc)" ( (binary_expression "(int)piVar16 + 0xc" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*piVar6 = (int)param_3;" (assignment_expression "*piVar6 = (int)param_3" (pointer_expression "*piVar6" * identifier) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar6[1] = iVar10;" (assignment_expression "piVar6[1] = iVar10" (subscript_expression "piVar6[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (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 = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = LIT) ;)) (break_statement break ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (binary_expression IDENT + LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = LIT) ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (binary_expression IDENT == LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (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 = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) | LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (break_statement break ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (goto_statement goto statement_identifier ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) & (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 = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) != IDENT) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (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 != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (compound_statement { (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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (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 = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == IDENT) )) (goto_statement goto statement_identifier ;)) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (break_statement break ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) == LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_002570e0(undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,\n                 undefined4 *param_10,undefined4 *param_11)\n\n{\n  int *piVar1;\n  code *pcVar2;\n  undefined4 *puVar3;\n  char cVar4;\n  char cVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  byte bVar9;\n  int iVar10;\n  char cVar11;\n  byte bVar12;\n  bool bVar13;\n  bool bVar14;\n  int *piVar15;\n  int *piVar16;\n  int iVar17;\n  int aiStackY_a0 [9];\n  undefined4 local_68;\n  byte local_64 [4];\n  int local_60 [5];\n  undefined4 local_4c;\n  bool local_46;\n  byte local_45;\n  int local_44 [2];\n  undefined **local_3c;\n  int local_38 [10];\n  \n  local_4c = &__DT_PLTGOT;\n  local_60[0] = param_4;\n  local_68 = param_5;\n  local_44[1] = param_6;\n  local_38[0] = param_7 + 0x6c;\n  piVar6 = (int *)FUN_0023c1d0(local_38[0]);\n  *param_8 = 0;\n  piVar16 = (int *)&stack0xffffff94;\n  if (param_10 != param_11) {\n    local_46 = local_44[1] == -1;\n    local_3c = local_4c + -0x4e0a4;\n    piVar16 = (int *)&stack0xffffff94;\n    do {\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    } while (**(int **)((int)piVar16 + 0x8c) == 0);\n  }\n  piVar6 = *(int **)((int)piVar16 + 0x70);\n  iVar10 = *(int *)((int)piVar16 + 0xc);\n  *piVar6 = (int)param_3;\n  piVar6[1] = iVar10;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_002570e0(undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,\n                 undefined4 *param_10,undefined4 *param_11)" (identifier "FUN_002570e0") (parameter_list "(undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,\n                 undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,\n                 undefined4 *param_10,undefined4 *param_11)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) (, ",") (parameter_declaration "undefined4 *param_8" (type_identifier "undefined4") (pointer_declarator "*param_8" (* "*") (identifier "param_8"))) (, ",") (parameter_declaration "undefined4 param_9" (type_identifier "undefined4") (identifier "param_9")) (, ",") (parameter_declaration "undefined4 *param_10" (type_identifier "undefined4") (pointer_declarator "*param_10" (* "*") (identifier "param_10"))) (, ",") (parameter_declaration "undefined4 *param_11" (type_identifier "undefined4") (pointer_declarator "*param_11" (* "*") (identifier "param_11"))) () ")"))) (compound_statement "{\n  int *piVar1;\n  code *pcVar2;\n  undefined4 *puVar3;\n  char cVar4;\n  char cVar5;\n  int *piVar6;\n  int iVar7;\n  int *piVar8;\n  byte bVar9;\n  int iVar10;\n  char cVar11;\n  byte bVar12;\n  bool bVar13;\n  bool bVar14;\n  int *piVar15;\n  int *piVar16;\n  int iVar17;\n  int aiStackY_a0 [9];\n  undefined4 local_68;\n  byte local_64 [4];\n  int local_60 [5];\n  undefined4 local_4c;\n  bool local_46;\n  byte local_45;\n  int local_44 [2];\n  undefined **local_3c;\n  int local_38 [10];\n  \n  local_4c = &__DT_PLTGOT;\n  local_60[0] = param_4;\n  local_68 = param_5;\n  local_44[1] = param_6;\n  local_38[0] = param_7 + 0x6c;\n  piVar6 = (int *)FUN_0023c1d0(local_38[0]);\n  *param_8 = 0;\n  piVar16 = (int *)&stack0xffffff94;\n  if (param_10 != param_11) {\n    local_46 = local_44[1] == -1;\n    local_3c = local_4c + -0x4e0a4;\n    piVar16 = (int *)&stack0xffffff94;\n    do {\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    } while (**(int **)((int)piVar16 + 0x8c) == 0);\n  }\n  piVar6 = *(int **)((int)piVar16 + 0x70);\n  iVar10 = *(int *)((int)piVar16 + 0xc);\n  *piVar6 = (int)param_3;\n  piVar6[1] = iVar10;\n  return;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "code *pcVar2;" (type_identifier "code") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "byte bVar9;" (type_identifier "byte") (identifier "bVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "char cVar11;" (primitive_type "char") (identifier "cVar11") (; ";")) (declaration "byte bVar12;" (type_identifier "byte") (identifier "bVar12") (; ";")) (declaration "bool bVar13;" (primitive_type "bool") (identifier "bVar13") (; ";")) (declaration "bool bVar14;" (primitive_type "bool") (identifier "bVar14") (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "int aiStackY_a0 [9];" (primitive_type "int") (array_declarator "aiStackY_a0 [9]" (identifier "aiStackY_a0") ([ "[") (number_literal "9") (] "]")) (; ";")) (declaration "undefined4 local_68;" (type_identifier "undefined4") (identifier "local_68") (; ";")) (declaration "byte local_64 [4];" (type_identifier "byte") (array_declarator "local_64 [4]" (identifier "local_64") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_60 [5];" (primitive_type "int") (array_declarator "local_60 [5]" (identifier "local_60") ([ "[") (number_literal "5") (] "]")) (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "bool local_46;" (primitive_type "bool") (identifier "local_46") (; ";")) (declaration "byte local_45;" (type_identifier "byte") (identifier "local_45") (; ";")) (declaration "int local_44 [2];" (primitive_type "int") (array_declarator "local_44 [2]" (identifier "local_44") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined **local_3c;" (type_identifier "undefined") (pointer_declarator "**local_3c" (* "*") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c"))) (; ";")) (declaration "int local_38 [10];" (primitive_type "int") (array_declarator "local_38 [10]" (identifier "local_38") ([ "[") (number_literal "10") (] "]")) (; ";")) (expression_statement "local_4c = &__DT_PLTGOT;" (assignment_expression "local_4c = &__DT_PLTGOT" (identifier "local_4c") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "local_60[0] = param_4;" (assignment_expression "local_60[0] = param_4" (subscript_expression "local_60[0]" (identifier "local_60") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_68 = param_5;" (assignment_expression "local_68 = param_5" (identifier "local_68") (= "=") (identifier "param_5")) (; ";")) (expression_statement "local_44[1] = param_6;" (assignment_expression "local_44[1] = param_6" (subscript_expression "local_44[1]" (identifier "local_44") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_6")) (; ";")) (expression_statement "local_38[0] = param_7 + 0x6c;" (assignment_expression "local_38[0] = param_7 + 0x6c" (subscript_expression "local_38[0]" (identifier "local_38") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "param_7 + 0x6c" (identifier "param_7") (+ "+") (number_literal "0x6c"))) (; ";")) (expression_statement "piVar6 = (int *)FUN_0023c1d0(local_38[0]);" (assignment_expression "piVar6 = (int *)FUN_0023c1d0(local_38[0])" (identifier "piVar6") (= "=") (cast_expression "(int *)FUN_0023c1d0(local_38[0])" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0023c1d0(local_38[0])" (identifier "FUN_0023c1d0") (argument_list "(local_38[0])" (( "(") (subscript_expression "local_38[0]" (identifier "local_38") ([ "[") (number_literal "0") (] "]")) () ")"))))) (; ";")) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar16 = (int *)&stack0xffffff94;" (assignment_expression "piVar16 = (int *)&stack0xffffff94" (identifier "piVar16") (= "=") (cast_expression "(int *)&stack0xffffff94" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&stack0xffffff94" (& "&") (identifier "stack0xffffff94")))) (; ";")) (if_statement "if (param_10 != param_11) {\n    local_46 = local_44[1] == -1;\n    local_3c = local_4c + -0x4e0a4;\n    piVar16 = (int *)&stack0xffffff94;\n    do {\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    } while (**(int **)((int)piVar16 + 0x8c) == 0);\n  }" (if "if") (parenthesized_expression "(param_10 != param_11)" (( "(") (binary_expression "param_10 != param_11" (identifier "param_10") (!= "!=") (identifier "param_11")) () ")")) (compound_statement "{\n    local_46 = local_44[1] == -1;\n    local_3c = local_4c + -0x4e0a4;\n    piVar16 = (int *)&stack0xffffff94;\n    do {\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    } while (**(int **)((int)piVar16 + 0x8c) == 0);\n  }" ({ "{") (expression_statement "local_46 = local_44[1] == -1;" (assignment_expression "local_46 = local_44[1] == -1" (identifier "local_46") (= "=") (binary_expression "local_44[1] == -1" (subscript_expression "local_44[1]" (identifier "local_44") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "-1"))) (; ";")) (expression_statement "local_3c = local_4c + -0x4e0a4;" (assignment_expression "local_3c = local_4c + -0x4e0a4" (identifier "local_3c") (= "=") (binary_expression "local_4c + -0x4e0a4" (identifier "local_4c") (+ "+") (number_literal "-0x4e0a4"))) (; ";")) (expression_statement "piVar16 = (int *)&stack0xffffff94;" (assignment_expression "piVar16 = (int *)&stack0xffffff94" (identifier "piVar16") (= "=") (cast_expression "(int *)&stack0xffffff94" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&stack0xffffff94" (& "&") (identifier "stack0xffffff94")))) (; ";")) (do_statement "do {\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    } while (**(int **)((int)piVar16 + 0x8c) == 0);" (do "do") (compound_statement "{\n      *(bool *)(piVar16 + 2) = piVar16[3] == -1;\n      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);\n      if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }\n      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n      if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }\n      iVar10 = *piVar6;\n      piVar16[-2] = 0;\n      piVar16[-3] = *param_10;\n      piVar16[-4] = (int)piVar6;\n      pcVar2 = *(code **)(iVar10 + 0x30);\n      piVar16[-5] = 0x25727f;\n      cVar4 = (*pcVar2)();\n      if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }\n      piVar16 = piVar8;\n    }" ({ "{") (expression_statement "*(bool *)(piVar16 + 2) = piVar16[3] == -1;" (assignment_expression "*(bool *)(piVar16 + 2) = piVar16[3] == -1" (pointer_expression "*(bool *)(piVar16 + 2)" (* "*") (cast_expression "(bool *)(piVar16 + 2)" (( "(") (type_descriptor "bool *" (primitive_type "bool") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar16 + 2)" (( "(") (binary_expression "piVar16 + 2" (identifier "piVar16") (+ "+") (number_literal "2")) () ")")))) (= "=") (binary_expression "piVar16[3] == -1" (subscript_expression "piVar16[3]" (identifier "piVar16") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "-1"))) (; ";")) (expression_statement "bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);" (assignment_expression "bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2)" (identifier "bVar9") (= "=") (binary_expression "param_3 != (int *)0x0 & *(byte *)(piVar16 + 2)" (binary_expression "param_3 != (int *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (& "&") (pointer_expression "*(byte *)(piVar16 + 2)" (* "*") (cast_expression "(byte *)(piVar16 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar16 + 2)" (( "(") (binary_expression "piVar16 + 2" (identifier "piVar16") (+ "+") (number_literal "2")) () ")")))))) (; ";")) (if_statement "if (bVar9 == 0) {\n        bVar12 = *(byte *)(piVar16 + 2);\n      }\n      else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }" (if "if") (parenthesized_expression "(bVar9 == 0)" (( "(") (binary_expression "bVar9 == 0" (identifier "bVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        bVar12 = *(byte *)(piVar16 + 2);\n      }" ({ "{") (expression_statement "bVar12 = *(byte *)(piVar16 + 2);" (assignment_expression "bVar12 = *(byte *)(piVar16 + 2)" (identifier "bVar12") (= "=") (pointer_expression "*(byte *)(piVar16 + 2)" (* "*") (cast_expression "(byte *)(piVar16 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar16 + 2)" (( "(") (binary_expression "piVar16 + 2" (identifier "piVar16") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }" (else "else") (compound_statement "{\n        if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }\n        bVar12 = 0;\n        if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }\n      }" ({ "{") (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n          iVar10 = *(int *)param_3[2];\n        }\n        else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }" (if "if") (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" (( "(") (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_3[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n          iVar10 = *(int *)param_3[2];\n        }" ({ "{") (expression_statement "iVar10 = *(int *)param_3[2];" (assignment_expression "iVar10 = *(int *)param_3[2]" (identifier "iVar10") (= "=") (pointer_expression "*(int *)param_3[2]" (* "*") (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }" (else "else") (compound_statement "{\n          *(byte *)((int)piVar16 + 0x27) = bVar9;\n          iVar10 = *param_3;\n          piVar16[-4] = (int)param_3;\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257826;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)((int)piVar16 + 0x27);\n        }" ({ "{") (expression_statement "*(byte *)((int)piVar16 + 0x27) = bVar9;" (assignment_expression "*(byte *)((int)piVar16 + 0x27) = bVar9" (pointer_expression "*(byte *)((int)piVar16 + 0x27)" (* "*") (cast_expression "(byte *)((int)piVar16 + 0x27)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x27)" (( "(") (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x27")) () ")")))) (= "=") (identifier "bVar9")) (; ";")) (expression_statement "iVar10 = *param_3;" (assignment_expression "iVar10 = *param_3" (identifier "iVar10") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x24)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar10 + 0x24)" (* "*") (cast_expression "(code **)(iVar10 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x24)" (( "(") (binary_expression "iVar10 + 0x24" (identifier "iVar10") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x257826;" (assignment_expression "piVar16[-5] = 0x257826" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x257826")) (; ";")) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" (identifier "iVar10") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar9 = *(byte *)((int)piVar16 + 0x27);" (assignment_expression "bVar9 = *(byte *)((int)piVar16 + 0x27)" (identifier "bVar9") (= "=") (pointer_expression "*(byte *)((int)piVar16 + 0x27)" (* "*") (cast_expression "(byte *)((int)piVar16 + 0x27)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x27)" (( "(") (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x27")) () ")"))))) (; ";")) (} "}")))) (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" (identifier "bVar12") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar10 == -1) {\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }" (if "if") (parenthesized_expression "(iVar10 == -1)" (( "(") (binary_expression "iVar10 == -1" (identifier "iVar10") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          param_3 = (int *)0x0;\n          bVar12 = bVar9;\n        }" ({ "{") (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar12 = bVar9;" (assignment_expression "bVar12 = bVar9" (identifier "bVar12") (= "=") (identifier "bVar9")) (; ";")) (} "}"))) (} "}")))) (expression_statement "bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);" (assignment_expression "bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26)" (identifier "bVar9") (= "=") (binary_expression "piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26)" (binary_expression "piVar16[1] != 0" (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) (& "&") (pointer_expression "*(byte *)((int)piVar16 + 0x26)" (* "*") (cast_expression "(byte *)((int)piVar16 + 0x26)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x26)" (( "(") (binary_expression "(int)piVar16 + 0x26" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x26")) () ")")))))) (; ";")) (if_statement "if (bVar9 == 0) {\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }\n      else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }" (if "if") (parenthesized_expression "(bVar9 == 0)" (( "(") (binary_expression "bVar9 == 0" (identifier "bVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }\n      }" ({ "{") (if_statement "if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }" (if "if") (parenthesized_expression "(bVar12 == *(byte *)((int)piVar16 + 0x26))" (( "(") (binary_expression "bVar12 == *(byte *)((int)piVar16 + 0x26)" (identifier "bVar12") (== "==") (pointer_expression "*(byte *)((int)piVar16 + 0x26)" (* "*") (cast_expression "(byte *)((int)piVar16 + 0x26)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x26)" (( "(") (binary_expression "(int)piVar16 + 0x26" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x26")) () ")"))))) () ")")) (compound_statement "{\nLAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;\n          break;\n        }" ({ "{") (labeled_statement "LAB_002575b3:\n          *(undefined4 *)piVar16[0x23] = 6;" (statement_identifier "LAB_002575b3") (: ":") (expression_statement "*(undefined4 *)piVar16[0x23] = 6;" (assignment_expression "*(undefined4 *)piVar16[0x23] = 6" (pointer_expression "*(undefined4 *)piVar16[0x23]" (* "*") (cast_expression "(undefined4 *)piVar16[0x23]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[0x23]" (identifier "piVar16") ([ "[") (number_literal "0x23") (] "]")))) (= "=") (number_literal "6")) (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }" (else "else") (compound_statement "{\n        piVar8 = *(int **)(piVar16[1] + 8);\n        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }\n        iVar17 = 0;\n        if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }\n        piVar16[1] = iVar17;\n        if (bVar12 == bVar9) goto LAB_002575b3;\n      }" ({ "{") (expression_statement "piVar8 = *(int **)(piVar16[1] + 8);" (assignment_expression "piVar8 = *(int **)(piVar16[1] + 8)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(piVar16[1] + 8)" (* "*") (cast_expression "(int **)(piVar16[1] + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar16[1] + 8)" (( "(") (binary_expression "piVar16[1] + 8" (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (piVar8 < *(int **)(piVar16[1] + 0xc)) {\n          iVar10 = *piVar8;\n        }\n        else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }" (if "if") (parenthesized_expression "(piVar8 < *(int **)(piVar16[1] + 0xc))" (( "(") (binary_expression "piVar8 < *(int **)(piVar16[1] + 0xc)" (identifier "piVar8") (< "<") (pointer_expression "*(int **)(piVar16[1] + 0xc)" (* "*") (cast_expression "(int **)(piVar16[1] + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar16[1] + 0xc)" (( "(") (binary_expression "piVar16[1] + 0xc" (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (compound_statement "{\n          iVar10 = *piVar8;\n        }" ({ "{") (expression_statement "iVar10 = *piVar8;" (assignment_expression "iVar10 = *piVar8" (identifier "iVar10") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (} "}")) (else_clause "else {\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }" (else "else") (compound_statement "{\n          *(byte *)(piVar16 + 10) = bVar9;\n          *(byte *)((int)piVar16 + 0x27) = bVar12;\n          iVar10 = *(int *)piVar16[1];\n          piVar16[-4] = piVar16[1];\n          pcVar2 = *(code **)(iVar10 + 0x24);\n          piVar16[-5] = 0x257848;\n          iVar10 = (*pcVar2)();\n          bVar9 = *(byte *)(piVar16 + 10);\n          bVar12 = *(byte *)((int)piVar16 + 0x27);\n        }" ({ "{") (expression_statement "*(byte *)(piVar16 + 10) = bVar9;" (assignment_expression "*(byte *)(piVar16 + 10) = bVar9" (pointer_expression "*(byte *)(piVar16 + 10)" (* "*") (cast_expression "(byte *)(piVar16 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar16 + 10)" (( "(") (binary_expression "piVar16 + 10" (identifier "piVar16") (+ "+") (number_literal "10")) () ")")))) (= "=") (identifier "bVar9")) (; ";")) (expression_statement "*(byte *)((int)piVar16 + 0x27) = bVar12;" (assignment_expression "*(byte *)((int)piVar16 + 0x27) = bVar12" (pointer_expression "*(byte *)((int)piVar16 + 0x27)" (* "*") (cast_expression "(byte *)((int)piVar16 + 0x27)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x27)" (( "(") (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x27")) () ")")))) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "iVar10 = *(int *)piVar16[1];" (assignment_expression "iVar10 = *(int *)piVar16[1]" (identifier "iVar10") (= "=") (pointer_expression "*(int *)piVar16[1]" (* "*") (cast_expression "(int *)piVar16[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "piVar16[-4] = piVar16[1];" (assignment_expression "piVar16[-4] = piVar16[1]" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x24)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar10 + 0x24)" (* "*") (cast_expression "(code **)(iVar10 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x24)" (( "(") (binary_expression "iVar10 + 0x24" (identifier "iVar10") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x257848;" (assignment_expression "piVar16[-5] = 0x257848" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x257848")) (; ";")) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" (identifier "iVar10") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar9 = *(byte *)(piVar16 + 10);" (assignment_expression "bVar9 = *(byte *)(piVar16 + 10)" (identifier "bVar9") (= "=") (pointer_expression "*(byte *)(piVar16 + 10)" (* "*") (cast_expression "(byte *)(piVar16 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar16 + 10)" (( "(") (binary_expression "piVar16 + 10" (identifier "piVar16") (+ "+") (number_literal "10")) () ")"))))) (; ";")) (expression_statement "bVar12 = *(byte *)((int)piVar16 + 0x27);" (assignment_expression "bVar12 = *(byte *)((int)piVar16 + 0x27)" (identifier "bVar12") (= "=") (pointer_expression "*(byte *)((int)piVar16 + 0x27)" (* "*") (cast_expression "(byte *)((int)piVar16 + 0x27)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x27)" (( "(") (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x27")) () ")"))))) (; ";")) (} "}")))) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar10 != -1) {\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }" (if "if") (parenthesized_expression "(iVar10 != -1)" (( "(") (binary_expression "iVar10 != -1" (identifier "iVar10") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n          bVar9 = 0;\n          iVar17 = piVar16[1];\n        }" ({ "{") (expression_statement "bVar9 = 0;" (assignment_expression "bVar9 = 0" (identifier "bVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar17 = piVar16[1];" (assignment_expression "iVar17 = piVar16[1]" (identifier "iVar17") (= "=") (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (expression_statement "piVar16[1] = iVar17;" (assignment_expression "piVar16[1] = iVar17" (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar17")) (; ";")) (if_statement "if (bVar12 == bVar9) goto LAB_002575b3;" (if "if") (parenthesized_expression "(bVar12 == bVar9)" (( "(") (binary_expression "bVar12 == bVar9" (identifier "bVar12") (== "==") (identifier "bVar9")) () ")")) (goto_statement "goto LAB_002575b3;" (goto "goto") (statement_identifier "LAB_002575b3") (; ";"))) (} "}")))) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" (identifier "iVar10") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "piVar16[-2] = 0;" (assignment_expression "piVar16[-2] = 0" (subscript_expression "piVar16[-2]" (identifier "piVar16") ([ "[") (number_literal "-2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar16[-3] = *param_10;" (assignment_expression "piVar16[-3] = *param_10" (subscript_expression "piVar16[-3]" (identifier "piVar16") ([ "[") (number_literal "-3") (] "]")) (= "=") (pointer_expression "*param_10" (* "*") (identifier "param_10"))) (; ";")) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x30);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x30)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar10 + 0x30)" (* "*") (cast_expression "(code **)(iVar10 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x30)" (( "(") (binary_expression "iVar10 + 0x30" (identifier "iVar10") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x25727f;" (assignment_expression "piVar16[-5] = 0x25727f" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x25727f")) (; ";")) (expression_statement "cVar4 = (*pcVar2)();" (assignment_expression "cVar4 = (*pcVar2)()" (identifier "cVar4") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar4 == '%') {\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }\n      else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }" (if "if") (parenthesized_expression "(cVar4 == '%')" (( "(") (binary_expression "cVar4 == '%'" (identifier "cVar4") (== "==") (char_literal "'%'" (' "'") (character "%") (' "'"))) () ")")) (compound_statement "{\n        piVar16[2] = (int)(param_10 + 1);\n        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }\n        iVar10 = *piVar6;\n        piVar16[-2] = 0;\n        piVar16[-3] = param_10[1];\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 0x30);\n        piVar16[-5] = 0x2572ad;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }\n        *(char *)((int)piVar16 + 0x27) = cVar11;\n        iVar17 = (int)cVar5;\n        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);\n        if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }\n        piVar15 = piVar16 + -1;\n        param_10 = (undefined4 *)(piVar16[1] + 4);\n        piVar1 = piVar16 + 0x25;\n        piVar16 = piVar16 + -1;\n        piVar8 = piVar15;\n        if (param_10 == (undefined4 *)*piVar1) break;\n      }" ({ "{") (expression_statement "piVar16[2] = (int)(param_10 + 1);" (assignment_expression "piVar16[2] = (int)(param_10 + 1)" (subscript_expression "piVar16[2]" (identifier "piVar16") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)(param_10 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_10 + 1)" (( "(") (binary_expression "param_10 + 1" (identifier "param_10") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((undefined4 *)piVar16[0x26] == param_10 + 1) {\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }" (if "if") (parenthesized_expression "((undefined4 *)piVar16[0x26] == param_10 + 1)" (( "(") (binary_expression "(undefined4 *)piVar16[0x26] == param_10 + 1" (cast_expression "(undefined4 *)piVar16[0x26]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[0x26]" (identifier "piVar16") ([ "[") (number_literal "0x26") (] "]"))) (== "==") (binary_expression "param_10 + 1" (identifier "param_10") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\nLAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;\n          break;\n        }" ({ "{") (labeled_statement "LAB_00257861:\n          *(undefined4 *)piVar16[0x23] = 4;" (statement_identifier "LAB_00257861") (: ":") (expression_statement "*(undefined4 *)piVar16[0x23] = 4;" (assignment_expression "*(undefined4 *)piVar16[0x23] = 4" (pointer_expression "*(undefined4 *)piVar16[0x23]" (* "*") (cast_expression "(undefined4 *)piVar16[0x23]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[0x23]" (identifier "piVar16") ([ "[") (number_literal "0x23") (] "]")))) (= "=") (number_literal "4")) (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" (identifier "iVar10") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "piVar16[-2] = 0;" (assignment_expression "piVar16[-2] = 0" (subscript_expression "piVar16[-2]" (identifier "piVar16") ([ "[") (number_literal "-2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar16[-3] = param_10[1];" (assignment_expression "piVar16[-3] = param_10[1]" (subscript_expression "piVar16[-3]" (identifier "piVar16") ([ "[") (number_literal "-3") (] "]")) (= "=") (subscript_expression "param_10[1]" (identifier "param_10") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x30);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x30)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar10 + 0x30)" (* "*") (cast_expression "(code **)(iVar10 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x30)" (( "(") (binary_expression "iVar10 + 0x30" (identifier "iVar10") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x2572ad;" (assignment_expression "piVar16[-5] = 0x2572ad" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x2572ad")) (; ";")) (expression_statement "cVar4 = (*pcVar2)();" (assignment_expression "cVar4 = (*pcVar2)()" (identifier "cVar4") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar4 == 'E') {\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }\n        else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }" (if "if") (parenthesized_expression "(cVar4 == 'E')" (( "(") (binary_expression "cVar4 == 'E'" (identifier "cVar4") (== "==") (char_literal "'E'" (' "'") (character "E") (' "'"))) () ")")) (compound_statement "{\nLAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);\n          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;\n          iVar10 = *piVar6;\n          piVar16[-2] = 0;\n          piVar16[-3] = param_10[2];\n          piVar16[-4] = (int)piVar6;\n          pcVar2 = *(code **)(iVar10 + 0x30);\n          piVar16[-5] = 0x25762b;\n          cVar5 = (*pcVar2)();\n          iVar10 = (int)cVar4;\n          cVar11 = cVar4;\n        }" ({ "{") (labeled_statement "LAB_00257608:\n          piVar16[2] = (int)(param_10 + 2);" (statement_identifier "LAB_00257608") (: ":") (expression_statement "piVar16[2] = (int)(param_10 + 2);" (assignment_expression "piVar16[2] = (int)(param_10 + 2)" (subscript_expression "piVar16[2]" (identifier "piVar16") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)(param_10 + 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_10 + 2)" (( "(") (binary_expression "param_10 + 2" (identifier "param_10") (+ "+") (number_literal "2")) () ")")))) (; ";"))) (if_statement "if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;" (if "if") (parenthesized_expression "((undefined4 *)piVar16[0x26] == param_10 + 2)" (( "(") (binary_expression "(undefined4 *)piVar16[0x26] == param_10 + 2" (cast_expression "(undefined4 *)piVar16[0x26]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[0x26]" (identifier "piVar16") ([ "[") (number_literal "0x26") (] "]"))) (== "==") (binary_expression "param_10 + 2" (identifier "param_10") (+ "+") (number_literal "2"))) () ")")) (goto_statement "goto LAB_00257861;" (goto "goto") (statement_identifier "LAB_00257861") (; ";"))) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" (identifier "iVar10") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "piVar16[-2] = 0;" (assignment_expression "piVar16[-2] = 0" (subscript_expression "piVar16[-2]" (identifier "piVar16") ([ "[") (number_literal "-2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar16[-3] = param_10[2];" (assignment_expression "piVar16[-3] = param_10[2]" (subscript_expression "piVar16[-3]" (identifier "piVar16") ([ "[") (number_literal "-3") (] "]")) (= "=") (subscript_expression "param_10[2]" (identifier "param_10") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x30);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x30)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar10 + 0x30)" (* "*") (cast_expression "(code **)(iVar10 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x30)" (( "(") (binary_expression "iVar10 + 0x30" (identifier "iVar10") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x25762b;" (assignment_expression "piVar16[-5] = 0x25762b" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x25762b")) (; ";")) (expression_statement "cVar5 = (*pcVar2)();" (assignment_expression "cVar5 = (*pcVar2)()" (identifier "cVar5") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar10 = (int)cVar4;" (assignment_expression "iVar10 = (int)cVar4" (identifier "iVar10") (= "=") (cast_expression "(int)cVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar4"))) (; ";")) (expression_statement "cVar11 = cVar4;" (assignment_expression "cVar11 = cVar4" (identifier "cVar11") (= "=") (identifier "cVar4")) (; ";")) (} "}")) (else_clause "else {\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }" (else "else") (compound_statement "{\n          iVar10 = 0;\n          cVar11 = '\0';\n          cVar5 = cVar4;\n          if (cVar4 == 'O') goto LAB_00257608;\n        }" ({ "{") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar11 = '\0';" (assignment_expression "cVar11 = '\0'" (identifier "cVar11") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "cVar5 = cVar4;" (assignment_expression "cVar5 = cVar4" (identifier "cVar5") (= "=") (identifier "cVar4")) (; ";")) (if_statement "if (cVar4 == 'O') goto LAB_00257608;" (if "if") (parenthesized_expression "(cVar4 == 'O')" (( "(") (binary_expression "cVar4 == 'O'" (identifier "cVar4") (== "==") (char_literal "'O'" (' "'") (character "O") (' "'"))) () ")")) (goto_statement "goto LAB_00257608;" (goto "goto") (statement_identifier "LAB_00257608") (; ";"))) (} "}")))) (expression_statement "*(char *)((int)piVar16 + 0x27) = cVar11;" (assignment_expression "*(char *)((int)piVar16 + 0x27) = cVar11" (pointer_expression "*(char *)((int)piVar16 + 0x27)" (* "*") (cast_expression "(char *)((int)piVar16 + 0x27)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x27)" (( "(") (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x27")) () ")")))) (= "=") (identifier "cVar11")) (; ";")) (expression_statement "iVar17 = (int)cVar5;" (assignment_expression "iVar17 = (int)cVar5" (identifier "iVar17") (= "=") (cast_expression "(int)cVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar5"))) (; ";")) (expression_statement "pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);" (assignment_expression "pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(*(int *)piVar16[0x1d] + 0x20)" (* "*") (cast_expression "(code **)(*(int *)piVar16[0x1d] + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)piVar16[0x1d] + 0x20)" (( "(") (binary_expression "*(int *)piVar16[0x1d] + 0x20" (pointer_expression "*(int *)piVar16[0x1d]" (* "*") (cast_expression "(int *)piVar16[0x1d]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[0x1d]" (identifier "piVar16") ([ "[") (number_literal "0x1d") (] "]")))) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (pcVar2 == (code *)piVar16[0xc]) {\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }\n        else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }" (if "if") (parenthesized_expression "(pcVar2 == (code *)piVar16[0xc])" (( "(") (binary_expression "pcVar2 == (code *)piVar16[0xc]" (identifier "pcVar2") (== "==") (cast_expression "(code *)piVar16[0xc]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[0xc]" (identifier "piVar16") ([ "[") (number_literal "0xc") (] "]")))) () ")")) (compound_statement "{\n          piVar16[10] = iVar10;\n          piVar16[-4] = piVar16[0xd];\n          piVar16[-5] = 0x2572f4;\n          piVar8 = (int *)FUN_0023c1d0();\n          iVar10 = *piVar8;\n          *(undefined4 *)piVar16[0x23] = 0;\n          piVar16[-3] = 0x25;\n          piVar16[-4] = (int)piVar8;\n          pcVar2 = *(code **)(iVar10 + 0x28);\n          piVar16[-5] = 0x25730b;\n          iVar10 = (*pcVar2)();\n          piVar16[0x10] = iVar10;\n          if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }\n          piVar16[4] = (int)param_3;\n          piVar16[5] = piVar16[3];\n          piVar16[6] = piVar16[1];\n          piVar16[7] = piVar16[0xb];\n          piVar16[-3] = (int)(piVar16 + 0x10);\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[7];\n          piVar16[-8] = piVar16[6];\n          piVar16[-9] = piVar16[5];\n          piVar16[-10] = piVar16[4];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x25738d;\n          FUN_00255da0();\n          iVar10 = piVar16[0xe];\n          param_3 = (int *)piVar16[0xd];\n          piVar16[4] = iVar10;\n          piVar16[2] = iVar10;\n          piVar16[3] = (int)param_3;\n          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;\n          cVar11 = iVar10 == -1;\n          if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }\n          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }\n          if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }\n        }" ({ "{") (expression_statement "piVar16[10] = iVar10;" (assignment_expression "piVar16[10] = iVar10" (subscript_expression "piVar16[10]" (identifier "piVar16") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "piVar16[-4] = piVar16[0xd];" (assignment_expression "piVar16[-4] = piVar16[0xd]" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (subscript_expression "piVar16[0xd]" (identifier "piVar16") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "piVar16[-5] = 0x2572f4;" (assignment_expression "piVar16[-5] = 0x2572f4" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x2572f4")) (; ";")) (expression_statement "piVar8 = (int *)FUN_0023c1d0();" (assignment_expression "piVar8 = (int *)FUN_0023c1d0()" (identifier "piVar8") (= "=") (cast_expression "(int *)FUN_0023c1d0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0023c1d0()" (identifier "FUN_0023c1d0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar10 = *piVar8;" (assignment_expression "iVar10 = *piVar8" (identifier "iVar10") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (expression_statement "*(undefined4 *)piVar16[0x23] = 0;" (assignment_expression "*(undefined4 *)piVar16[0x23] = 0" (pointer_expression "*(undefined4 *)piVar16[0x23]" (* "*") (cast_expression "(undefined4 *)piVar16[0x23]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[0x23]" (identifier "piVar16") ([ "[") (number_literal "0x23") (] "]")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar16[-3] = 0x25;" (assignment_expression "piVar16[-3] = 0x25" (subscript_expression "piVar16[-3]" (identifier "piVar16") ([ "[") (number_literal "-3") (] "]")) (= "=") (number_literal "0x25")) (; ";")) (expression_statement "piVar16[-4] = (int)piVar8;" (assignment_expression "piVar16[-4] = (int)piVar8" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x28);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x28)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar10 + 0x28)" (* "*") (cast_expression "(code **)(iVar10 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x28)" (( "(") (binary_expression "iVar10 + 0x28" (identifier "iVar10") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x25730b;" (assignment_expression "piVar16[-5] = 0x25730b" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x25730b")) (; ";")) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" (identifier "iVar10") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar16[0x10] = iVar10;" (assignment_expression "piVar16[0x10] = iVar10" (subscript_expression "piVar16[0x10]" (identifier "piVar16") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (*(char *)((int)piVar16 + 0x27) == '\0') {\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }\n          else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }" (if "if") (parenthesized_expression "(*(char *)((int)piVar16 + 0x27) == '\0')" (( "(") (binary_expression "*(char *)((int)piVar16 + 0x27) == '\0'" (pointer_expression "*(char *)((int)piVar16 + 0x27)" (* "*") (cast_expression "(char *)((int)piVar16 + 0x27)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x27)" (( "(") (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x27")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            piVar16[0x11] = iVar17;\n            piVar16[0x12] = 0;\n          }" ({ "{") (expression_statement "piVar16[0x11] = iVar17;" (assignment_expression "piVar16[0x11] = iVar17" (subscript_expression "piVar16[0x11]" (identifier "piVar16") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "piVar16[0x12] = 0;" (assignment_expression "piVar16[0x12] = 0" (subscript_expression "piVar16[0x12]" (identifier "piVar16") ([ "[") (number_literal "0x12") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }" (else "else") (compound_statement "{\n            piVar16[0x11] = piVar16[10];\n            piVar16[0x12] = iVar17;\n            piVar16[0x13] = 0;\n          }" ({ "{") (expression_statement "piVar16[0x11] = piVar16[10];" (assignment_expression "piVar16[0x11] = piVar16[10]" (subscript_expression "piVar16[0x11]" (identifier "piVar16") ([ "[") (number_literal "0x11") (] "]")) (= "=") (subscript_expression "piVar16[10]" (identifier "piVar16") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "piVar16[0x12] = iVar17;" (assignment_expression "piVar16[0x12] = iVar17" (subscript_expression "piVar16[0x12]" (identifier "piVar16") ([ "[") (number_literal "0x12") (] "]")) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "piVar16[0x13] = 0;" (assignment_expression "piVar16[0x13] = 0" (subscript_expression "piVar16[0x13]" (identifier "piVar16") ([ "[") (number_literal "0x13") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "piVar16[4] = (int)param_3;" (assignment_expression "piVar16[4] = (int)param_3" (subscript_expression "piVar16[4]" (identifier "piVar16") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "piVar16[5] = piVar16[3];" (assignment_expression "piVar16[5] = piVar16[3]" (subscript_expression "piVar16[5]" (identifier "piVar16") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "piVar16[3]" (identifier "piVar16") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "piVar16[6] = piVar16[1];" (assignment_expression "piVar16[6] = piVar16[1]" (subscript_expression "piVar16[6]" (identifier "piVar16") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar16[7] = piVar16[0xb];" (assignment_expression "piVar16[7] = piVar16[0xb]" (subscript_expression "piVar16[7]" (identifier "piVar16") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "piVar16[0xb]" (identifier "piVar16") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "piVar16[-3] = (int)(piVar16 + 0x10);" (assignment_expression "piVar16[-3] = (int)(piVar16 + 0x10)" (subscript_expression "piVar16[-3]" (identifier "piVar16") ([ "[") (number_literal "-3") (] "]")) (= "=") (cast_expression "(int)(piVar16 + 0x10)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar16 + 0x10)" (( "(") (binary_expression "piVar16 + 0x10" (identifier "piVar16") (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "piVar16[-4] = piVar16[0x24];" (assignment_expression "piVar16[-4] = piVar16[0x24]" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (subscript_expression "piVar16[0x24]" (identifier "piVar16") ([ "[") (number_literal "0x24") (] "]"))) (; ";")) (expression_statement "piVar16[-5] = piVar16[0x23];" (assignment_expression "piVar16[-5] = piVar16[0x23]" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (subscript_expression "piVar16[0x23]" (identifier "piVar16") ([ "[") (number_literal "0x23") (] "]"))) (; ";")) (expression_statement "piVar16[-6] = piVar16[0x22];" (assignment_expression "piVar16[-6] = piVar16[0x22]" (subscript_expression "piVar16[-6]" (identifier "piVar16") ([ "[") (number_literal "-6") (] "]")) (= "=") (subscript_expression "piVar16[0x22]" (identifier "piVar16") ([ "[") (number_literal "0x22") (] "]"))) (; ";")) (expression_statement "piVar16[-7] = piVar16[7];" (assignment_expression "piVar16[-7] = piVar16[7]" (subscript_expression "piVar16[-7]" (identifier "piVar16") ([ "[") (number_literal "-7") (] "]")) (= "=") (subscript_expression "piVar16[7]" (identifier "piVar16") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "piVar16[-8] = piVar16[6];" (assignment_expression "piVar16[-8] = piVar16[6]" (subscript_expression "piVar16[-8]" (identifier "piVar16") ([ "[") (number_literal "-8") (] "]")) (= "=") (subscript_expression "piVar16[6]" (identifier "piVar16") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "piVar16[-9] = piVar16[5];" (assignment_expression "piVar16[-9] = piVar16[5]" (subscript_expression "piVar16[-9]" (identifier "piVar16") ([ "[") (number_literal "-9") (] "]")) (= "=") (subscript_expression "piVar16[5]" (identifier "piVar16") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "piVar16[-10] = piVar16[4];" (assignment_expression "piVar16[-10] = piVar16[4]" (subscript_expression "piVar16[-10]" (identifier "piVar16") ([ "[") (number_literal "-10") (] "]")) (= "=") (subscript_expression "piVar16[4]" (identifier "piVar16") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "piVar16[-0xb] = piVar16[0x1d];" (assignment_expression "piVar16[-0xb] = piVar16[0x1d]" (subscript_expression "piVar16[-0xb]" (identifier "piVar16") ([ "[") (number_literal "-0xb") (] "]")) (= "=") (subscript_expression "piVar16[0x1d]" (identifier "piVar16") ([ "[") (number_literal "0x1d") (] "]"))) (; ";")) (expression_statement "piVar16[-0xc] = (int)(piVar16 + 0xe);" (assignment_expression "piVar16[-0xc] = (int)(piVar16 + 0xe)" (subscript_expression "piVar16[-0xc]" (identifier "piVar16") ([ "[") (number_literal "-0xc") (] "]")) (= "=") (cast_expression "(int)(piVar16 + 0xe)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar16 + 0xe)" (( "(") (binary_expression "piVar16 + 0xe" (identifier "piVar16") (+ "+") (number_literal "0xe")) () ")")))) (; ";")) (expression_statement "piVar16[-0xd] = 0x25738d;" (assignment_expression "piVar16[-0xd] = 0x25738d" (subscript_expression "piVar16[-0xd]" (identifier "piVar16") ([ "[") (number_literal "-0xd") (] "]")) (= "=") (number_literal "0x25738d")) (; ";")) (expression_statement "FUN_00255da0();" (call_expression "FUN_00255da0()" (identifier "FUN_00255da0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar10 = piVar16[0xe];" (assignment_expression "iVar10 = piVar16[0xe]" (identifier "iVar10") (= "=") (subscript_expression "piVar16[0xe]" (identifier "piVar16") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "param_3 = (int *)piVar16[0xd];" (assignment_expression "param_3 = (int *)piVar16[0xd]" (identifier "param_3") (= "=") (cast_expression "(int *)piVar16[0xd]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[0xd]" (identifier "piVar16") ([ "[") (number_literal "0xd") (] "]")))) (; ";")) (expression_statement "piVar16[4] = iVar10;" (assignment_expression "piVar16[4] = iVar10" (subscript_expression "piVar16[4]" (identifier "piVar16") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "piVar16[2] = iVar10;" (assignment_expression "piVar16[2] = iVar10" (subscript_expression "piVar16[2]" (identifier "piVar16") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "piVar16[3] = (int)param_3;" (assignment_expression "piVar16[3] = (int)param_3" (subscript_expression "piVar16[3]" (identifier "piVar16") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "cVar4 = param_3 != (int *)0x0 && iVar10 == -1;" (assignment_expression "cVar4 = param_3 != (int *)0x0 && iVar10 == -1" (identifier "cVar4") (= "=") (binary_expression "param_3 != (int *)0x0 && iVar10 == -1" (binary_expression "param_3 != (int *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (binary_expression "iVar10 == -1" (identifier "iVar10") (== "==") (number_literal "-1")))) (; ";")) (expression_statement "cVar11 = iVar10 == -1;" (assignment_expression "cVar11 = iVar10 == -1" (identifier "cVar11") (= "=") (binary_expression "iVar10 == -1" (identifier "iVar10") (== "==") (number_literal "-1"))) (; ";")) (if_statement "if ((bool)cVar4) {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }" (if "if") (parenthesized_expression "((bool)cVar4)" (( "(") (cast_expression "(bool)cVar4" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "cVar4")) () ")")) (compound_statement "{\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }\n            cVar11 = '\0';\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }\n          }" ({ "{") (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }" (if "if") (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" (( "(") (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_3[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n              iVar10 = *(int *)param_3[2];\n            }" ({ "{") (expression_statement "iVar10 = *(int *)param_3[2];" (assignment_expression "iVar10 = *(int *)param_3[2]" (identifier "iVar10") (= "=") (pointer_expression "*(int *)param_3[2]" (* "*") (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }" (else "else") (compound_statement "{\n              *(char *)((int)piVar16 + 0x23) = cVar4;\n              iVar10 = *param_3;\n              piVar16[-5] = piVar16[3];\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x2578ab;\n              iVar10 = (*pcVar2)();\n              cVar4 = *(char *)((int)piVar16 + 0x23);\n            }" ({ "{") (expression_statement "*(char *)((int)piVar16 + 0x23) = cVar4;" (assignment_expression "*(char *)((int)piVar16 + 0x23) = cVar4" (pointer_expression "*(char *)((int)piVar16 + 0x23)" (* "*") (cast_expression "(char *)((int)piVar16 + 0x23)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x23)" (( "(") (binary_expression "(int)piVar16 + 0x23" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x23")) () ")")))) (= "=") (identifier "cVar4")) (; ";")) (expression_statement "iVar10 = *param_3;" (assignment_expression "iVar10 = *param_3" (identifier "iVar10") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "piVar16[-5] = piVar16[3];" (assignment_expression "piVar16[-5] = piVar16[3]" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (subscript_expression "piVar16[3]" (identifier "piVar16") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x24)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar10 + 0x24)" (* "*") (cast_expression "(code **)(iVar10 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x24)" (( "(") (binary_expression "iVar10 + 0x24" (identifier "iVar10") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "piVar16[-6] = 0x2578ab;" (assignment_expression "piVar16[-6] = 0x2578ab" (subscript_expression "piVar16[-6]" (identifier "piVar16") ([ "[") (number_literal "-6") (] "]")) (= "=") (number_literal "0x2578ab")) (; ";")) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" (identifier "iVar10") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "cVar4 = *(char *)((int)piVar16 + 0x23);" (assignment_expression "cVar4 = *(char *)((int)piVar16 + 0x23)" (identifier "cVar4") (= "=") (pointer_expression "*(char *)((int)piVar16 + 0x23)" (* "*") (cast_expression "(char *)((int)piVar16 + 0x23)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x23)" (( "(") (binary_expression "(int)piVar16 + 0x23" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x23")) () ")"))))) (; ";")) (} "}")))) (expression_statement "cVar11 = '\0';" (assignment_expression "cVar11 = '\0'" (identifier "cVar11") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }" (if "if") (parenthesized_expression "(iVar10 == -1)" (( "(") (binary_expression "iVar10 == -1" (identifier "iVar10") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n              param_3 = (int *)0x0;\n              cVar11 = cVar4;\n            }" ({ "{") (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "cVar11 = cVar4;" (assignment_expression "cVar11 = cVar4" (identifier "cVar11") (= "=") (identifier "cVar4")) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }\n          else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }" (if "if") (parenthesized_expression "((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0'))" (( "(") (binary_expression "(*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')" (parenthesized_expression "(*piVar16 == 0)" (( "(") (binary_expression "*piVar16 == 0" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(char *)((int)piVar16 + 0x22) == '\0')" (( "(") (binary_expression "*(char *)((int)piVar16 + 0x22) == '\0'" (pointer_expression "*(char *)((int)piVar16 + 0x22)" (* "*") (cast_expression "(char *)((int)piVar16 + 0x22)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x22)" (( "(") (binary_expression "(int)piVar16 + 0x22" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x22")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            cVar4 = *(char *)((int)piVar16 + 0x22);\n          }" ({ "{") (expression_statement "cVar4 = *(char *)((int)piVar16 + 0x22);" (assignment_expression "cVar4 = *(char *)((int)piVar16 + 0x22)" (identifier "cVar4") (= "=") (pointer_expression "*(char *)((int)piVar16 + 0x22)" (* "*") (cast_expression "(char *)((int)piVar16 + 0x22)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x22)" (( "(") (binary_expression "(int)piVar16 + 0x22" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x22")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }" (else "else") (compound_statement "{\n            piVar8 = *(int **)(*piVar16 + 8);\n            if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }\n            cVar4 = iVar10 == -1;\n          }" ({ "{") (expression_statement "piVar8 = *(int **)(*piVar16 + 8);" (assignment_expression "piVar8 = *(int **)(*piVar16 + 8)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(*piVar16 + 8)" (* "*") (cast_expression "(int **)(*piVar16 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar16 + 8)" (( "(") (binary_expression "*piVar16 + 8" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (piVar8 < *(int **)(*piVar16 + 0xc)) {\n              iVar10 = *piVar8;\n            }\n            else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }" (if "if") (parenthesized_expression "(piVar8 < *(int **)(*piVar16 + 0xc))" (( "(") (binary_expression "piVar8 < *(int **)(*piVar16 + 0xc)" (identifier "piVar8") (< "<") (pointer_expression "*(int **)(*piVar16 + 0xc)" (* "*") (cast_expression "(int **)(*piVar16 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar16 + 0xc)" (( "(") (binary_expression "*piVar16 + 0xc" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (compound_statement "{\n              iVar10 = *piVar8;\n            }" ({ "{") (expression_statement "iVar10 = *piVar8;" (assignment_expression "iVar10 = *piVar8" (identifier "iVar10") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (} "}")) (else_clause "else {\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }" (else "else") (compound_statement "{\n              iVar10 = *(int *)*piVar16;\n              piVar16[-5] = *piVar16;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-6] = 0x257893;\n              iVar10 = (*pcVar2)();\n            }" ({ "{") (expression_statement "iVar10 = *(int *)*piVar16;" (assignment_expression "iVar10 = *(int *)*piVar16" (identifier "iVar10") (= "=") (pointer_expression "*(int *)*piVar16" (* "*") (cast_expression "(int *)*piVar16" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))))) (; ";")) (expression_statement "piVar16[-5] = *piVar16;" (assignment_expression "piVar16[-5] = *piVar16" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x24)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar10 + 0x24)" (* "*") (cast_expression "(code **)(iVar10 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x24)" (( "(") (binary_expression "iVar10 + 0x24" (identifier "iVar10") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "piVar16[-6] = 0x257893;" (assignment_expression "piVar16[-6] = 0x257893" (subscript_expression "piVar16[-6]" (identifier "piVar16") ([ "[") (number_literal "-6") (] "]")) (= "=") (number_literal "0x257893")) (; ";")) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" (identifier "iVar10") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "cVar4 = iVar10 == -1;" (assignment_expression "cVar4 = iVar10 == -1" (identifier "cVar4") (= "=") (binary_expression "iVar10 == -1" (identifier "iVar10") (== "==") (number_literal "-1"))) (; ";")) (} "}")))) (if_statement "if (cVar4 == cVar11) {\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }" (if "if") (parenthesized_expression "(cVar4 == cVar11)" (( "(") (binary_expression "cVar4 == cVar11" (identifier "cVar4") (== "==") (identifier "cVar11")) () ")")) (compound_statement "{\n            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;\n          }" ({ "{") (expression_statement "*(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;" (assignment_expression "*(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2" (pointer_expression "*(uint *)piVar16[0x22]" (* "*") (cast_expression "(uint *)piVar16[0x22]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[0x22]" (identifier "piVar16") ([ "[") (number_literal "0x22") (] "]")))) (= "=") (binary_expression "*(uint *)piVar16[0x22] | 2" (pointer_expression "*(uint *)piVar16[0x22]" (* "*") (cast_expression "(uint *)piVar16[0x22]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[0x22]" (identifier "piVar16") ([ "[") (number_literal "0x22") (] "]")))) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }" (else "else") (compound_statement "{\n          piVar16[0x1e] = (int)param_3;\n          piVar16[0x1f] = piVar16[3];\n          piVar16[0x21] = piVar16[0xb];\n          piVar16[0x20] = piVar16[1];\n          piVar16[-2] = iVar10;\n          piVar16[-3] = iVar17;\n          piVar16[-4] = piVar16[0x24];\n          piVar16[-5] = piVar16[0x23];\n          piVar16[-6] = piVar16[0x22];\n          piVar16[-7] = piVar16[0x21];\n          piVar16[-8] = piVar16[0x20];\n          piVar16[-9] = piVar16[0x1f];\n          piVar16[-10] = piVar16[0x1e];\n          piVar16[-0xb] = piVar16[0x1d];\n          piVar16[-0xc] = (int)(piVar16 + 0xe);\n          piVar16[-0xd] = 0x257721;\n          (*pcVar2)();\n          piVar16[0x1d] = piVar16[0xd];\n          param_3 = (int *)piVar16[0x1d];\n          piVar16[0x1e] = piVar16[0xe];\n          piVar16[2] = piVar16[0x1e];\n        }" ({ "{") (expression_statement "piVar16[0x1e] = (int)param_3;" (assignment_expression "piVar16[0x1e] = (int)param_3" (subscript_expression "piVar16[0x1e]" (identifier "piVar16") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "piVar16[0x1f] = piVar16[3];" (assignment_expression "piVar16[0x1f] = piVar16[3]" (subscript_expression "piVar16[0x1f]" (identifier "piVar16") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (subscript_expression "piVar16[3]" (identifier "piVar16") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "piVar16[0x21] = piVar16[0xb];" (assignment_expression "piVar16[0x21] = piVar16[0xb]" (subscript_expression "piVar16[0x21]" (identifier "piVar16") ([ "[") (number_literal "0x21") (] "]")) (= "=") (subscript_expression "piVar16[0xb]" (identifier "piVar16") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "piVar16[0x20] = piVar16[1];" (assignment_expression "piVar16[0x20] = piVar16[1]" (subscript_expression "piVar16[0x20]" (identifier "piVar16") ([ "[") (number_literal "0x20") (] "]")) (= "=") (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar16[-2] = iVar10;" (assignment_expression "piVar16[-2] = iVar10" (subscript_expression "piVar16[-2]" (identifier "piVar16") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "piVar16[-3] = iVar17;" (assignment_expression "piVar16[-3] = iVar17" (subscript_expression "piVar16[-3]" (identifier "piVar16") ([ "[") (number_literal "-3") (] "]")) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "piVar16[-4] = piVar16[0x24];" (assignment_expression "piVar16[-4] = piVar16[0x24]" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (subscript_expression "piVar16[0x24]" (identifier "piVar16") ([ "[") (number_literal "0x24") (] "]"))) (; ";")) (expression_statement "piVar16[-5] = piVar16[0x23];" (assignment_expression "piVar16[-5] = piVar16[0x23]" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (subscript_expression "piVar16[0x23]" (identifier "piVar16") ([ "[") (number_literal "0x23") (] "]"))) (; ";")) (expression_statement "piVar16[-6] = piVar16[0x22];" (assignment_expression "piVar16[-6] = piVar16[0x22]" (subscript_expression "piVar16[-6]" (identifier "piVar16") ([ "[") (number_literal "-6") (] "]")) (= "=") (subscript_expression "piVar16[0x22]" (identifier "piVar16") ([ "[") (number_literal "0x22") (] "]"))) (; ";")) (expression_statement "piVar16[-7] = piVar16[0x21];" (assignment_expression "piVar16[-7] = piVar16[0x21]" (subscript_expression "piVar16[-7]" (identifier "piVar16") ([ "[") (number_literal "-7") (] "]")) (= "=") (subscript_expression "piVar16[0x21]" (identifier "piVar16") ([ "[") (number_literal "0x21") (] "]"))) (; ";")) (expression_statement "piVar16[-8] = piVar16[0x20];" (assignment_expression "piVar16[-8] = piVar16[0x20]" (subscript_expression "piVar16[-8]" (identifier "piVar16") ([ "[") (number_literal "-8") (] "]")) (= "=") (subscript_expression "piVar16[0x20]" (identifier "piVar16") ([ "[") (number_literal "0x20") (] "]"))) (; ";")) (expression_statement "piVar16[-9] = piVar16[0x1f];" (assignment_expression "piVar16[-9] = piVar16[0x1f]" (subscript_expression "piVar16[-9]" (identifier "piVar16") ([ "[") (number_literal "-9") (] "]")) (= "=") (subscript_expression "piVar16[0x1f]" (identifier "piVar16") ([ "[") (number_literal "0x1f") (] "]"))) (; ";")) (expression_statement "piVar16[-10] = piVar16[0x1e];" (assignment_expression "piVar16[-10] = piVar16[0x1e]" (subscript_expression "piVar16[-10]" (identifier "piVar16") ([ "[") (number_literal "-10") (] "]")) (= "=") (subscript_expression "piVar16[0x1e]" (identifier "piVar16") ([ "[") (number_literal "0x1e") (] "]"))) (; ";")) (expression_statement "piVar16[-0xb] = piVar16[0x1d];" (assignment_expression "piVar16[-0xb] = piVar16[0x1d]" (subscript_expression "piVar16[-0xb]" (identifier "piVar16") ([ "[") (number_literal "-0xb") (] "]")) (= "=") (subscript_expression "piVar16[0x1d]" (identifier "piVar16") ([ "[") (number_literal "0x1d") (] "]"))) (; ";")) (expression_statement "piVar16[-0xc] = (int)(piVar16 + 0xe);" (assignment_expression "piVar16[-0xc] = (int)(piVar16 + 0xe)" (subscript_expression "piVar16[-0xc]" (identifier "piVar16") ([ "[") (number_literal "-0xc") (] "]")) (= "=") (cast_expression "(int)(piVar16 + 0xe)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar16 + 0xe)" (( "(") (binary_expression "piVar16 + 0xe" (identifier "piVar16") (+ "+") (number_literal "0xe")) () ")")))) (; ";")) (expression_statement "piVar16[-0xd] = 0x257721;" (assignment_expression "piVar16[-0xd] = 0x257721" (subscript_expression "piVar16[-0xd]" (identifier "piVar16") ([ "[") (number_literal "-0xd") (] "]")) (= "=") (number_literal "0x257721")) (; ";")) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar16[0x1d] = piVar16[0xd];" (assignment_expression "piVar16[0x1d] = piVar16[0xd]" (subscript_expression "piVar16[0x1d]" (identifier "piVar16") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (subscript_expression "piVar16[0xd]" (identifier "piVar16") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "param_3 = (int *)piVar16[0x1d];" (assignment_expression "param_3 = (int *)piVar16[0x1d]" (identifier "param_3") (= "=") (cast_expression "(int *)piVar16[0x1d]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[0x1d]" (identifier "piVar16") ([ "[") (number_literal "0x1d") (] "]")))) (; ";")) (expression_statement "piVar16[0x1e] = piVar16[0xe];" (assignment_expression "piVar16[0x1e] = piVar16[0xe]" (subscript_expression "piVar16[0x1e]" (identifier "piVar16") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (subscript_expression "piVar16[0xe]" (identifier "piVar16") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "piVar16[2] = piVar16[0x1e];" (assignment_expression "piVar16[2] = piVar16[0x1e]" (subscript_expression "piVar16[2]" (identifier "piVar16") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "piVar16[0x1e]" (identifier "piVar16") ([ "[") (number_literal "0x1e") (] "]"))) (; ";")) (} "}")))) (expression_statement "piVar15 = piVar16 + -1;" (assignment_expression "piVar15 = piVar16 + -1" (identifier "piVar15") (= "=") (binary_expression "piVar16 + -1" (identifier "piVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "param_10 = (undefined4 *)(piVar16[1] + 4);" (assignment_expression "param_10 = (undefined4 *)(piVar16[1] + 4)" (identifier "param_10") (= "=") (cast_expression "(undefined4 *)(piVar16[1] + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar16[1] + 4)" (( "(") (binary_expression "piVar16[1] + 4" (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "piVar1 = piVar16 + 0x25;" (assignment_expression "piVar1 = piVar16 + 0x25" (identifier "piVar1") (= "=") (binary_expression "piVar16 + 0x25" (identifier "piVar16") (+ "+") (number_literal "0x25"))) (; ";")) (expression_statement "piVar16 = piVar16 + -1;" (assignment_expression "piVar16 = piVar16 + -1" (identifier "piVar16") (= "=") (binary_expression "piVar16 + -1" (identifier "piVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "piVar8 = piVar15;" (assignment_expression "piVar8 = piVar15" (identifier "piVar8") (= "=") (identifier "piVar15")) (; ";")) (if_statement "if (param_10 == (undefined4 *)*piVar1) break;" (if "if") (parenthesized_expression "(param_10 == (undefined4 *)*piVar1)" (( "(") (binary_expression "param_10 == (undefined4 *)*piVar1" (identifier "param_10") (== "==") (cast_expression "(undefined4 *)*piVar1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (else_clause "else {\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }" (else "else") (compound_statement "{\n        iVar10 = *piVar6;\n        piVar16[-2] = *param_10;\n        piVar16[-3] = 0x2000;\n        piVar16[-4] = (int)piVar6;\n        pcVar2 = *(code **)(iVar10 + 8);\n        piVar16[-5] = 0x257191;\n        cVar4 = (*pcVar2)();\n        if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }\n        piVar8 = piVar16;\n        if (param_10 == (undefined4 *)piVar16[0x26]) break;\n      }" ({ "{") (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" (identifier "iVar10") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "piVar16[-2] = *param_10;" (assignment_expression "piVar16[-2] = *param_10" (subscript_expression "piVar16[-2]" (identifier "piVar16") ([ "[") (number_literal "-2") (] "]")) (= "=") (pointer_expression "*param_10" (* "*") (identifier "param_10"))) (; ";")) (expression_statement "piVar16[-3] = 0x2000;" (assignment_expression "piVar16[-3] = 0x2000" (subscript_expression "piVar16[-3]" (identifier "piVar16") ([ "[") (number_literal "-3") (] "]")) (= "=") (number_literal "0x2000")) (; ";")) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar10 + 8);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 8)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar10 + 8)" (* "*") (cast_expression "(code **)(iVar10 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x257191;" (assignment_expression "piVar16[-5] = 0x257191" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x257191")) (; ";")) (expression_statement "cVar4 = (*pcVar2)();" (assignment_expression "cVar4 = (*pcVar2)()" (identifier "cVar4") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar4 == '\0') {\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }\n        else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }\n          if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }\n          piVar16[3] = -1;\n          param_10 = param_10 + 1;\n        }" ({ "{") (if_statement "if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }\n          else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }" (if "if") (parenthesized_expression "((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0'))" (( "(") (binary_expression "(param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')" (parenthesized_expression "(param_3 == (int *)0x0)" (( "(") (binary_expression "param_3 == (int *)0x0" (identifier "param_3") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "((char)piVar16[2] == '\0')" (( "(") (binary_expression "(char)piVar16[2] == '\0'" (cast_expression "(char)piVar16[2]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar16[2]" (identifier "piVar16") ([ "[") (number_literal "2") (] "]"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            iVar10 = piVar16[3];\nLAB_002571af:\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x2571ba;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x2571c7;\n            iVar7 = (*pcVar2)();\n            iVar10 = piVar16[3];\n            if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }\n          }" ({ "{") (expression_statement "iVar10 = piVar16[3];" (assignment_expression "iVar10 = piVar16[3]" (identifier "iVar10") (= "=") (subscript_expression "piVar16[3]" (identifier "piVar16") ([ "[") (number_literal "3") (] "]"))) (; ";")) (labeled_statement "LAB_002571af:\n            iVar17 = *piVar6;" (statement_identifier "LAB_002571af") (: ":") (expression_statement "iVar17 = *piVar6;" (assignment_expression "iVar17 = *piVar6" (identifier "iVar17") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";"))) (expression_statement "piVar16[-3] = iVar10;" (assignment_expression "piVar16[-3] = iVar10" (subscript_expression "piVar16[-3]" (identifier "piVar16") ([ "[") (number_literal "-3") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar17 + 0x20);" (assignment_expression "pcVar2 = *(code **)(iVar17 + 0x20)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar17 + 0x20)" (* "*") (cast_expression "(code **)(iVar17 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar17 + 0x20)" (( "(") (binary_expression "iVar17 + 0x20" (identifier "iVar17") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x2571ba;" (assignment_expression "piVar16[-5] = 0x2571ba" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x2571ba")) (; ";")) (expression_statement "iVar17 = (*pcVar2)();" (assignment_expression "iVar17 = (*pcVar2)()" (identifier "iVar17") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" (identifier "iVar10") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "piVar16[-3] = *param_10;" (assignment_expression "piVar16[-3] = *param_10" (subscript_expression "piVar16[-3]" (identifier "piVar16") ([ "[") (number_literal "-3") (] "]")) (= "=") (pointer_expression "*param_10" (* "*") (identifier "param_10"))) (; ";")) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x20);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x20)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar10 + 0x20)" (* "*") (cast_expression "(code **)(iVar10 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x20)" (( "(") (binary_expression "iVar10 + 0x20" (identifier "iVar10") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x2571c7;" (assignment_expression "piVar16[-5] = 0x2571c7" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x2571c7")) (; ";")) (expression_statement "iVar7 = (*pcVar2)();" (assignment_expression "iVar7 = (*pcVar2)()" (identifier "iVar7") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar10 = piVar16[3];" (assignment_expression "iVar10 = piVar16[3]" (identifier "iVar10") (= "=") (subscript_expression "piVar16[3]" (identifier "piVar16") ([ "[") (number_literal "3") (] "]"))) (; ";")) (if_statement "if (iVar7 != iVar17) {\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }" (if "if") (parenthesized_expression "(iVar7 != iVar17)" (( "(") (binary_expression "iVar7 != iVar17" (identifier "iVar7") (!= "!=") (identifier "iVar17")) () ")")) (compound_statement "{\nLAB_002571d2:\n              iVar17 = *piVar6;\n              piVar16[-3] = iVar10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar17 + 0x18);\n              piVar16[-5] = 0x2571dd;\n              iVar17 = (*pcVar2)();\n              iVar10 = *piVar6;\n              piVar16[-3] = *param_10;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 0x18);\n              piVar16[-5] = 0x2571ea;\n              iVar10 = (*pcVar2)();\n              if (iVar10 != iVar17) goto LAB_00257861;\n            }" ({ "{") (labeled_statement "LAB_002571d2:\n              iVar17 = *piVar6;" (statement_identifier "LAB_002571d2") (: ":") (expression_statement "iVar17 = *piVar6;" (assignment_expression "iVar17 = *piVar6" (identifier "iVar17") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";"))) (expression_statement "piVar16[-3] = iVar10;" (assignment_expression "piVar16[-3] = iVar10" (subscript_expression "piVar16[-3]" (identifier "piVar16") ([ "[") (number_literal "-3") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar17 + 0x18);" (assignment_expression "pcVar2 = *(code **)(iVar17 + 0x18)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar17 + 0x18)" (* "*") (cast_expression "(code **)(iVar17 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar17 + 0x18)" (( "(") (binary_expression "iVar17 + 0x18" (identifier "iVar17") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x2571dd;" (assignment_expression "piVar16[-5] = 0x2571dd" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x2571dd")) (; ";")) (expression_statement "iVar17 = (*pcVar2)();" (assignment_expression "iVar17 = (*pcVar2)()" (identifier "iVar17") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" (identifier "iVar10") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "piVar16[-3] = *param_10;" (assignment_expression "piVar16[-3] = *param_10" (subscript_expression "piVar16[-3]" (identifier "piVar16") ([ "[") (number_literal "-3") (] "]")) (= "=") (pointer_expression "*param_10" (* "*") (identifier "param_10"))) (; ";")) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x18);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x18)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar10 + 0x18)" (* "*") (cast_expression "(code **)(iVar10 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x18)" (( "(") (binary_expression "iVar10 + 0x18" (identifier "iVar10") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x2571ea;" (assignment_expression "piVar16[-5] = 0x2571ea" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x2571ea")) (; ";")) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" (identifier "iVar10") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar10 != iVar17) goto LAB_00257861;" (if "if") (parenthesized_expression "(iVar10 != iVar17)" (( "(") (binary_expression "iVar10 != iVar17" (identifier "iVar10") (!= "!=") (identifier "iVar17")) () ")")) (goto_statement "goto LAB_00257861;" (goto "goto") (statement_identifier "LAB_00257861") (; ";"))) (} "}"))) (} "}")) (else_clause "else {\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }" (else "else") (compound_statement "{\n            if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }\n            if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }\n            iVar17 = *piVar6;\n            piVar16[-3] = iVar10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar17 + 0x20);\n            piVar16[-5] = 0x25767c;\n            iVar17 = (*pcVar2)();\n            iVar10 = *piVar6;\n            piVar16[-3] = *param_10;\n            piVar16[-4] = (int)piVar6;\n            pcVar2 = *(code **)(iVar10 + 0x20);\n            piVar16[-5] = 0x257689;\n            iVar10 = (*pcVar2)();\n            if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }\n          }" ({ "{") (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n              iVar10 = *(int *)param_3[2];\n            }\n            else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }" (if "if") (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" (( "(") (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_3[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n              iVar10 = *(int *)param_3[2];\n            }" ({ "{") (expression_statement "iVar10 = *(int *)param_3[2];" (assignment_expression "iVar10 = *(int *)param_3[2]" (identifier "iVar10") (= "=") (pointer_expression "*(int *)param_3[2]" (* "*") (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }" (else "else") (compound_statement "{\n              iVar10 = *param_3;\n              piVar16[-4] = (int)param_3;\n              pcVar2 = *(code **)(iVar10 + 0x24);\n              piVar16[-5] = 0x25787c;\n              iVar10 = (*pcVar2)();\n            }" ({ "{") (expression_statement "iVar10 = *param_3;" (assignment_expression "iVar10 = *param_3" (identifier "iVar10") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x24)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar10 + 0x24)" (* "*") (cast_expression "(code **)(iVar10 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x24)" (( "(") (binary_expression "iVar10 + 0x24" (identifier "iVar10") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x25787c;" (assignment_expression "piVar16[-5] = 0x25787c" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x25787c")) (; ";")) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" (identifier "iVar10") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar10 == -1) {\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }" (if "if") (parenthesized_expression "(iVar10 == -1)" (( "(") (binary_expression "iVar10 == -1" (identifier "iVar10") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n              param_3 = (int *)0x0;\n              iVar10 = -1;\n              goto LAB_002571af;\n            }" ({ "{") (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar10 = -1;" (assignment_expression "iVar10 = -1" (identifier "iVar10") (= "=") (number_literal "-1")) (; ";")) (goto_statement "goto LAB_002571af;" (goto "goto") (statement_identifier "LAB_002571af") (; ";")) (} "}"))) (expression_statement "iVar17 = *piVar6;" (assignment_expression "iVar17 = *piVar6" (identifier "iVar17") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "piVar16[-3] = iVar10;" (assignment_expression "piVar16[-3] = iVar10" (subscript_expression "piVar16[-3]" (identifier "piVar16") ([ "[") (number_literal "-3") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar17 + 0x20);" (assignment_expression "pcVar2 = *(code **)(iVar17 + 0x20)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar17 + 0x20)" (* "*") (cast_expression "(code **)(iVar17 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar17 + 0x20)" (( "(") (binary_expression "iVar17 + 0x20" (identifier "iVar17") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x25767c;" (assignment_expression "piVar16[-5] = 0x25767c" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x25767c")) (; ";")) (expression_statement "iVar17 = (*pcVar2)();" (assignment_expression "iVar17 = (*pcVar2)()" (identifier "iVar17") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" (identifier "iVar10") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "piVar16[-3] = *param_10;" (assignment_expression "piVar16[-3] = *param_10" (subscript_expression "piVar16[-3]" (identifier "piVar16") ([ "[") (number_literal "-3") (] "]")) (= "=") (pointer_expression "*param_10" (* "*") (identifier "param_10"))) (; ";")) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x20);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x20)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar10 + 0x20)" (* "*") (cast_expression "(code **)(iVar10 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x20)" (( "(") (binary_expression "iVar10 + 0x20" (identifier "iVar10") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x257689;" (assignment_expression "piVar16[-5] = 0x257689" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x257689")) (; ";")) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" (identifier "iVar10") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar17 != iVar10) {\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }" (if "if") (parenthesized_expression "(iVar17 != iVar10)" (( "(") (binary_expression "iVar17 != iVar10" (identifier "iVar17") (!= "!=") (identifier "iVar10")) () ")")) (compound_statement "{\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }\n              if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }\n              goto LAB_002571d2;\n            }" ({ "{") (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar10 = *(int *)param_3[2];\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }" (if "if") (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" (( "(") (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_3[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n                iVar10 = *(int *)param_3[2];\n              }" ({ "{") (expression_statement "iVar10 = *(int *)param_3[2];" (assignment_expression "iVar10 = *(int *)param_3[2]" (identifier "iVar10") (= "=") (pointer_expression "*(int *)param_3[2]" (* "*") (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }" (else "else") (compound_statement "{\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x24);\n                piVar16[-5] = 0x2578c1;\n                iVar10 = (*pcVar2)();\n              }" ({ "{") (expression_statement "iVar10 = *param_3;" (assignment_expression "iVar10 = *param_3" (identifier "iVar10") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x24)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar10 + 0x24)" (* "*") (cast_expression "(code **)(iVar10 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x24)" (( "(") (binary_expression "iVar10 + 0x24" (identifier "iVar10") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x2578c1;" (assignment_expression "piVar16[-5] = 0x2578c1" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x2578c1")) (; ";")) (expression_statement "iVar10 = (*pcVar2)();" (assignment_expression "iVar10 = (*pcVar2)()" (identifier "iVar10") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar10 == -1) {\n                param_3 = (int *)0x0;\n              }" (if "if") (parenthesized_expression "(iVar10 == -1)" (( "(") (binary_expression "iVar10 == -1" (identifier "iVar10") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                param_3 = (int *)0x0;\n              }" ({ "{") (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (goto_statement "goto LAB_002571d2;" (goto "goto") (statement_identifier "LAB_002571d2") (; ";")) (} "}"))) (} "}")))) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) {\n            param_3[2] = param_3[2] + 4;\n          }\n          else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }" (if "if") (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" (( "(") (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(uint)param_3[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n            param_3[2] = param_3[2] + 4;\n          }" ({ "{") (expression_statement "param_3[2] = param_3[2] + 4;" (assignment_expression "param_3[2] = param_3[2] + 4" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "param_3[2] + 4" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "4"))) (; ";")) (} "}")) (else_clause "else {\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }" (else "else") (compound_statement "{\n            iVar10 = *param_3;\n            piVar16[-4] = (int)param_3;\n            pcVar2 = *(code **)(iVar10 + 0x28);\n            piVar16[-5] = 0x257811;\n            (*pcVar2)();\n          }" ({ "{") (expression_statement "iVar10 = *param_3;" (assignment_expression "iVar10 = *param_3" (identifier "iVar10") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x28);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x28)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar10 + 0x28)" (* "*") (cast_expression "(code **)(iVar10 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x28)" (( "(") (binary_expression "iVar10 + 0x28" (identifier "iVar10") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x257811;" (assignment_expression "piVar16[-5] = 0x257811" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x257811")) (; ";")) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "piVar16[3] = -1;" (assignment_expression "piVar16[3] = -1" (subscript_expression "piVar16[3]" (identifier "piVar16") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" (identifier "param_10") (= "=") (binary_expression "param_10 + 1" (identifier "param_10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }" (else "else") (compound_statement "{\n          param_10 = param_10 + 1;\n          if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }\n          piVar16[0x25] = (int)param_10;\n          iVar10 = piVar16[3];\n          piVar16[2] = (int)piVar6;\n          bVar9 = iVar10 == -1;\n          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;\n          if (bVar13) goto LAB_002574dc;\nLAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n          bVar14 = (bool)bVar9;\n          if (bVar12 != 0) goto LAB_00257510;\n          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }\nLAB_00257548:\n          piVar16[3] = iVar10;\n          piVar6 = (int *)piVar16[2];\n          param_10 = (undefined4 *)piVar16[0x25];\n        }" ({ "{") (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" (identifier "param_10") (= "=") (binary_expression "param_10 + 1" (identifier "param_10") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((undefined4 *)piVar16[0x26] != param_10) {\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }" (if "if") (parenthesized_expression "((undefined4 *)piVar16[0x26] != param_10)" (( "(") (binary_expression "(undefined4 *)piVar16[0x26] != param_10" (cast_expression "(undefined4 *)piVar16[0x26]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[0x26]" (identifier "piVar16") ([ "[") (number_literal "0x26") (] "]"))) (!= "!=") (identifier "param_10")) () ")")) (compound_statement "{\n            puVar3 = (undefined4 *)piVar16[0x26];\n            do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);\n          }" ({ "{") (expression_statement "puVar3 = (undefined4 *)piVar16[0x26];" (assignment_expression "puVar3 = (undefined4 *)piVar16[0x26]" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)piVar16[0x26]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[0x26]" (identifier "piVar16") ([ "[") (number_literal "0x26") (] "]")))) (; ";")) (do_statement "do {\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            } while (puVar3 != param_10);" (do "do") (compound_statement "{\n              iVar10 = *piVar6;\n              piVar16[-2] = *param_10;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = (int)piVar6;\n              pcVar2 = *(code **)(iVar10 + 8);\n              piVar16[-5] = 0x257440;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') break;\n              param_10 = param_10 + 1;\n            }" ({ "{") (expression_statement "iVar10 = *piVar6;" (assignment_expression "iVar10 = *piVar6" (identifier "iVar10") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (expression_statement "piVar16[-2] = *param_10;" (assignment_expression "piVar16[-2] = *param_10" (subscript_expression "piVar16[-2]" (identifier "piVar16") ([ "[") (number_literal "-2") (] "]")) (= "=") (pointer_expression "*param_10" (* "*") (identifier "param_10"))) (; ";")) (expression_statement "piVar16[-3] = 0x2000;" (assignment_expression "piVar16[-3] = 0x2000" (subscript_expression "piVar16[-3]" (identifier "piVar16") ([ "[") (number_literal "-3") (] "]")) (= "=") (number_literal "0x2000")) (; ";")) (expression_statement "piVar16[-4] = (int)piVar6;" (assignment_expression "piVar16[-4] = (int)piVar6" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar10 + 8);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 8)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar10 + 8)" (* "*") (cast_expression "(code **)(iVar10 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x257440;" (assignment_expression "piVar16[-5] = 0x257440" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x257440")) (; ";")) (expression_statement "cVar4 = (*pcVar2)();" (assignment_expression "cVar4 = (*pcVar2)()" (identifier "cVar4") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar4 == '\0') break;" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_10 = param_10 + 1;" (assignment_expression "param_10 = param_10 + 1" (identifier "param_10") (= "=") (binary_expression "param_10 + 1" (identifier "param_10") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar3 != param_10)" (( "(") (binary_expression "puVar3 != param_10" (identifier "puVar3") (!= "!=") (identifier "param_10")) () ")")) (; ";")) (} "}"))) (expression_statement "piVar16[0x25] = (int)param_10;" (assignment_expression "piVar16[0x25] = (int)param_10" (subscript_expression "piVar16[0x25]" (identifier "piVar16") ([ "[") (number_literal "0x25") (] "]")) (= "=") (cast_expression "(int)param_10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_10"))) (; ";")) (expression_statement "iVar10 = piVar16[3];" (assignment_expression "iVar10 = piVar16[3]" (identifier "iVar10") (= "=") (subscript_expression "piVar16[3]" (identifier "piVar16") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "piVar16[2] = (int)piVar6;" (assignment_expression "piVar16[2] = (int)piVar6" (subscript_expression "piVar16[2]" (identifier "piVar16") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (expression_statement "bVar9 = iVar10 == -1;" (assignment_expression "bVar9 = iVar10 == -1" (identifier "bVar9") (= "=") (binary_expression "iVar10 == -1" (identifier "iVar10") (== "==") (number_literal "-1"))) (; ";")) (expression_statement "bVar13 = param_3 != (int *)0x0 && (bool)bVar9;" (assignment_expression "bVar13 = param_3 != (int *)0x0 && (bool)bVar9" (identifier "bVar13") (= "=") (binary_expression "param_3 != (int *)0x0 && (bool)bVar9" (binary_expression "param_3 != (int *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (cast_expression "(bool)bVar9" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "bVar9")))) (; ";")) (if_statement "if (bVar13) goto LAB_002574dc;" (if "if") (parenthesized_expression "(bVar13)" (( "(") (identifier "bVar13") () ")")) (goto_statement "goto LAB_002574dc;" (goto "goto") (statement_identifier "LAB_002574dc") (; ";"))) (labeled_statement "LAB_00257468:\n          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);" (statement_identifier "LAB_00257468") (: ":") (expression_statement "bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);" (assignment_expression "bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26)" (identifier "bVar12") (= "=") (binary_expression "piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26)" (binary_expression "piVar16[1] != 0" (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) (& "&") (pointer_expression "*(byte *)((int)piVar16 + 0x26)" (* "*") (cast_expression "(byte *)((int)piVar16 + 0x26)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x26)" (( "(") (binary_expression "(int)piVar16 + 0x26" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x26")) () ")")))))) (; ";"))) (expression_statement "bVar14 = (bool)bVar9;" (assignment_expression "bVar14 = (bool)bVar9" (identifier "bVar14") (= "=") (cast_expression "(bool)bVar9" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "bVar9"))) (; ";")) (if_statement "if (bVar12 != 0) goto LAB_00257510;" (if "if") (parenthesized_expression "(bVar12 != 0)" (( "(") (binary_expression "bVar12 != 0" (identifier "bVar12") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00257510;" (goto "goto") (statement_identifier "LAB_00257510") (; ";"))) (while_statement "while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }" (while "while") (parenthesized_expression "((bool)*(byte *)((int)piVar16 + 0x26) != bVar14)" (( "(") (binary_expression "(bool)*(byte *)((int)piVar16 + 0x26) != bVar14" (cast_expression "(bool)*(byte *)((int)piVar16 + 0x26)" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (pointer_expression "*(byte *)((int)piVar16 + 0x26)" (* "*") (cast_expression "(byte *)((int)piVar16 + 0x26)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x26)" (( "(") (binary_expression "(int)piVar16 + 0x26" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x26")) () ")"))))) (!= "!=") (identifier "bVar14")) () ")")) (compound_statement "{\n            while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }\n          }" ({ "{") (while_statement "while( true ) {\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              iVar17 = iVar10;\n              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }\n              iVar7 = *(int *)piVar16[2];\n              piVar16[-2] = iVar17;\n              piVar16[-3] = 0x2000;\n              piVar16[-4] = piVar16[2];\n              pcVar2 = *(code **)(iVar7 + 8);\n              piVar16[-5] = 0x2574ab;\n              cVar4 = (*pcVar2)();\n              if (cVar4 == '\0') goto LAB_00257548;\n              if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }\n              iVar10 = -1;\n              bVar9 = true;\n              bVar13 = param_3 != (int *)0x0;\n              if (!bVar13) goto LAB_00257468;\nLAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }\n              bVar14 = false;\n              if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }\n              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);\n              if (bVar12 == 0) break;\nLAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);\n              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }\n              iVar7 = 0;\n              if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }\n              piVar16[1] = iVar7;\n              if ((bool)bVar12 == bVar14) goto LAB_00257548;\n            }" ({ "{") (expression_statement "iVar17 = iVar10;" (assignment_expression "iVar17 = iVar10" (identifier "iVar17") (= "=") (identifier "iVar10")) (; ";")) (if_statement "if ((param_3 != (int *)0x0) && (bVar9 != 0)) {\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" (if "if") (parenthesized_expression "((param_3 != (int *)0x0) && (bVar9 != 0))" (( "(") (binary_expression "(param_3 != (int *)0x0) && (bVar9 != 0)" (parenthesized_expression "(param_3 != (int *)0x0)" (( "(") (binary_expression "param_3 != (int *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(bVar9 != 0)" (( "(") (binary_expression "bVar9 != 0" (identifier "bVar9") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }\n                if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }\n              }" ({ "{") (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                  iVar17 = *(int *)param_3[2];\n                }\n                else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }" (if "if") (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" (( "(") (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_3[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n                  iVar17 = *(int *)param_3[2];\n                }" ({ "{") (expression_statement "iVar17 = *(int *)param_3[2];" (assignment_expression "iVar17 = *(int *)param_3[2]" (identifier "iVar17") (= "=") (pointer_expression "*(int *)param_3[2]" (* "*") (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }" (else "else") (compound_statement "{\n                  iVar17 = *param_3;\n                  piVar16[-4] = (int)param_3;\n                  pcVar2 = *(code **)(iVar17 + 0x24);\n                  piVar16[-5] = 0x2577f9;\n                  iVar17 = (*pcVar2)();\n                }" ({ "{") (expression_statement "iVar17 = *param_3;" (assignment_expression "iVar17 = *param_3" (identifier "iVar17") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar17 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar17 + 0x24)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar17 + 0x24)" (* "*") (cast_expression "(code **)(iVar17 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar17 + 0x24)" (( "(") (binary_expression "iVar17 + 0x24" (identifier "iVar17") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x2577f9;" (assignment_expression "piVar16[-5] = 0x2577f9" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x2577f9")) (; ";")) (expression_statement "iVar17 = (*pcVar2)();" (assignment_expression "iVar17 = (*pcVar2)()" (identifier "iVar17") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar17 == -1) {\n                  param_3 = (int *)0x0;\n                }" (if "if") (parenthesized_expression "(iVar17 == -1)" (( "(") (binary_expression "iVar17 == -1" (identifier "iVar17") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                  param_3 = (int *)0x0;\n                }" ({ "{") (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar7 = *(int *)piVar16[2];" (assignment_expression "iVar7 = *(int *)piVar16[2]" (identifier "iVar7") (= "=") (pointer_expression "*(int *)piVar16[2]" (* "*") (cast_expression "(int *)piVar16[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[2]" (identifier "piVar16") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (expression_statement "piVar16[-2] = iVar17;" (assignment_expression "piVar16[-2] = iVar17" (subscript_expression "piVar16[-2]" (identifier "piVar16") ([ "[") (number_literal "-2") (] "]")) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "piVar16[-3] = 0x2000;" (assignment_expression "piVar16[-3] = 0x2000" (subscript_expression "piVar16[-3]" (identifier "piVar16") ([ "[") (number_literal "-3") (] "]")) (= "=") (number_literal "0x2000")) (; ";")) (expression_statement "piVar16[-4] = piVar16[2];" (assignment_expression "piVar16[-4] = piVar16[2]" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (subscript_expression "piVar16[2]" (identifier "piVar16") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar7 + 8);" (assignment_expression "pcVar2 = *(code **)(iVar7 + 8)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar7 + 8)" (* "*") (cast_expression "(code **)(iVar7 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x2574ab;" (assignment_expression "piVar16[-5] = 0x2574ab" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x2574ab")) (; ";")) (expression_statement "cVar4 = (*pcVar2)();" (assignment_expression "cVar4 = (*pcVar2)()" (identifier "cVar4") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar4 == '\0') goto LAB_00257548;" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00257548;" (goto "goto") (statement_identifier "LAB_00257548") (; ";"))) (if_statement "if ((uint)param_3[2] < (uint)param_3[3]) {\n                param_3[2] = param_3[2] + 4;\n              }\n              else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }" (if "if") (parenthesized_expression "((uint)param_3[2] < (uint)param_3[3])" (( "(") (binary_expression "(uint)param_3[2] < (uint)param_3[3]" (cast_expression "(uint)param_3[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(uint)param_3[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n                param_3[2] = param_3[2] + 4;\n              }" ({ "{") (expression_statement "param_3[2] = param_3[2] + 4;" (assignment_expression "param_3[2] = param_3[2] + 4" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "param_3[2] + 4" (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "4"))) (; ";")) (} "}")) (else_clause "else {\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }" (else "else") (compound_statement "{\n                iVar10 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar10 + 0x28);\n                piVar16[-5] = 0x2575f9;\n                (*pcVar2)();\n              }" ({ "{") (expression_statement "iVar10 = *param_3;" (assignment_expression "iVar10 = *param_3" (identifier "iVar10") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar10 + 0x28);" (assignment_expression "pcVar2 = *(code **)(iVar10 + 0x28)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar10 + 0x28)" (* "*") (cast_expression "(code **)(iVar10 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 0x28)" (( "(") (binary_expression "iVar10 + 0x28" (identifier "iVar10") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x2575f9;" (assignment_expression "piVar16[-5] = 0x2575f9" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x2575f9")) (; ";")) (expression_statement "(*pcVar2)();" (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar10 = -1;" (assignment_expression "iVar10 = -1" (identifier "iVar10") (= "=") (number_literal "-1")) (; ";")) (expression_statement "bVar9 = true;" (assignment_expression "bVar9 = true" (identifier "bVar9") (= "=") (true "true")) (; ";")) (expression_statement "bVar13 = param_3 != (int *)0x0;" (assignment_expression "bVar13 = param_3 != (int *)0x0" (identifier "bVar13") (= "=") (binary_expression "param_3 != (int *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (if_statement "if (!bVar13) goto LAB_00257468;" (if "if") (parenthesized_expression "(!bVar13)" (( "(") (unary_expression "!bVar13" (! "!") (identifier "bVar13")) () ")")) (goto_statement "goto LAB_00257468;" (goto "goto") (statement_identifier "LAB_00257468") (; ";"))) (labeled_statement "LAB_002574dc:\n              if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }" (statement_identifier "LAB_002574dc") (: ":") (if_statement "if ((int *)param_3[2] < (int *)param_3[3]) {\n                iVar17 = *(int *)param_3[2];\n              }\n              else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }" (if "if") (parenthesized_expression "((int *)param_3[2] < (int *)param_3[3])" (( "(") (binary_expression "(int *)param_3[2] < (int *)param_3[3]" (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_3[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[3]" (identifier "param_3") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n                iVar17 = *(int *)param_3[2];\n              }" ({ "{") (expression_statement "iVar17 = *(int *)param_3[2];" (assignment_expression "iVar17 = *(int *)param_3[2]" (identifier "iVar17") (= "=") (pointer_expression "*(int *)param_3[2]" (* "*") (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }" (else "else") (compound_statement "{\n                *(byte *)(piVar16 + 3) = bVar9;\n                iVar17 = *param_3;\n                piVar16[-4] = (int)param_3;\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x257765;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)(piVar16 + 3);\n              }" ({ "{") (expression_statement "*(byte *)(piVar16 + 3) = bVar9;" (assignment_expression "*(byte *)(piVar16 + 3) = bVar9" (pointer_expression "*(byte *)(piVar16 + 3)" (* "*") (cast_expression "(byte *)(piVar16 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar16 + 3)" (( "(") (binary_expression "piVar16 + 3" (identifier "piVar16") (+ "+") (number_literal "3")) () ")")))) (= "=") (identifier "bVar9")) (; ";")) (expression_statement "iVar17 = *param_3;" (assignment_expression "iVar17 = *param_3" (identifier "iVar17") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "piVar16[-4] = (int)param_3;" (assignment_expression "piVar16[-4] = (int)param_3" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar17 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar17 + 0x24)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar17 + 0x24)" (* "*") (cast_expression "(code **)(iVar17 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar17 + 0x24)" (( "(") (binary_expression "iVar17 + 0x24" (identifier "iVar17") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x257765;" (assignment_expression "piVar16[-5] = 0x257765" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x257765")) (; ";")) (expression_statement "iVar17 = (*pcVar2)();" (assignment_expression "iVar17 = (*pcVar2)()" (identifier "iVar17") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar9 = *(byte *)(piVar16 + 3);" (assignment_expression "bVar9 = *(byte *)(piVar16 + 3)" (identifier "bVar9") (= "=") (pointer_expression "*(byte *)(piVar16 + 3)" (* "*") (cast_expression "(byte *)(piVar16 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar16 + 3)" (( "(") (binary_expression "piVar16 + 3" (identifier "piVar16") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (} "}"))))) (expression_statement "bVar14 = false;" (assignment_expression "bVar14 = false" (identifier "bVar14") (= "=") (false "false")) (; ";")) (if_statement "if (iVar17 == -1) {\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }" (if "if") (parenthesized_expression "(iVar17 == -1)" (( "(") (binary_expression "iVar17 == -1" (identifier "iVar17") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                param_3 = (int *)0x0;\n                bVar14 = bVar13;\n              }" ({ "{") (expression_statement "param_3 = (int *)0x0;" (assignment_expression "param_3 = (int *)0x0" (identifier "param_3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar14 = bVar13;" (assignment_expression "bVar14 = bVar13" (identifier "bVar14") (= "=") (identifier "bVar13")) (; ";")) (} "}"))) (expression_statement "bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);" (assignment_expression "bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26)" (identifier "bVar12") (= "=") (binary_expression "piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26)" (binary_expression "piVar16[1] != 0" (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) (& "&") (pointer_expression "*(byte *)((int)piVar16 + 0x26)" (* "*") (cast_expression "(byte *)((int)piVar16 + 0x26)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x26)" (( "(") (binary_expression "(int)piVar16 + 0x26" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x26")) () ")")))))) (; ";")) (if_statement "if (bVar12 == 0) break;" (if "if") (parenthesized_expression "(bVar12 == 0)" (( "(") (binary_expression "bVar12 == 0" (identifier "bVar12") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00257510:\n              piVar6 = *(int **)(piVar16[1] + 8);" (statement_identifier "LAB_00257510") (: ":") (expression_statement "piVar6 = *(int **)(piVar16[1] + 8);" (assignment_expression "piVar6 = *(int **)(piVar16[1] + 8)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(piVar16[1] + 8)" (* "*") (cast_expression "(int **)(piVar16[1] + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar16[1] + 8)" (( "(") (binary_expression "piVar16[1] + 8" (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "8")) () ")"))))) (; ";"))) (if_statement "if (piVar6 < *(int **)(piVar16[1] + 0xc)) {\n                iVar17 = *piVar6;\n              }\n              else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }" (if "if") (parenthesized_expression "(piVar6 < *(int **)(piVar16[1] + 0xc))" (( "(") (binary_expression "piVar6 < *(int **)(piVar16[1] + 0xc)" (identifier "piVar6") (< "<") (pointer_expression "*(int **)(piVar16[1] + 0xc)" (* "*") (cast_expression "(int **)(piVar16[1] + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar16[1] + 0xc)" (( "(") (binary_expression "piVar16[1] + 0xc" (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (compound_statement "{\n                iVar17 = *piVar6;\n              }" ({ "{") (expression_statement "iVar17 = *piVar6;" (assignment_expression "iVar17 = *piVar6" (identifier "iVar17") (= "=") (pointer_expression "*piVar6" (* "*") (identifier "piVar6"))) (; ";")) (} "}")) (else_clause "else {\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }" (else "else") (compound_statement "{\n                *(byte *)((int)piVar16 + 0x27) = bVar9;\n                *(byte *)(piVar16 + 3) = bVar12;\n                iVar17 = *(int *)piVar16[1];\n                piVar16[-4] = piVar16[1];\n                pcVar2 = *(code **)(iVar17 + 0x24);\n                piVar16[-5] = 0x25778d;\n                iVar17 = (*pcVar2)();\n                bVar9 = *(byte *)((int)piVar16 + 0x27);\n                bVar12 = *(byte *)(piVar16 + 3);\n              }" ({ "{") (expression_statement "*(byte *)((int)piVar16 + 0x27) = bVar9;" (assignment_expression "*(byte *)((int)piVar16 + 0x27) = bVar9" (pointer_expression "*(byte *)((int)piVar16 + 0x27)" (* "*") (cast_expression "(byte *)((int)piVar16 + 0x27)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x27)" (( "(") (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x27")) () ")")))) (= "=") (identifier "bVar9")) (; ";")) (expression_statement "*(byte *)(piVar16 + 3) = bVar12;" (assignment_expression "*(byte *)(piVar16 + 3) = bVar12" (pointer_expression "*(byte *)(piVar16 + 3)" (* "*") (cast_expression "(byte *)(piVar16 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar16 + 3)" (( "(") (binary_expression "piVar16 + 3" (identifier "piVar16") (+ "+") (number_literal "3")) () ")")))) (= "=") (identifier "bVar12")) (; ";")) (expression_statement "iVar17 = *(int *)piVar16[1];" (assignment_expression "iVar17 = *(int *)piVar16[1]" (identifier "iVar17") (= "=") (pointer_expression "*(int *)piVar16[1]" (* "*") (cast_expression "(int *)piVar16[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]"))))) (; ";")) (expression_statement "piVar16[-4] = piVar16[1];" (assignment_expression "piVar16[-4] = piVar16[1]" (subscript_expression "piVar16[-4]" (identifier "piVar16") ([ "[") (number_literal "-4") (] "]")) (= "=") (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar2 = *(code **)(iVar17 + 0x24);" (assignment_expression "pcVar2 = *(code **)(iVar17 + 0x24)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(iVar17 + 0x24)" (* "*") (cast_expression "(code **)(iVar17 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar17 + 0x24)" (( "(") (binary_expression "iVar17 + 0x24" (identifier "iVar17") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "piVar16[-5] = 0x25778d;" (assignment_expression "piVar16[-5] = 0x25778d" (subscript_expression "piVar16[-5]" (identifier "piVar16") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x25778d")) (; ";")) (expression_statement "iVar17 = (*pcVar2)();" (assignment_expression "iVar17 = (*pcVar2)()" (identifier "iVar17") (= "=") (call_expression "(*pcVar2)()" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar9 = *(byte *)((int)piVar16 + 0x27);" (assignment_expression "bVar9 = *(byte *)((int)piVar16 + 0x27)" (identifier "bVar9") (= "=") (pointer_expression "*(byte *)((int)piVar16 + 0x27)" (* "*") (cast_expression "(byte *)((int)piVar16 + 0x27)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x27)" (( "(") (binary_expression "(int)piVar16 + 0x27" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x27")) () ")"))))) (; ";")) (expression_statement "bVar12 = *(byte *)(piVar16 + 3);" (assignment_expression "bVar12 = *(byte *)(piVar16 + 3)" (identifier "bVar12") (= "=") (pointer_expression "*(byte *)(piVar16 + 3)" (* "*") (cast_expression "(byte *)(piVar16 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar16 + 3)" (( "(") (binary_expression "piVar16 + 3" (identifier "piVar16") (+ "+") (number_literal "3")) () ")"))))) (; ";")) (} "}")))) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar17 != -1) {\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }" (if "if") (parenthesized_expression "(iVar17 != -1)" (( "(") (binary_expression "iVar17 != -1" (identifier "iVar17") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n                bVar12 = 0;\n                iVar7 = piVar16[1];\n              }" ({ "{") (expression_statement "bVar12 = 0;" (assignment_expression "bVar12 = 0" (identifier "bVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = piVar16[1];" (assignment_expression "iVar7 = piVar16[1]" (identifier "iVar7") (= "=") (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (expression_statement "piVar16[1] = iVar7;" (assignment_expression "piVar16[1] = iVar7" (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if ((bool)bVar12 == bVar14) goto LAB_00257548;" (if "if") (parenthesized_expression "((bool)bVar12 == bVar14)" (( "(") (binary_expression "(bool)bVar12 == bVar14" (cast_expression "(bool)bVar12" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "bVar12")) (== "==") (identifier "bVar14")) () ")")) (goto_statement "goto LAB_00257548;" (goto "goto") (statement_identifier "LAB_00257548") (; ";"))) (} "}"))) (} "}"))) (labeled_statement "LAB_00257548:\n          piVar16[3] = iVar10;" (statement_identifier "LAB_00257548") (: ":") (expression_statement "piVar16[3] = iVar10;" (assignment_expression "piVar16[3] = iVar10" (subscript_expression "piVar16[3]" (identifier "piVar16") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar10")) (; ";"))) (expression_statement "piVar6 = (int *)piVar16[2];" (assignment_expression "piVar6 = (int *)piVar16[2]" (identifier "piVar6") (= "=") (cast_expression "(int *)piVar16[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[2]" (identifier "piVar16") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "param_10 = (undefined4 *)piVar16[0x25];" (assignment_expression "param_10 = (undefined4 *)piVar16[0x25]" (identifier "param_10") (= "=") (cast_expression "(undefined4 *)piVar16[0x25]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[0x25]" (identifier "piVar16") ([ "[") (number_literal "0x25") (] "]")))) (; ";")) (} "}")))) (expression_statement "piVar8 = piVar16;" (assignment_expression "piVar8 = piVar16" (identifier "piVar8") (= "=") (identifier "piVar16")) (; ";")) (if_statement "if (param_10 == (undefined4 *)piVar16[0x26]) break;" (if "if") (parenthesized_expression "(param_10 == (undefined4 *)piVar16[0x26])" (( "(") (binary_expression "param_10 == (undefined4 *)piVar16[0x26]" (identifier "param_10") (== "==") (cast_expression "(undefined4 *)piVar16[0x26]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar16[0x26]" (identifier "piVar16") ([ "[") (number_literal "0x26") (] "]")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")))) (expression_statement "piVar16 = piVar8;" (assignment_expression "piVar16 = piVar8" (identifier "piVar16") (= "=") (identifier "piVar8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(**(int **)((int)piVar16 + 0x8c) == 0)" (( "(") (binary_expression "**(int **)((int)piVar16 + 0x8c) == 0" (pointer_expression "**(int **)((int)piVar16 + 0x8c)" (* "*") (pointer_expression "*(int **)((int)piVar16 + 0x8c)" (* "*") (cast_expression "(int **)((int)piVar16 + 0x8c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + 0x8c)" (( "(") (binary_expression "(int)piVar16 + 0x8c" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x8c")) () ")"))))) (== "==") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "piVar6 = *(int **)((int)piVar16 + 0x70);" (assignment_expression "piVar6 = *(int **)((int)piVar16 + 0x70)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)((int)piVar16 + 0x70)" (* "*") (cast_expression "(int **)((int)piVar16 + 0x70)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar16 + 0x70)" (( "(") (binary_expression "(int)piVar16 + 0x70" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "iVar10 = *(int *)((int)piVar16 + 0xc);" (assignment_expression "iVar10 = *(int *)((int)piVar16 + 0xc)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)((int)piVar16 + 0xc)" (* "*") (cast_expression "(int *)((int)piVar16 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0xc)" (( "(") (binary_expression "(int)piVar16 + 0xc" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*piVar6 = (int)param_3;" (assignment_expression "*piVar6 = (int)param_3" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (= "=") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "piVar6[1] = iVar10;" (assignment_expression "piVar6[1] = iVar10" (subscript_expression "piVar6[1]" (identifier "piVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,
   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&,
   std::_Ios_Iostate&, tm*, wchar_t const*, wchar_t const*) const */

void var_3::time_get<var_4,var_3::istreambuf_iterator<var_4,var_3::char_traits<var_4>>>::get
               (type_1 param_1,type_1 param_2,int *var_9,type_1 param_4,
               type_1 param_5,int param_6,int var_1,type_1 *param_8,type_1 param_9,
               type_1 *var_5,type_1 *var_6)

{
  type_7 *var_15;
  int *var_13;
  type_1 *var_20;
  char var_14;
  char cVar5;
  type_2 *pcVar6;
  int var_18;
  type_2 *pcVar8;
  type_1 uVar9;
  type_3 var_10;
  int var_11;
  char var_17;
  type_3 var_12;
  bool bVar14;
  bool var_21;
  type_4 *var_8;
  int var_19;
  int aiStackY_a0 [9];
  type_4 local_6c [4];
  int local_68;
  type_3 local_64 [4];
  int local_60 [5];
  type_5 **var_7;
  bool local_46;
  type_3 local_45;
  int local_44 [2];
  type_5 **local_3c;
  type_6 *local_38;
  int local_34 [9];
  
  var_7 = &_GLOBAL_OFFSET_TABLE_;
  local_60[0] = param_4;
  local_68 = param_5;
  local_44[1] = param_6;
  local_38 = (type_6 *)(var_1 + 0x6c);
  pcVar6 = var_2<var_3::type_2<var_4>>(local_38);
  var_8 = local_6c;
  *param_8 = 0;
  if (var_5 != var_6) {
    local_46 = local_44[1] == -1;
    local_3c = var_7 + -0x4e0a4;
    var_8 = local_6c;
    do {
      var_8[8] = *(int *)(var_8 + 0xc) == -1;
      var_10 = var_9 != (int *)0x0 & var_8[8];
      if (var_10 == 0) {
        var_12 = var_8[8];
      }
      else {
        if ((int *)var_9[2] < (int *)var_9[3]) {
          var_11 = *(int *)var_9[2];
        }
        else {
          var_8[0x27] = var_10;
          var_11 = *var_9;
          *(int **)(var_8 + -0x10) = var_9;
          var_15 = *(type_7 **)(var_11 + 0x24);
          *(type_1 *)(var_8 + -0x14) = 0x257826;
          var_11 = (*var_15)();
          var_10 = var_8[0x27];
        }
        var_12 = 0;
        if (var_11 == -1) {
          var_9 = (int *)0x0;
          var_12 = var_10;
        }
      }
      var_10 = *(int *)(var_8 + 4) != 0 & var_8[0x26];
      if (var_10 == 0) {
        if (var_12 == var_8[0x26]) {
LAB_002575b3:
          **(type_1 **)(var_8 + 0x8c) = 6;
          break;
        }
      }
      else {
        var_13 = *(int **)(*(int *)(var_8 + 4) + 8);
        if (var_13 < *(int **)(*(int *)(var_8 + 4) + 0xc)) {
          var_11 = *var_13;
        }
        else {
          var_8[0x28] = var_10;
          var_8[0x27] = var_12;
          var_11 = **(int **)(var_8 + 4);
          *(int **)(var_8 + -0x10) = *(int **)(var_8 + 4);
          var_15 = *(type_7 **)(var_11 + 0x24);
          *(type_1 *)(var_8 + -0x14) = 0x257848;
          var_11 = (*var_15)();
          var_10 = var_8[0x28];
          var_12 = var_8[0x27];
        }
        uVar9 = 0;
        if (var_11 != -1) {
          var_10 = 0;
          uVar9 = *(type_1 *)(var_8 + 4);
        }
        *(type_1 *)(var_8 + 4) = uVar9;
        if (var_12 == var_10) goto LAB_002575b3;
      }
      var_11 = *(int *)pcVar6;
      *(type_1 *)(var_8 + -8) = 0;
      *(type_1 *)(var_8 + -0xc) = *var_5;
      *(type_2 **)(var_8 + -0x10) = pcVar6;
      var_15 = *(type_7 **)(var_11 + 0x30);
      *(type_1 *)(var_8 + -0x14) = 0x25727f;
      var_14 = (*var_15)();
      if (var_14 == '%') {
        *(type_1 **)(var_8 + 8) = var_5 + 1;
        if (*(type_1 **)(var_8 + 0x98) == var_5 + 1) {
LAB_00257861:
          **(type_1 **)(var_8 + 0x8c) = 4;
          break;
        }
        var_11 = *(int *)pcVar6;
        *(type_1 *)(var_8 + -8) = 0;
        *(type_1 *)(var_8 + -0xc) = var_5[1];
        *(type_2 **)(var_8 + -0x10) = pcVar6;
        var_15 = *(type_7 **)(var_11 + 0x30);
        *(type_1 *)(var_8 + -0x14) = 0x2572ad;
        var_14 = (*var_15)();
        if (var_14 == 'E') {
LAB_00257608:
          *(type_1 **)(var_8 + 8) = var_5 + 2;
          if (*(type_1 **)(var_8 + 0x98) == var_5 + 2) goto LAB_00257861;
          var_11 = *(int *)pcVar6;
          *(type_1 *)(var_8 + -8) = 0;
          *(type_1 *)(var_8 + -0xc) = var_5[2];
          *(type_2 **)(var_8 + -0x10) = pcVar6;
          var_15 = *(type_7 **)(var_11 + 0x30);
          *(type_1 *)(var_8 + -0x14) = 0x25762b;
          cVar5 = (*var_15)();
          var_11 = (int)var_14;
          var_17 = var_14;
        }
        else {
          var_11 = 0;
          var_17 = '\0';
          cVar5 = var_14;
          if (var_14 == 'O') goto LAB_00257608;
        }
        var_8[0x27] = var_17;
        var_19 = (int)cVar5;
        var_15 = *(type_7 **)(**(int **)(var_8 + 0x74) + 0x20);
        if (var_15 == *(type_7 **)(var_8 + 0x30)) {
          *(int *)(var_8 + 0x28) = var_11;
          *(type_1 *)(var_8 + -0x10) = *(type_1 *)(var_8 + 0x34);
          *(type_1 *)(var_8 + -0x14) = 0x2572f4;
          pcVar8 = var_2<var_3::type_2<var_4>>(*(type_6 **)(var_8 + -0x10));
          var_11 = *(int *)pcVar8;
          **(type_1 **)(var_8 + 0x8c) = 0;
          *(type_1 *)(var_8 + -0xc) = 0x25;
          *(type_2 **)(var_8 + -0x10) = pcVar8;
          var_15 = *(type_7 **)(var_11 + 0x28);
          *(type_1 *)(var_8 + -0x14) = 0x25730b;
          uVar9 = (*var_15)();
          *(type_1 *)(var_8 + 0x40) = uVar9;
          if (var_8[0x27] == '\0') {
            *(int *)(var_8 + 0x44) = var_19;
            *(type_1 *)(var_8 + 0x48) = 0;
          }
          else {
            *(type_1 *)(var_8 + 0x44) = *(type_1 *)(var_8 + 0x28);
            *(int *)(var_8 + 0x48) = var_19;
            *(type_1 *)(var_8 + 0x4c) = 0;
          }
          *(int **)(var_8 + 0x10) = var_9;
          *(type_1 *)(var_8 + 0x14) = *(type_1 *)(var_8 + 0xc);
          *(type_1 *)(var_8 + 0x18) = *(type_1 *)(var_8 + 4);
          *(type_1 *)(var_8 + 0x1c) = *(type_1 *)(var_8 + 0x2c);
          *(type_4 **)(var_8 + -0xc) = var_8 + 0x40;
          *(type_1 *)(var_8 + -0x10) = *(type_1 *)(var_8 + 0x90);
          *(type_1 *)(var_8 + -0x14) = *(type_1 *)(var_8 + 0x8c);
          *(type_1 *)(var_8 + -0x18) = *(type_1 *)(var_8 + 0x88);
          *(type_1 *)(var_8 + -0x1c) = *(type_1 *)(var_8 + 0x1c);
          *(type_1 *)(var_8 + -0x20) = *(type_1 *)(var_8 + 0x18);
          *(type_1 *)(var_8 + -0x24) = *(type_1 *)(var_8 + 0x14);
          *(type_1 *)(var_8 + -0x28) = *(type_1 *)(var_8 + 0x10);
          *(type_1 *)(var_8 + -0x2c) = *(type_1 *)(var_8 + 0x74);
          *(type_4 **)(var_8 + -0x30) = var_8 + 0x38;
          *(type_1 *)(var_8 + -0x34) = 0x25738d;
          var_16();
          var_11 = *(int *)(var_8 + 0x3c);
          var_9 = *(int **)(var_8 + 0x38);
          *(int *)(var_8 + 0x14) = var_11;
          *(int *)(var_8 + 0xc) = var_11;
          *(int **)(var_8 + 0x10) = var_9;
          var_14 = var_9 != (int *)0x0 && var_11 == -1;
          var_17 = var_11 == -1;
          if ((bool)var_14) {
            if ((int *)var_9[2] < (int *)var_9[3]) {
              var_11 = *(int *)var_9[2];
            }
            else {
              var_8[0x27] = var_14;
              var_11 = *var_9;
              *(type_1 *)(var_8 + -0x10) = *(type_1 *)(var_8 + 0x10);
              var_15 = *(type_7 **)(var_11 + 0x24);
              *(type_1 *)(var_8 + -0x14) = 0x2578ab;
              var_11 = (*var_15)();
              var_14 = var_8[0x27];
            }
            var_17 = '\0';
            if (var_11 == -1) {
              var_9 = (int *)0x0;
              var_17 = var_14;
            }
          }
          if ((*(int *)(var_8 + 4) == 0) || (var_8[0x26] == '\0')) {
            var_14 = var_8[0x26];
          }
          else {
            var_13 = *(int **)(*(int *)(var_8 + 4) + 8);
            if (var_13 < *(int **)(*(int *)(var_8 + 4) + 0xc)) {
              var_11 = *var_13;
            }
            else {
              var_11 = **(int **)(var_8 + 4);
              *(int **)(var_8 + -0x10) = *(int **)(var_8 + 4);
              var_15 = *(type_7 **)(var_11 + 0x24);
              *(type_1 *)(var_8 + -0x14) = 0x257893;
              var_11 = (*var_15)();
            }
            var_14 = var_11 == -1;
          }
          if (var_14 == var_17) {
            **(type_8 **)(var_8 + 0x8c) = **(type_8 **)(var_8 + 0x8c) | 2;
          }
        }
        else {
          *(int **)(var_8 + 0x78) = var_9;
          *(type_1 *)(var_8 + 0x7c) = *(type_1 *)(var_8 + 0xc);
          *(type_1 *)(var_8 + 0x84) = *(type_1 *)(var_8 + 0x2c);
          *(type_1 *)(var_8 + 0x80) = *(type_1 *)(var_8 + 4);
          *(int *)(var_8 + -8) = var_11;
          *(int *)(var_8 + -0xc) = var_19;
          *(type_1 *)(var_8 + -0x10) = *(type_1 *)(var_8 + 0x90);
          *(type_1 *)(var_8 + -0x14) = *(type_1 *)(var_8 + 0x8c);
          *(type_1 *)(var_8 + -0x18) = *(type_1 *)(var_8 + 0x88);
          *(type_1 *)(var_8 + -0x1c) = *(type_1 *)(var_8 + 0x84);
          *(type_1 *)(var_8 + -0x20) = *(type_1 *)(var_8 + 0x80);
          *(type_1 *)(var_8 + -0x24) = *(type_1 *)(var_8 + 0x7c);
          *(type_1 *)(var_8 + -0x28) = *(type_1 *)(var_8 + 0x78);
          *(type_1 *)(var_8 + -0x2c) = *(type_1 *)(var_8 + 0x74);
          *(type_4 **)(var_8 + -0x30) = var_8 + 0x38;
          *(type_1 *)(var_8 + -0x34) = 0x257721;
          (*var_15)();
          *(type_1 *)(var_8 + 0x74) = *(type_1 *)(var_8 + 0x34);
          var_9 = *(int **)(var_8 + 0x74);
          *(type_1 *)(var_8 + 0x78) = *(type_1 *)(var_8 + 0x38);
          *(type_1 *)(var_8 + 8) = *(type_1 *)(var_8 + 0x78);
          var_8 = var_8 + -4;
        }
        var_5 = (type_1 *)(*(int *)(var_8 + 8) + 4);
        if (var_5 == *(type_1 **)(var_8 + 0x98)) break;
      }
      else {
        var_11 = *(int *)pcVar6;
        *(type_1 *)(var_8 + -8) = *var_5;
        *(type_1 *)(var_8 + -0xc) = 0x2000;
        *(type_2 **)(var_8 + -0x10) = pcVar6;
        var_15 = *(type_7 **)(var_11 + 8);
        *(type_1 *)(var_8 + -0x14) = 0x257191;
        var_14 = (*var_15)();
        if (var_14 == '\0') {
          if ((var_9 == (int *)0x0) || (var_8[8] == '\0')) {
            uVar9 = *(type_1 *)(var_8 + 0xc);
LAB_002571af:
            var_11 = *(int *)pcVar6;
            *(type_1 *)(var_8 + -0xc) = uVar9;
            *(type_2 **)(var_8 + -0x10) = pcVar6;
            var_15 = *(type_7 **)(var_11 + 0x20);
            *(type_1 *)(var_8 + -0x14) = 0x2571ba;
            var_19 = (*var_15)();
            var_11 = *(int *)pcVar6;
            *(type_1 *)(var_8 + -0xc) = *var_5;
            *(type_2 **)(var_8 + -0x10) = pcVar6;
            var_15 = *(type_7 **)(var_11 + 0x20);
            *(type_1 *)(var_8 + -0x14) = 0x2571c7;
            var_18 = (*var_15)();
            var_11 = *(int *)(var_8 + 0xc);
            if (var_18 != var_19) {
LAB_002571d2:
              var_19 = *(int *)pcVar6;
              *(int *)(var_8 + -0xc) = var_11;
              *(type_2 **)(var_8 + -0x10) = pcVar6;
              var_15 = *(type_7 **)(var_19 + 0x18);
              *(type_1 *)(var_8 + -0x14) = 0x2571dd;
              var_19 = (*var_15)();
              var_11 = *(int *)pcVar6;
              *(type_1 *)(var_8 + -0xc) = *var_5;
              *(type_2 **)(var_8 + -0x10) = pcVar6;
              var_15 = *(type_7 **)(var_11 + 0x18);
              *(type_1 *)(var_8 + -0x14) = 0x2571ea;
              var_11 = (*var_15)();
              if (var_11 != var_19) goto LAB_00257861;
            }
          }
          else {
            if ((int *)var_9[2] < (int *)var_9[3]) {
              var_11 = *(int *)var_9[2];
            }
            else {
              var_11 = *var_9;
              *(int **)(var_8 + -0x10) = var_9;
              var_15 = *(type_7 **)(var_11 + 0x24);
              *(type_1 *)(var_8 + -0x14) = 0x25787c;
              var_11 = (*var_15)();
            }
            if (var_11 == -1) {
              var_9 = (int *)0x0;
              uVar9 = 0xffffffff;
              goto LAB_002571af;
            }
            var_19 = *(int *)pcVar6;
            *(int *)(var_8 + -0xc) = var_11;
            *(type_2 **)(var_8 + -0x10) = pcVar6;
            var_15 = *(type_7 **)(var_19 + 0x20);
            *(type_1 *)(var_8 + -0x14) = 0x25767c;
            var_19 = (*var_15)();
            var_11 = *(int *)pcVar6;
            *(type_1 *)(var_8 + -0xc) = *var_5;
            *(type_2 **)(var_8 + -0x10) = pcVar6;
            var_15 = *(type_7 **)(var_11 + 0x20);
            *(type_1 *)(var_8 + -0x14) = 0x257689;
            var_11 = (*var_15)();
            if (var_19 != var_11) {
              if ((int *)var_9[2] < (int *)var_9[3]) {
                var_11 = *(int *)var_9[2];
              }
              else {
                var_11 = *var_9;
                *(int **)(var_8 + -0x10) = var_9;
                var_15 = *(type_7 **)(var_11 + 0x24);
                *(type_1 *)(var_8 + -0x14) = 0x2578c1;
                var_11 = (*var_15)();
              }
              if (var_11 == -1) {
                var_9 = (int *)0x0;
              }
              goto LAB_002571d2;
            }
          }
          if ((type_8)var_9[2] < (type_8)var_9[3]) {
            var_9[2] = var_9[2] + 4;
          }
          else {
            var_11 = *var_9;
            *(int **)(var_8 + -0x10) = var_9;
            var_15 = *(type_7 **)(var_11 + 0x28);
            *(type_1 *)(var_8 + -0x14) = 0x257811;
            (*var_15)();
          }
          *(type_1 *)(var_8 + 0xc) = 0xffffffff;
          var_5 = var_5 + 1;
        }
        else {
          var_5 = var_5 + 1;
          if (*(type_1 **)(var_8 + 0x98) != var_5) {
            var_20 = *(type_1 **)(var_8 + 0x98);
            do {
              var_11 = *(int *)pcVar6;
              *(type_1 *)(var_8 + -8) = *var_5;
              *(type_1 *)(var_8 + -0xc) = 0x2000;
              *(type_2 **)(var_8 + -0x10) = pcVar6;
              var_15 = *(type_7 **)(var_11 + 8);
              *(type_1 *)(var_8 + -0x14) = 0x257440;
              var_14 = (*var_15)();
              if (var_14 == '\0') break;
              var_5 = var_5 + 1;
            } while (var_20 != var_5);
          }
          *(type_1 **)(var_8 + 0x94) = var_5;
          var_11 = *(int *)(var_8 + 0xc);
          *(type_2 **)(var_8 + 8) = pcVar6;
          var_10 = var_11 == -1;
          bVar14 = var_9 != (int *)0x0 && (bool)var_10;
          if (bVar14) goto LAB_002574dc;
LAB_00257468:
          var_12 = *(int *)(var_8 + 4) != 0 & var_8[0x26];
          var_21 = (bool)var_10;
          if (var_12 != 0) goto LAB_00257510;
          while ((bool)var_8[0x26] != var_21) {
            while( true ) {
              var_19 = var_11;
              if ((var_9 != (int *)0x0) && (var_10 != 0)) {
                if ((int *)var_9[2] < (int *)var_9[3]) {
                  var_19 = *(int *)var_9[2];
                }
                else {
                  var_19 = *var_9;
                  *(int **)(var_8 + -0x10) = var_9;
                  var_15 = *(type_7 **)(var_19 + 0x24);
                  *(type_1 *)(var_8 + -0x14) = 0x2577f9;
                  var_19 = (*var_15)();
                }
                if (var_19 == -1) {
                  var_9 = (int *)0x0;
                }
              }
              var_18 = **(int **)(var_8 + 8);
              *(int *)(var_8 + -8) = var_19;
              *(type_1 *)(var_8 + -0xc) = 0x2000;
              *(int **)(var_8 + -0x10) = *(int **)(var_8 + 8);
              var_15 = *(type_7 **)(var_18 + 8);
              *(type_1 *)(var_8 + -0x14) = 0x2574ab;
              var_14 = (*var_15)();
              if (var_14 == '\0') goto LAB_00257548;
              if ((type_8)var_9[2] < (type_8)var_9[3]) {
                var_9[2] = var_9[2] + 4;
              }
              else {
                var_11 = *var_9;
                *(int **)(var_8 + -0x10) = var_9;
                var_15 = *(type_7 **)(var_11 + 0x28);
                *(type_1 *)(var_8 + -0x14) = 0x2575f9;
                (*var_15)();
              }
              var_11 = -1;
              var_10 = true;
              bVar14 = var_9 != (int *)0x0;
              if (!bVar14) goto LAB_00257468;
LAB_002574dc:
              if ((int *)var_9[2] < (int *)var_9[3]) {
                var_19 = *(int *)var_9[2];
              }
              else {
                var_8[0xc] = var_10;
                var_19 = *var_9;
                *(int **)(var_8 + -0x10) = var_9;
                var_15 = *(type_7 **)(var_19 + 0x24);
                *(type_1 *)(var_8 + -0x14) = 0x257765;
                var_19 = (*var_15)();
                var_10 = var_8[0xc];
              }
              var_21 = false;
              if (var_19 == -1) {
                var_9 = (int *)0x0;
                var_21 = bVar14;
              }
              var_12 = *(int *)(var_8 + 4) != 0 & var_8[0x26];
              if (var_12 == 0) break;
LAB_00257510:
              var_13 = *(int **)(*(int *)(var_8 + 4) + 8);
              if (var_13 < *(int **)(*(int *)(var_8 + 4) + 0xc)) {
                var_19 = *var_13;
              }
              else {
                var_8[0x27] = var_10;
                var_8[0xc] = var_12;
                var_19 = **(int **)(var_8 + 4);
                *(int **)(var_8 + -0x10) = *(int **)(var_8 + 4);
                var_15 = *(type_7 **)(var_19 + 0x24);
                *(type_1 *)(var_8 + -0x14) = 0x25778d;
                var_19 = (*var_15)();
                var_10 = var_8[0x27];
                var_12 = var_8[0xc];
              }
              uVar9 = 0;
              if (var_19 != -1) {
                var_12 = 0;
                uVar9 = *(type_1 *)(var_8 + 4);
              }
              *(type_1 *)(var_8 + 4) = uVar9;
              if ((bool)var_12 == var_21) goto LAB_00257548;
            }
          }
LAB_00257548:
          *(int *)(var_8 + 0xc) = var_11;
          pcVar6 = *(type_2 **)(var_8 + 8);
          var_5 = *(type_1 **)(var_8 + 0x94);
        }
        if (var_5 == *(type_1 **)(var_8 + 0x98)) break;
      }
    } while (**(int **)(var_8 + 0x8c) == 0);
  }
  var_13 = *(int **)(var_8 + 0x70);
  var_11 = *(int *)(var_8 + 0xc);
  *var_13 = (int)var_9;
  var_13[1] = var_11;
  return;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void MASKED(undefined4 param_1,undefined4 param_2,int *param_3,undefined4 param_4,
                 undefined4 param_5,int param_6,int param_7,undefined4 *param_8,undefined4 param_9,
                 undefined4 *param_10,undefined4 *param_11)

{
  int *piVar1;
  code *pcVar2;
  undefined4 *puVar3;
  char cVar4;
  char cVar5;
  int *piVar6;
  int iVar7;
  int *piVar8;
  byte bVar9;
  int iVar10;
  char cVar11;
  byte bVar12;
  bool bVar13;
  bool bVar14;
  int *piVar15;
  int *piVar16;
  int iVar17;
  int aiStackY_a0 [9];
  undefined4 local_68;
  byte local_64 [4];
  int local_60 [5];
  undefined4 local_4c;
  bool local_46;
  byte local_45;
  int local_44 [2];
  undefined **local_3c;
  int local_38 [10];
  
  local_4c = &__DT_PLTGOT;
  local_60[0] = param_4;
  local_68 = param_5;
  local_44[1] = param_6;
  local_38[0] = param_7 + 0x6c;
  piVar6 = (int *)FUN_0023c1d0(local_38[0]);
  *param_8 = 0;
  piVar16 = (int *)&stack0xffffff94;
  if (param_10 != param_11) {
    local_46 = local_44[1] == -1;
    local_3c = local_4c + -0x4e0a4;
    piVar16 = (int *)&stack0xffffff94;
    do {
      *(bool *)(piVar16 + 2) = piVar16[3] == -1;
      bVar9 = param_3 != (int *)0x0 & *(byte *)(piVar16 + 2);
      if (bVar9 == 0) {
        bVar12 = *(byte *)(piVar16 + 2);
      }
      else {
        if ((int *)param_3[2] < (int *)param_3[3]) {
          iVar10 = *(int *)param_3[2];
        }
        else {
          *(byte *)((int)piVar16 + 0x27) = bVar9;
          iVar10 = *param_3;
          piVar16[-4] = (int)param_3;
          pcVar2 = *(code **)(iVar10 + 0x24);
          piVar16[-5] = 0x257826;
          iVar10 = (*pcVar2)();
          bVar9 = *(byte *)((int)piVar16 + 0x27);
        }
        bVar12 = 0;
        if (iVar10 == -1) {
          param_3 = (int *)0x0;
          bVar12 = bVar9;
        }
      }
      bVar9 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);
      if (bVar9 == 0) {
        if (bVar12 == *(byte *)((int)piVar16 + 0x26)) {
LAB_002575b3:
          *(undefined4 *)piVar16[0x23] = 6;
          break;
        }
      }
      else {
        piVar8 = *(int **)(piVar16[1] + 8);
        if (piVar8 < *(int **)(piVar16[1] + 0xc)) {
          iVar10 = *piVar8;
        }
        else {
          *(byte *)(piVar16 + 10) = bVar9;
          *(byte *)((int)piVar16 + 0x27) = bVar12;
          iVar10 = *(int *)piVar16[1];
          piVar16[-4] = piVar16[1];
          pcVar2 = *(code **)(iVar10 + 0x24);
          piVar16[-5] = 0x257848;
          iVar10 = (*pcVar2)();
          bVar9 = *(byte *)(piVar16 + 10);
          bVar12 = *(byte *)((int)piVar16 + 0x27);
        }
        iVar17 = 0;
        if (iVar10 != -1) {
          bVar9 = 0;
          iVar17 = piVar16[1];
        }
        piVar16[1] = iVar17;
        if (bVar12 == bVar9) goto LAB_002575b3;
      }
      iVar10 = *piVar6;
      piVar16[-2] = 0;
      piVar16[-3] = *param_10;
      piVar16[-4] = (int)piVar6;
      pcVar2 = *(code **)(iVar10 + 0x30);
      piVar16[-5] = 0x25727f;
      cVar4 = (*pcVar2)();
      if (cVar4 == '%') {
        piVar16[2] = (int)(param_10 + 1);
        if ((undefined4 *)piVar16[0x26] == param_10 + 1) {
LAB_00257861:
          *(undefined4 *)piVar16[0x23] = 4;
          break;
        }
        iVar10 = *piVar6;
        piVar16[-2] = 0;
        piVar16[-3] = param_10[1];
        piVar16[-4] = (int)piVar6;
        pcVar2 = *(code **)(iVar10 + 0x30);
        piVar16[-5] = 0x2572ad;
        cVar4 = (*pcVar2)();
        if (cVar4 == 'E') {
LAB_00257608:
          piVar16[2] = (int)(param_10 + 2);
          if ((undefined4 *)piVar16[0x26] == param_10 + 2) goto LAB_00257861;
          iVar10 = *piVar6;
          piVar16[-2] = 0;
          piVar16[-3] = param_10[2];
          piVar16[-4] = (int)piVar6;
          pcVar2 = *(code **)(iVar10 + 0x30);
          piVar16[-5] = 0x25762b;
          cVar5 = (*pcVar2)();
          iVar10 = (int)cVar4;
          cVar11 = cVar4;
        }
        else {
          iVar10 = 0;
          cVar11 = '\0';
          cVar5 = cVar4;
          if (cVar4 == 'O') goto LAB_00257608;
        }
        *(char *)((int)piVar16 + 0x27) = cVar11;
        iVar17 = (int)cVar5;
        pcVar2 = *(code **)(*(int *)piVar16[0x1d] + 0x20);
        if (pcVar2 == (code *)piVar16[0xc]) {
          piVar16[10] = iVar10;
          piVar16[-4] = piVar16[0xd];
          piVar16[-5] = 0x2572f4;
          piVar8 = (int *)FUN_0023c1d0();
          iVar10 = *piVar8;
          *(undefined4 *)piVar16[0x23] = 0;
          piVar16[-3] = 0x25;
          piVar16[-4] = (int)piVar8;
          pcVar2 = *(code **)(iVar10 + 0x28);
          piVar16[-5] = 0x25730b;
          iVar10 = (*pcVar2)();
          piVar16[0x10] = iVar10;
          if (*(char *)((int)piVar16 + 0x27) == '\0') {
            piVar16[0x11] = iVar17;
            piVar16[0x12] = 0;
          }
          else {
            piVar16[0x11] = piVar16[10];
            piVar16[0x12] = iVar17;
            piVar16[0x13] = 0;
          }
          piVar16[4] = (int)param_3;
          piVar16[5] = piVar16[3];
          piVar16[6] = piVar16[1];
          piVar16[7] = piVar16[0xb];
          piVar16[-3] = (int)(piVar16 + 0x10);
          piVar16[-4] = piVar16[0x24];
          piVar16[-5] = piVar16[0x23];
          piVar16[-6] = piVar16[0x22];
          piVar16[-7] = piVar16[7];
          piVar16[-8] = piVar16[6];
          piVar16[-9] = piVar16[5];
          piVar16[-10] = piVar16[4];
          piVar16[-0xb] = piVar16[0x1d];
          piVar16[-0xc] = (int)(piVar16 + 0xe);
          piVar16[-0xd] = 0x25738d;
          FUN_00255da0();
          iVar10 = piVar16[0xe];
          param_3 = (int *)piVar16[0xd];
          piVar16[4] = iVar10;
          piVar16[2] = iVar10;
          piVar16[3] = (int)param_3;
          cVar4 = param_3 != (int *)0x0 && iVar10 == -1;
          cVar11 = iVar10 == -1;
          if ((bool)cVar4) {
            if ((int *)param_3[2] < (int *)param_3[3]) {
              iVar10 = *(int *)param_3[2];
            }
            else {
              *(char *)((int)piVar16 + 0x23) = cVar4;
              iVar10 = *param_3;
              piVar16[-5] = piVar16[3];
              pcVar2 = *(code **)(iVar10 + 0x24);
              piVar16[-6] = 0x2578ab;
              iVar10 = (*pcVar2)();
              cVar4 = *(char *)((int)piVar16 + 0x23);
            }
            cVar11 = '\0';
            if (iVar10 == -1) {
              param_3 = (int *)0x0;
              cVar11 = cVar4;
            }
          }
          if ((*piVar16 == 0) || (*(char *)((int)piVar16 + 0x22) == '\0')) {
            cVar4 = *(char *)((int)piVar16 + 0x22);
          }
          else {
            piVar8 = *(int **)(*piVar16 + 8);
            if (piVar8 < *(int **)(*piVar16 + 0xc)) {
              iVar10 = *piVar8;
            }
            else {
              iVar10 = *(int *)*piVar16;
              piVar16[-5] = *piVar16;
              pcVar2 = *(code **)(iVar10 + 0x24);
              piVar16[-6] = 0x257893;
              iVar10 = (*pcVar2)();
            }
            cVar4 = iVar10 == -1;
          }
          if (cVar4 == cVar11) {
            *(uint *)piVar16[0x22] = *(uint *)piVar16[0x22] | 2;
          }
        }
        else {
          piVar16[0x1e] = (int)param_3;
          piVar16[0x1f] = piVar16[3];
          piVar16[0x21] = piVar16[0xb];
          piVar16[0x20] = piVar16[1];
          piVar16[-2] = iVar10;
          piVar16[-3] = iVar17;
          piVar16[-4] = piVar16[0x24];
          piVar16[-5] = piVar16[0x23];
          piVar16[-6] = piVar16[0x22];
          piVar16[-7] = piVar16[0x21];
          piVar16[-8] = piVar16[0x20];
          piVar16[-9] = piVar16[0x1f];
          piVar16[-10] = piVar16[0x1e];
          piVar16[-0xb] = piVar16[0x1d];
          piVar16[-0xc] = (int)(piVar16 + 0xe);
          piVar16[-0xd] = 0x257721;
          (*pcVar2)();
          piVar16[0x1d] = piVar16[0xd];
          param_3 = (int *)piVar16[0x1d];
          piVar16[0x1e] = piVar16[0xe];
          piVar16[2] = piVar16[0x1e];
        }
        piVar15 = piVar16 + -1;
        param_10 = (undefined4 *)(piVar16[1] + 4);
        piVar1 = piVar16 + 0x25;
        piVar16 = piVar16 + -1;
        piVar8 = piVar15;
        if (param_10 == (undefined4 *)*piVar1) break;
      }
      else {
        iVar10 = *piVar6;
        piVar16[-2] = *param_10;
        piVar16[-3] = 0x2000;
        piVar16[-4] = (int)piVar6;
        pcVar2 = *(code **)(iVar10 + 8);
        piVar16[-5] = 0x257191;
        cVar4 = (*pcVar2)();
        if (cVar4 == '\0') {
          if ((param_3 == (int *)0x0) || ((char)piVar16[2] == '\0')) {
            iVar10 = piVar16[3];
LAB_002571af:
            iVar17 = *piVar6;
            piVar16[-3] = iVar10;
            piVar16[-4] = (int)piVar6;
            pcVar2 = *(code **)(iVar17 + 0x20);
            piVar16[-5] = 0x2571ba;
            iVar17 = (*pcVar2)();
            iVar10 = *piVar6;
            piVar16[-3] = *param_10;
            piVar16[-4] = (int)piVar6;
            pcVar2 = *(code **)(iVar10 + 0x20);
            piVar16[-5] = 0x2571c7;
            iVar7 = (*pcVar2)();
            iVar10 = piVar16[3];
            if (iVar7 != iVar17) {
LAB_002571d2:
              iVar17 = *piVar6;
              piVar16[-3] = iVar10;
              piVar16[-4] = (int)piVar6;
              pcVar2 = *(code **)(iVar17 + 0x18);
              piVar16[-5] = 0x2571dd;
              iVar17 = (*pcVar2)();
              iVar10 = *piVar6;
              piVar16[-3] = *param_10;
              piVar16[-4] = (int)piVar6;
              pcVar2 = *(code **)(iVar10 + 0x18);
              piVar16[-5] = 0x2571ea;
              iVar10 = (*pcVar2)();
              if (iVar10 != iVar17) goto LAB_00257861;
            }
          }
          else {
            if ((int *)param_3[2] < (int *)param_3[3]) {
              iVar10 = *(int *)param_3[2];
            }
            else {
              iVar10 = *param_3;
              piVar16[-4] = (int)param_3;
              pcVar2 = *(code **)(iVar10 + 0x24);
              piVar16[-5] = 0x25787c;
              iVar10 = (*pcVar2)();
            }
            if (iVar10 == -1) {
              param_3 = (int *)0x0;
              iVar10 = -1;
              goto LAB_002571af;
            }
            iVar17 = *piVar6;
            piVar16[-3] = iVar10;
            piVar16[-4] = (int)piVar6;
            pcVar2 = *(code **)(iVar17 + 0x20);
            piVar16[-5] = 0x25767c;
            iVar17 = (*pcVar2)();
            iVar10 = *piVar6;
            piVar16[-3] = *param_10;
            piVar16[-4] = (int)piVar6;
            pcVar2 = *(code **)(iVar10 + 0x20);
            piVar16[-5] = 0x257689;
            iVar10 = (*pcVar2)();
            if (iVar17 != iVar10) {
              if ((int *)param_3[2] < (int *)param_3[3]) {
                iVar10 = *(int *)param_3[2];
              }
              else {
                iVar10 = *param_3;
                piVar16[-4] = (int)param_3;
                pcVar2 = *(code **)(iVar10 + 0x24);
                piVar16[-5] = 0x2578c1;
                iVar10 = (*pcVar2)();
              }
              if (iVar10 == -1) {
                param_3 = (int *)0x0;
              }
              goto LAB_002571d2;
            }
          }
          if ((uint)param_3[2] < (uint)param_3[3]) {
            param_3[2] = param_3[2] + 4;
          }
          else {
            iVar10 = *param_3;
            piVar16[-4] = (int)param_3;
            pcVar2 = *(code **)(iVar10 + 0x28);
            piVar16[-5] = 0x257811;
            (*pcVar2)();
          }
          piVar16[3] = -1;
          param_10 = param_10 + 1;
        }
        else {
          param_10 = param_10 + 1;
          if ((undefined4 *)piVar16[0x26] != param_10) {
            puVar3 = (undefined4 *)piVar16[0x26];
            do {
              iVar10 = *piVar6;
              piVar16[-2] = *param_10;
              piVar16[-3] = 0x2000;
              piVar16[-4] = (int)piVar6;
              pcVar2 = *(code **)(iVar10 + 8);
              piVar16[-5] = 0x257440;
              cVar4 = (*pcVar2)();
              if (cVar4 == '\0') break;
              param_10 = param_10 + 1;
            } while (puVar3 != param_10);
          }
          piVar16[0x25] = (int)param_10;
          iVar10 = piVar16[3];
          piVar16[2] = (int)piVar6;
          bVar9 = iVar10 == -1;
          bVar13 = param_3 != (int *)0x0 && (bool)bVar9;
          if (bVar13) goto LAB_002574dc;
LAB_00257468:
          bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);
          bVar14 = (bool)bVar9;
          if (bVar12 != 0) goto LAB_00257510;
          while ((bool)*(byte *)((int)piVar16 + 0x26) != bVar14) {
            while( true ) {
              iVar17 = iVar10;
              if ((param_3 != (int *)0x0) && (bVar9 != 0)) {
                if ((int *)param_3[2] < (int *)param_3[3]) {
                  iVar17 = *(int *)param_3[2];
                }
                else {
                  iVar17 = *param_3;
                  piVar16[-4] = (int)param_3;
                  pcVar2 = *(code **)(iVar17 + 0x24);
                  piVar16[-5] = 0x2577f9;
                  iVar17 = (*pcVar2)();
                }
                if (iVar17 == -1) {
                  param_3 = (int *)0x0;
                }
              }
              iVar7 = *(int *)piVar16[2];
              piVar16[-2] = iVar17;
              piVar16[-3] = 0x2000;
              piVar16[-4] = piVar16[2];
              pcVar2 = *(code **)(iVar7 + 8);
              piVar16[-5] = 0x2574ab;
              cVar4 = (*pcVar2)();
              if (cVar4 == '\0') goto LAB_00257548;
              if ((uint)param_3[2] < (uint)param_3[3]) {
                param_3[2] = param_3[2] + 4;
              }
              else {
                iVar10 = *param_3;
                piVar16[-4] = (int)param_3;
                pcVar2 = *(code **)(iVar10 + 0x28);
                piVar16[-5] = 0x2575f9;
                (*pcVar2)();
              }
              iVar10 = -1;
              bVar9 = true;
              bVar13 = param_3 != (int *)0x0;
              if (!bVar13) goto LAB_00257468;
LAB_002574dc:
              if ((int *)param_3[2] < (int *)param_3[3]) {
                iVar17 = *(int *)param_3[2];
              }
              else {
                *(byte *)(piVar16 + 3) = bVar9;
                iVar17 = *param_3;
                piVar16[-4] = (int)param_3;
                pcVar2 = *(code **)(iVar17 + 0x24);
                piVar16[-5] = 0x257765;
                iVar17 = (*pcVar2)();
                bVar9 = *(byte *)(piVar16 + 3);
              }
              bVar14 = false;
              if (iVar17 == -1) {
                param_3 = (int *)0x0;
                bVar14 = bVar13;
              }
              bVar12 = piVar16[1] != 0 & *(byte *)((int)piVar16 + 0x26);
              if (bVar12 == 0) break;
LAB_00257510:
              piVar6 = *(int **)(piVar16[1] + 8);
              if (piVar6 < *(int **)(piVar16[1] + 0xc)) {
                iVar17 = *piVar6;
              }
              else {
                *(byte *)((int)piVar16 + 0x27) = bVar9;
                *(byte *)(piVar16 + 3) = bVar12;
                iVar17 = *(int *)piVar16[1];
                piVar16[-4] = piVar16[1];
                pcVar2 = *(code **)(iVar17 + 0x24);
                piVar16[-5] = 0x25778d;
                iVar17 = (*pcVar2)();
                bVar9 = *(byte *)((int)piVar16 + 0x27);
                bVar12 = *(byte *)(piVar16 + 3);
              }
              iVar7 = 0;
              if (iVar17 != -1) {
                bVar12 = 0;
                iVar7 = piVar16[1];
              }
              piVar16[1] = iVar7;
              if ((bool)bVar12 == bVar14) goto LAB_00257548;
            }
          }
LAB_00257548:
          piVar16[3] = iVar10;
          piVar6 = (int *)piVar16[2];
          param_10 = (undefined4 *)piVar16[0x25];
        }
        piVar8 = piVar16;
        if (param_10 == (undefined4 *)piVar16[0x26]) break;
      }
      piVar16 = piVar8;
    } while (**(int **)((int)piVar16 + 0x8c) == 0);
  }
  piVar6 = *(int **)((int)piVar16 + 0x70);
  iVar10 = *(int *)((int)piVar16 + 0xc);
  *piVar6 = (int)param_3;
  piVar6[1] = iVar10;
  return;
}

